From f462be8e80f0d2589f467a16321147220e753a0e Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Tue, 14 May 2024 16:35:11 +0300 Subject: [PATCH] QmlDesigner: Prevent adding component materials to the content lib Also remove the experimental restriction on the content lib user section Fixes: QDS-12637 Change-Id: Ice2ac3f32a934d7c65ea7f406a2b5f8c4b5fed0c Reviewed-by: Miikka Heikkinen --- .../AssetsContextMenu.qml | 2 +- .../contentLibraryQmlSource/ContentLibrary.qml | 18 +++++++----------- .../MaterialBrowserContextMenu.qml | 12 +++++------- .../assetslibrary/assetslibrarywidget.cpp | 6 ------ .../assetslibrary/assetslibrarywidget.h | 1 - .../contentlibrary/contentlibrarywidget.cpp | 6 ------ .../contentlibrary/contentlibrarywidget.h | 1 - .../materialbrowser/materialbrowsermodel.cpp | 3 +++ .../materialbrowser/materialbrowsermodel.h | 5 ++++- .../materialbrowser/materialbrowserwidget.cpp | 6 ------ .../materialbrowser/materialbrowserwidget.h | 1 - 11 files changed, 20 insertions(+), 41 deletions(-) diff --git a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml index a8eb5285f57..fe22d7ce51f 100644 --- a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml +++ b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml @@ -249,7 +249,7 @@ StudioControls.Menu { StudioControls.MenuItem { text: qsTr("Add to Content Library") - visible: root.rootView.userBundleEnabled() && root.__fileIndex && root.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList) + visible: root.__fileIndex && root.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList) height: visible ? implicitHeight : 0 onTriggered: root.rootView.addAssetsToContentLibrary(root.__selectedAssetPathsList) } diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml index d06d942e3f9..d3eb29563d2 100644 --- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml +++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml @@ -115,17 +115,13 @@ Item { width: parent.width height: StudioTheme.Values.toolbarHeight - Component.onCompleted: { - var tabs = [ - { name: qsTr("Materials"), icon: StudioTheme.Constants.material_medium }, - { name: qsTr("Textures"), icon: StudioTheme.Constants.textures_medium }, - { name: qsTr("Environments"), icon: StudioTheme.Constants.languageList_medium }, - { name: qsTr("Effects"), icon: StudioTheme.Constants.effects } - ]; - if (ContentLibraryBackend.rootView.userBundleEnabled()) - tabs.push({ name: qsTr("User Assets"), icon: StudioTheme.Constants.effects }); - tabBar.tabsModel = tabs; - } + tabsModel: [ + { name: qsTr("Materials"), icon: StudioTheme.Constants.material_medium }, + { name: qsTr("Textures"), icon: StudioTheme.Constants.textures_medium }, + { name: qsTr("Environments"), icon: StudioTheme.Constants.languageList_medium }, + { name: qsTr("Effects"), icon: StudioTheme.Constants.effects }, + { name: qsTr("User Assets"), icon: StudioTheme.Constants.effects } // TODO: update icon + ] } } } diff --git a/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml b/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml index b01aa7d2a3c..248e07bf6c4 100644 --- a/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml +++ b/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml @@ -128,12 +128,10 @@ StudioControls.Menu { onTriggered: materialBrowserModel.addNewMaterial() } - Component.onCompleted: { - if (MaterialBrowserBackend.rootView.userBundleEnabled()) { - var menuItem = Qt.createQmlObject("import StudioControls as StudioControls; StudioControls.MenuItem {}", root) - menuItem.text = qsTr("Add to Content Library") - menuItem.onTriggered.connect(MaterialBrowserBackend.rootView.addMaterialToContentLibrary) - root.addItem(menuItem) - } + StudioControls.MenuItem { + text: qsTr("Add to Content Library") + enabled: !materialBrowserModel.selectedMaterialIsComponent + + onTriggered: MaterialBrowserBackend.rootView.addMaterialToContentLibrary() } } diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp index 0324abe32e0..e63ac9b0d5a 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp @@ -635,12 +635,6 @@ void AssetsLibraryWidget::addResources(const QStringList &files, bool showDialog } } -bool AssetsLibraryWidget::userBundleEnabled() const -{ - // TODO: this method is to be removed after user bundle implementation is complete - return Core::ICore::settings()->value("QML/Designer/UseExperimentalFeatures45", false).toBool(); -} - void AssetsLibraryWidget::addAssetsToContentLibrary(const QStringList &assetPaths) { m_assetsView->emitCustomNotification("add_assets_to_content_lib", {}, {assetPaths}); diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h index 9e97080d4ac..f2d476c8427 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h @@ -100,7 +100,6 @@ public: Q_INVOKABLE void showInGraphicalShell(const QString &path); Q_INVOKABLE QString showInGraphicalShellMsg() const; - Q_INVOKABLE bool userBundleEnabled() const; Q_INVOKABLE void addAssetsToContentLibrary(const QStringList &assetPaths); signals: diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.cpp b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.cpp index 3edad3d11dd..72bece4c98b 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.cpp @@ -640,12 +640,6 @@ void ContentLibraryWidget::markTextureUpdated(const QString &textureKey) m_environmentsModel->markTextureHasNoUpdates(subcategory, textureKey); } -bool ContentLibraryWidget::userBundleEnabled() const -{ - // TODO: this method is to be removed after user bundle implementation is complete - return Core::ICore::settings()->value("QML/Designer/UseExperimentalFeatures45", false).toBool(); -} - QSize ContentLibraryWidget::sizeHint() const { return {420, 420}; diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.h b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.h index a617347f6f8..8e96d9d2f3b 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.h +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibrarywidget.h @@ -90,7 +90,6 @@ public: Q_INVOKABLE void addLightProbe(QmlDesigner::ContentLibraryTexture *tex); Q_INVOKABLE void updateSceneEnvState(); Q_INVOKABLE void markTextureUpdated(const QString &textureKey); - Q_INVOKABLE bool userBundleEnabled() const; QSize sizeHint() const override; diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp index 2fcd56b6697..b74f3107412 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.cpp @@ -366,6 +366,9 @@ void MaterialBrowserModel::selectMaterial(int idx, bool force) if (idx != m_selectedIndex || force) { m_selectedIndex = idx; emit selectedIndexChanged(idx); + + m_selectedMaterialIsComponent = selectedMaterial().isComponent(); + emit selectedMaterialIsComponentChanged(); } } diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h index 337dce05507..3b6b64ec865 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsermodel.h @@ -3,7 +3,7 @@ #pragma once -#include "modelnode.h" +#include #include #include @@ -20,6 +20,7 @@ class MaterialBrowserModel : public QAbstractListModel Q_PROPERTY(bool isEmpty MEMBER m_isEmpty NOTIFY isEmptyChanged) Q_PROPERTY(int selectedIndex MEMBER m_selectedIndex NOTIFY selectedIndexChanged) + Q_PROPERTY(bool selectedMaterialIsComponent MEMBER m_selectedMaterialIsComponent NOTIFY selectedMaterialIsComponentChanged) Q_PROPERTY(bool hasQuick3DImport READ hasQuick3DImport WRITE setHasQuick3DImport NOTIFY hasQuick3DImportChanged) Q_PROPERTY(bool hasModelSelection READ hasModelSelection WRITE setHasModelSelection NOTIFY hasModelSelectionChanged) Q_PROPERTY(bool hasMaterialLibrary READ hasMaterialLibrary WRITE setHasMaterialLibrary NOTIFY hasMaterialLibraryChanged) @@ -110,6 +111,7 @@ signals: const QList &props, bool all); void isQt6ProjectChanged(); + void selectedMaterialIsComponentChanged(); private: bool isValidIndex(int idx) const; @@ -132,6 +134,7 @@ private: bool m_hasMaterialLibrary = false; bool m_allPropsCopied = true; bool m_isQt6Project = false; + bool m_selectedMaterialIsComponent = false; QString m_copiedMaterialType; QPointer m_view; diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp index 42268ee6fd1..8723611be07 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp @@ -434,10 +434,4 @@ QPointer MaterialBrowserWidget::materialBrowserTex return m_materialBrowserTexturesModel; } -bool MaterialBrowserWidget::userBundleEnabled() const -{ - // TODO: this method is to be removed after user bundle implementation is complete - return Core::ICore::settings()->value("QML/Designer/UseExperimentalFeatures45", false).toBool(); -} - } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.h index c55d72c8f73..6506283f858 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.h @@ -63,7 +63,6 @@ public: Q_INVOKABLE void acceptTextureDropOnMaterial(int matIndex, const QString &texId); Q_INVOKABLE void focusMaterialSection(bool focusMatSec); Q_INVOKABLE void addMaterialToContentLibrary(); - Q_INVOKABLE bool userBundleEnabled() const; StudioQuickWidget *quickWidget() const;