summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-02-15 08:36:45 -0800
committerThiago Macieira <thiago.macieira@intel.com>2022-02-16 01:47:09 -0800
commit8de049389610037595e3b24ed660d4855aa460ce (patch)
tree73c5dc1111fd57f7c87fa5e0ba8a720d1c134885
parentd34282dba0ebe67c16c1ee6e25d85f019b48b615 (diff)
QMetaObjectBuilder: fix addProperty() recording of the property type
Issue introduced by commit 465701bb98f3c3454d15c22b8e38ab4ad8821dfc. [ChangeLog][QtCore][QMetaObjectBuilder] Fixed a bug that would cause addProperty() to use the incorrect type for the property if the property's name matched a valid type registered with QMetaType. Pick-to: 6.2 6.3 Change-Id: Ic15405335d804bdea761fffd16d402f2c9611f30 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r--src/corelib/kernel/qmetaobjectbuilder.cpp2
-rw-r--r--tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp6
2 files changed, 5 insertions, 3 deletions
diff --git a/src/corelib/kernel/qmetaobjectbuilder.cpp b/src/corelib/kernel/qmetaobjectbuilder.cpp
index 1a95d7265f..4f762b5e96 100644
--- a/src/corelib/kernel/qmetaobjectbuilder.cpp
+++ b/src/corelib/kernel/qmetaobjectbuilder.cpp
@@ -558,7 +558,7 @@ QMetaMethodBuilder QMetaObjectBuilder::addConstructor(const QMetaMethod &prototy
QMetaPropertyBuilder QMetaObjectBuilder::addProperty(const QByteArray &name, const QByteArray &type,
int notifierId)
{
- return addProperty(name, type, QMetaType::fromName(name), notifierId);
+ return addProperty(name, type, QMetaType::fromName(type), notifierId);
}
/*!
diff --git a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
index d8b7a96f4c..188a5a6626 100644
--- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
+++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
@@ -1638,17 +1638,19 @@ void tst_QMetaObjectBuilder::classNameFirstInStringData()
}
struct MyFoo {};
+struct myParameter {};
void tst_QMetaObjectBuilder::propertyMetaType()
{
+ qRegisterMetaType<myParameter>();
QMetaType meta = QMetaType::fromType<MyFoo>();
auto metaId = meta.id();
QMetaObjectBuilder builder;
builder.setClassName("Test");
- builder.addProperty("test", "MyFoo");
+ builder.addProperty("myParameter", "MyFoo");
auto mo = builder.toMetaObject();
- QMetaProperty metaProp = mo->property(mo->indexOfProperty("test"));
+ QMetaProperty metaProp = mo->property(mo->indexOfProperty("myParameter"));
QCOMPARE(metaProp.typeName(), meta.name());
QCOMPARE(metaProp.typeId(), metaId);
QCOMPARE(metaProp.metaType(), meta);