diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2022-02-15 08:36:45 -0800 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-02-16 12:39:47 +0000 |
commit | b3d19fbf95143141c772b327eec07c8975a52514 (patch) | |
tree | 6e03fcef722e65c10e65d32688456baae02e8ad9 | |
parent | 388803797bce68bd7a956793c286b32ced765048 (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.
Change-Id: Ic15405335d804bdea761fffd16d402f2c9611f30
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 8de049389610037595e3b24ed660d4855aa460ce)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/corelib/kernel/qmetaobjectbuilder.cpp | 2 | ||||
-rw-r--r-- | tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/corelib/kernel/qmetaobjectbuilder.cpp b/src/corelib/kernel/qmetaobjectbuilder.cpp index 8bcc6e398a..799b155b20 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 d3f10ed815..50b49adc34 100644 --- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp +++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp @@ -1641,17 +1641,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); |