summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahmoud Badri <mahmoud.badri@qt.io>2022-08-22 16:09:42 +0300
committerMahmoud Badri <mahmoud.badri@qt.io>2022-08-22 13:23:27 +0000
commit86d1526564b2aad91ac84039af9e97e69f072ae7 (patch)
treec79c6de804a97f3dc2d84409300b15bdfc60a7a8
parent3b73b27862c2fad1dc16b499c1c37a74bdbfdd25 (diff)
downloadqt-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>
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp5
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h2
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp18
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h2
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