aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-11-12 15:51:28 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2020-11-12 15:09:24 +0000
commit0fea7203a78f7baeee38a4c2e29132004445172a (patch)
treefced9aa71ab1c40e35c8946f84bb665e3e52daac
parentd0df1527a67fff05a4bc6553a980d8f144661668 (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.cpp7
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp11
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);