From 2c8a9a67610c38e86ca0c2b59b3fa7a3834915ca Mon Sep 17 00:00:00 2001 From: Miina Puuronen Date: Tue, 18 May 2021 17:25:09 +0300 Subject: [PATCH] QmlDesigner: Fix showing Component Library module context menu The context menu for modules and categories was not working properly during search. The menu is now disabled whenever the search is ongoing, as it's unnecessary to show it at that time. Fixes: QDS-4230 Change-Id: If0465f973188d199982e87e765fbfe1efb641bb7 Reviewed-by: Miikka Heikkinen Reviewed-by: Mahmoud Badri --- .../qmldesigner/itemLibraryQmlSources/ItemsView.qml | 6 ++++-- .../components/itemlibrary/itemlibrarywidget.cpp | 5 +++++ .../qmldesigner/components/itemlibrary/itemlibrarywidget.h | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml index f574917440e..6742aceda80 100644 --- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml +++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml @@ -225,7 +225,8 @@ ScrollView { importToRemove = importRemovable ? importUrl : "" currentImport = model currentCategory = null - moduleContextMenu.popup() + if (!rootView.isSearchActive()) + moduleContextMenu.popup() } Column { @@ -251,7 +252,8 @@ ScrollView { onShowContextMenu: { currentCategory = model currentImport = parent.currentImportModel - moduleContextMenu.popup() + if (!rootView.isSearchActive()) + moduleContextMenu.popup() } Grid { diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index a64ca0a5ad8..10e8cde8c3c 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -301,6 +301,11 @@ void ItemLibraryWidget::handleAddImport(int index) updateSearch(); } +bool ItemLibraryWidget::isSearchActive() const +{ + return !m_filterText.isEmpty(); +} + void ItemLibraryWidget::delayedUpdateModel() { static bool disableTimer = DesignerSettings::getValue(DesignerSettingsKey::DISABLE_ITEM_LIBRARY_UPDATE_TIMER).toBool(); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h index 2883cebb633..72bd9bdfe92 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h @@ -96,6 +96,7 @@ public: Q_INVOKABLE void handleAddAsset(); Q_INVOKABLE void handleSearchfilterChanged(const QString &filterText); Q_INVOKABLE void handleAddImport(int index); + Q_INVOKABLE bool isSearchActive() const; signals: void itemActivated(const QString& itemName);