aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp')
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
index ac792f64709..0d05b12d6a1 100644
--- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
+++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
@@ -29,6 +29,7 @@
#include "materialbrowserwidget.h"
#include "materialbrowsermodel.h"
#include "nodeabstractproperty.h"
+#include "nodemetainfo.h"
#include "qmlobjectnode.h"
#include "variantproperty.h"
@@ -43,7 +44,6 @@ namespace QmlDesigner {
MaterialBrowserView::MaterialBrowserView(QObject *parent)
: AbstractView(parent)
-
{}
MaterialBrowserView::~MaterialBrowserView()
@@ -91,14 +91,16 @@ WidgetInfo MaterialBrowserView::widgetInfo()
});
connect(matBrowserModel, &MaterialBrowserModel::pasteMaterialPropertiesTriggered, this,
- [&] (const ModelNode &material, const QList<AbstractProperty> &props) {
+ [&] (const ModelNode &material, const QList<AbstractProperty> &props, bool all) {
QmlObjectNode mat(material);
executeInTransaction(__FUNCTION__, [&] {
- // remove current properties
- const PropertyNameList propNames = material.propertyNames();
- for (const PropertyName &propName : propNames) {
- if (propName != "objectName")
- mat.removeProperty(propName);
+ if (all) { // all material properties copied
+ // remove current properties
+ const PropertyNameList propNames = material.propertyNames();
+ for (const PropertyName &propName : propNames) {
+ if (propName != "objectName")
+ mat.removeProperty(propName);
+ }
}
// apply pasted properties
@@ -126,6 +128,10 @@ 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");