From 3be3663bf767d33c44297a7be957591939f4b7b7 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 18 Oct 2022 16:47:11 +0200 Subject: QmlDesigner: Do not compare type names for file components For file components the fully qualified type name is not properly defined and the component is created from source anyway. Task-number: QDS-7992 Change-Id: I2c2754c1bab53257a210c2e4de990a0a768618a3 Reviewed-by: Marco Bubke Reviewed-by: Qt CI Bot --- src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | 4 ++++ src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index a07443af5f..f8da416b17 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -827,6 +827,8 @@ NodeMetaInfoPrivate::NodeMetaInfoPrivate(Model *model, TypeName type, int maj, i if (importInfo.type() == ImportType::Library) { m_majorVersion = importInfo.version().majorVersion(); m_minorVersion = importInfo.version().minorVersion(); + } else { + m_isFileComponent = true; } m_qualfiedTypeName = getUnqualifiedName(m_qualfiedTypeName); @@ -835,6 +837,8 @@ NodeMetaInfoPrivate::NodeMetaInfoPrivate(Model *model, TypeName type, int maj, i || importInfo.type() == ImportType::Directory); if (prepandName) m_qualfiedTypeName.prepend(importInfo.name().toUtf8() + '.'); + + m_qualfiedTypeName.replace("/", "."); } m_objectValue = getObjectValue(); diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 2a5471be8f..1a0d3ae9c3 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -531,7 +531,7 @@ public: qDebug() << metaInfo.isValid() << metaInfo.typeName(); qDebug() << metaInfo.directSuperClass().typeName(); - if (!typeName.startsWith("...") && m_model == m_model->metaInfoProxyModel() + if (!metaInfo.isFileComponent() && m_model == m_model->metaInfoProxyModel() && metaInfo.isValid()) throw RewritingException(__LINE__, __FUNCTION__, __FILE__, "test", "test"); } -- cgit v1.2.1