diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-11-12 15:51:28 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-11-12 15:09:24 +0000 |
commit | 0fea7203a78f7baeee38a4c2e29132004445172a (patch) | |
tree | fced9aa71ab1c40e35c8946f84bb665e3e52daac | |
parent | d0df1527a67fff05a4bc6553a980d8f144661668 (diff) |
QmlDesigner.MetaInfo: Add special case for "QML.QtObject"
In Qt 6 QML.QtObject is used as typename for QtQml.QtObject.
Task-number: QDS-3117
Change-Id: Ib4b78d69781d946a7d5a3447841f20482c44ddf5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp | 7 | ||||
-rw-r--r-- | src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | 11 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 46bbfadb24..afd4af7e49 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -793,6 +793,11 @@ void NavigatorTreeModel::handleItemLibraryImageDrop(const QMimeData *mimeData, i } } +TypeName propertyType(const NodeAbstractProperty &property) +{ + return property.parentModelNode().metaInfo().propertyTypeName(property.name()); +} + void NavigatorTreeModel::moveNodesInteractive(NodeAbstractProperty &parentProperty, const QList<ModelNode> &modelNodes, int targetIndex, @@ -801,7 +806,7 @@ void NavigatorTreeModel::moveNodesInteractive(NodeAbstractProperty &parentProper QTC_ASSERT(m_view, return); auto doMoveNodesInteractive = [&parentProperty, modelNodes, targetIndex](){ - const TypeName propertyQmlType = parentProperty.parentModelNode().metaInfo().propertyTypeName(parentProperty.name()); + const TypeName propertyQmlType = propertyType(parentProperty); int idx = targetIndex; for (const ModelNode &modelNode : modelNodes) { if (modelNode.isValid() diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index e6a61800e6..3fe1f396b2 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -1062,6 +1062,14 @@ static QByteArray getPackage(const QByteArray &name) return nameComponents.join('.'); } + +QList<TypeName> qtObjectTypes() +{ + static QList<TypeName> typeNames = {"QML.QtObject", "QtQml.QtObject", "<cpp>.QObject"}; + + return typeNames; +} + bool NodeMetaInfoPrivate::cleverCheckType(const TypeName &otherType) const { if (otherType == qualfiedTypeName()) @@ -1070,6 +1078,9 @@ bool NodeMetaInfoPrivate::cleverCheckType(const TypeName &otherType) const if (isFileComponent()) return false; + if (qtObjectTypes().contains(qualfiedTypeName()) && qtObjectTypes().contains(otherType)) + return true; + const QByteArray typeName = getUnqualifiedName(otherType); const QByteArray package = getPackage(otherType); |