diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryItemContextMenu.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryItemContextMenu.qml index 1e4e177997b..6c1b3717326 100644 --- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryItemContextMenu.qml +++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryItemContextMenu.qml @@ -25,7 +25,9 @@ StudioControls.Menu { { root.targetItem = item - let isMaterial = item && root.targetItem.bundleId === "UserMaterials" + let isMaterial = item && (root.targetItem.bundleId === "UserMaterials" + || root.targetItem.bundleId === "MaterialBundle" + || root.targetItem.bundleId === "Materials") applyToSelectedReplace.visible = isMaterial applyToSelectedAdd.visible = isMaterial diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.cpp b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.cpp index 8f447e374a2..bb0bd54166f 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.cpp +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.cpp @@ -10,8 +10,10 @@ ContentLibraryMaterial::ContentLibraryMaterial(QObject *parent, const QString &qml, const TypeName &type, const QUrl &icon, - const QStringList &files) + const QStringList &files, + const QString &bundleId) : QObject(parent), m_name(name), m_qml(qml), m_type(type), m_icon(icon), m_files(files) + , m_bundleId(bundleId) { m_allFiles = m_files; m_allFiles.push_back(m_qml); @@ -78,4 +80,9 @@ QStringList ContentLibraryMaterial::allFiles() const return m_allFiles; } +QString ContentLibraryMaterial::bundleId() const +{ + return m_bundleId; +} + } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.h b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.h index bd7518c8775..5b6c86b47ef 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.h +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterial.h @@ -19,7 +19,7 @@ class ContentLibraryMaterial : public QObject Q_PROPERTY(bool bundleMaterialVisible MEMBER m_visible NOTIFY materialVisibleChanged) Q_PROPERTY(bool bundleItemImported READ imported WRITE setImported NOTIFY materialImportedChanged) Q_PROPERTY(QStringList bundleMaterialFiles READ allFiles CONSTANT) - Q_PROPERTY(QString itemType MEMBER m_itemType CONSTANT) + Q_PROPERTY(QString bundleId READ bundleId CONSTANT) public: ContentLibraryMaterial(QObject *parent, @@ -27,7 +27,8 @@ public: const QString &qml, const TypeName &type, const QUrl &icon, - const QStringList &files); + const QStringList &files, + const QString &bundleId); bool filter(const QString &searchText); @@ -42,6 +43,8 @@ public: bool imported() const; QStringList allFiles() const; + QString bundleId() const; + signals: void materialVisibleChanged(); void materialImportedChanged(); @@ -57,7 +60,7 @@ private: bool m_imported = false; QStringList m_allFiles; - const QString m_itemType = "material"; + const QString m_bundleId; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterialsmodel.cpp b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterialsmodel.cpp index d5a3e1349a7..23d2c3a44a9 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterialsmodel.cpp +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarymaterialsmodel.cpp @@ -266,7 +266,8 @@ void ContentLibraryMaterialsModel::loadMaterialBundle() QString qml = matObj.value("qml").toString(); TypeName type = QLatin1String("%1.%2").arg(bundleType, qml.chopped(4)).toLatin1(); // chopped(4): remove .qml - auto bundleMat = new ContentLibraryMaterial(category, matName, qml, type, icon, files); + auto bundleMat = new ContentLibraryMaterial(category, matName, qml, type, icon, files, + m_bundleId); category->addBundleMaterial(bundleMat); }