]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/search/dolphinfacetswidget.cpp
[search] Close tags menu after click when there is only one tag
[dolphin.git] / src / search / dolphinfacetswidget.cpp
index d9943abcd4867ea425629fc6b9bb74710b4f2a49..8bae8388789882b95044374b29d9aec1785a0bc1 100644 (file)
@@ -272,12 +272,14 @@ void DolphinFacetsWidget::updateTagsMenuItems(const QUrl&, const KFileItemList&
     allTags.sort(Qt::CaseInsensitive);
     allTags.removeDuplicates();
 
+    const bool onlyOneTag = allTags.count() == 1;
+
     for (const QString& tagName : qAsConst(allTags)) {
         QAction* action = m_tagsSelector->menu()->addAction(QIcon::fromTheme(QStringLiteral("tag")), tagName);
         action->setCheckable(true);
         action->setChecked(m_searchTags.contains(tagName));
 
-        connect(action, &QAction::triggered, this, [this, tagName](bool isChecked) {
+        connect(action, &QAction::triggered, this, [this, tagName, onlyOneTag](bool isChecked) {
             if (isChecked) {
                 addSearchTag(tagName);
             } else {
@@ -285,7 +287,9 @@ void DolphinFacetsWidget::updateTagsMenuItems(const QUrl&, const KFileItemList&
             }
             emit facetChanged();
 
-            m_tagsSelector->menu()->show();
+            if (!onlyOneTag) {
+                m_tagsSelector->menu()->show();
+            }
         });
     }