diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2022-08-22 16:09:42 +0300 |
---|---|---|
committer | Mahmoud Badri <mahmoud.badri@qt.io> | 2022-08-22 13:23:27 +0000 |
commit | 86d1526564b2aad91ac84039af9e97e69f072ae7 (patch) | |
tree | c79c6de804a97f3dc2d84409300b15bdfc60a7a8 | |
parent | 3b73b27862c2fad1dc16b499c1c37a74bdbfdd25 (diff) | |
download | qt-creator-86d1526564b2aad91ac84039af9e97e69f072ae7.tar.gz |
QmlDesigner: Fix propertyGroups.json warning for 2D projects
Load property groups file only if Quick3D import exists
Change-Id: Idf7b95cb4efa34dde6196964e5e2cbad54341193
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
4 files changed, 21 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp index 4027a1c75a..5a03ba43d8 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp @@ -95,8 +95,9 @@ bool MaterialBrowserModel::isValidIndex(int idx) const * propertyGroups.json contains lists of QtQuick3D objects' properties grouped by sections * * @param path path to propertyGroups.json file + * @return load successful */ -void MaterialBrowserModel::loadPropertyGroups(const QString &path) +bool MaterialBrowserModel::loadPropertyGroups(const QString &path) { bool ok = true; @@ -131,6 +132,8 @@ void MaterialBrowserModel::loadPropertyGroups(const QString &path) m_customMaterialSections.append(customMatSections); } emit materialSectionsChanged(); + + return ok; } QHash<int, QByteArray> MaterialBrowserModel::roleNames() const diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h index 5f38e7488e..daa39c3539 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h @@ -79,7 +79,7 @@ public: void updateSelectedMaterial(); int materialIndex(const ModelNode &material) const; ModelNode materialAt(int idx) const; - void loadPropertyGroups(const QString &path); + bool loadPropertyGroups(const QString &path); void resetModel(); diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index 0d05b12d6a..1b7ee3f71f 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -128,14 +128,12 @@ void MaterialBrowserView::modelAttached(Model *model) { AbstractView::modelAttached(model); - QString matPropsPath = model->metaInfo("QtQuick3D.Material").importDirectoryPath() - + "/designer/propertyGroups.json"; - m_widget->materialBrowserModel()->loadPropertyGroups(matPropsPath); - m_widget->clearSearchFilter(); m_widget->materialBrowserModel()->setHasMaterialRoot(rootModelNode().isSubclassOf("QtQuick3D.Material")); m_hasQuick3DImport = model->hasImport("QtQuick3D"); + loadPropertyGroups(); + // Project load is already very busy and may even trigger puppet reset, so let's wait a moment // before refreshing the model QTimer::singleShot(1000, this, [this]() { @@ -295,6 +293,16 @@ void MaterialBrowserView::nodeRemoved(const ModelNode &removedNode, m_widget->materialBrowserModel()->updateSelectedMaterial(); } +void QmlDesigner::MaterialBrowserView::loadPropertyGroups() +{ + if (!m_hasQuick3DImport || m_propertyGroupsLoaded) + return; + + QString matPropsPath = model()->metaInfo("QtQuick3D.Material").importDirectoryPath() + + "/designer/propertyGroups.json"; + m_propertyGroupsLoaded = m_widget->materialBrowserModel()->loadPropertyGroups(matPropsPath); +} + void MaterialBrowserView::importsChanged(const QList<Import> &addedImports, const QList<Import> &removedImports) { Q_UNUSED(addedImports) @@ -307,6 +315,8 @@ void MaterialBrowserView::importsChanged(const QList<Import> &addedImports, cons m_hasQuick3DImport = hasQuick3DImport; + loadPropertyGroups(); + // Import change will trigger puppet reset, so we don't want to update previews immediately refreshModel(false); } diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h index 503986a28e..82ecfe593e 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h @@ -70,6 +70,8 @@ private: bool m_hasQuick3DImport = false; bool m_autoSelectModelMaterial = false; // TODO: wire this to some action bool m_puppetResetPending = false; + bool m_propertyGroupsLoaded = false; + void loadPropertyGroups(); }; } // namespace QmlDesigner |