┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/search/dolphinsearchbox.cpp
diff options
context:
space:
mode:
authorIsmael Asensio <[email protected]>2019-10-13 17:21:11 +0200
committerElvis Angelaccio <[email protected]>2019-10-13 17:22:28 +0200
commitc144701c28aa02a1fd9e1a24460ae9e5178ed069 (patch)
treebcee6d6ebeede7f80ec95bb1f79bbca9d24f8798 /src/search/dolphinsearchbox.cpp
parente04ec8601f3771aa7ce98d9d1de34e332f26c103 (diff)
Hide search extra options when not available
Summary: Hide the search extra options when they are not available, because the current location is not indexed or Baloo is not enabled. The button is disabled and shows a tooltip to provide feedback of why it's not available. Depends on D24478 {F7531893} CCBUG: 396898 FEATURE: 318580 FEATURE: 408680 FIXED-IN: 19.11.80 Test Plan: - `Ctrl-F` on a non-indexed location - `balooctl disable` and `Ctrl-F` on an indexed location On both cases the extra options are not shown, the button is disabled and the reason is shown in the tooltip The user selection is remembered between indexed locations. Reviewers: #dolphin, elvisangelaccio, meven, ngraham Reviewed By: meven Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24446
Diffstat (limited to 'src/search/dolphinsearchbox.cpp')
-rw-r--r--src/search/dolphinsearchbox.cpp55
1 files changed, 43 insertions, 12 deletions
diff --git a/src/search/dolphinsearchbox.cpp b/src/search/dolphinsearchbox.cpp
index 1c1accd26..838a8b38c 100644
--- a/src/search/dolphinsearchbox.cpp
+++ b/src/search/dolphinsearchbox.cpp
@@ -107,7 +107,7 @@ void DolphinSearchBox::setSearchPath(const QUrl& url)
m_fromHereButton->setText(i18nc("action:button", "From Here (%1)", elidedLocation));
m_fromHereButton->setToolTip(i18nc("action:button", "Limit search to '%1' and its subfolders", cleanedUrl.toString(QUrl::PreferLocalFile)));
- m_facetsWidget->setEnabled(isIndexingEnabled());
+ setFacetsVisible(SearchSettings::showFacetsWidget());
}
QUrl DolphinSearchBox::searchPath() const
@@ -194,6 +194,7 @@ void DolphinSearchBox::showEvent(QShowEvent* event)
m_searchInput->setFocus();
m_startedSearching = false;
}
+ updateFacetsToggleButton();
}
void DolphinSearchBox::hideEvent(QHideEvent* event)
@@ -282,9 +283,7 @@ void DolphinSearchBox::slotReturnPressed()
void DolphinSearchBox::slotFacetsButtonToggled()
{
- const bool facetsIsVisible = !m_facetsWidget->isVisible();
- m_facetsWidget->setVisible(facetsIsVisible);
- updateFacetsToggleButton();
+ setFacetsVisible(m_facetsToggleButton->isChecked());
}
void DolphinSearchBox::slotFacetChanged()
@@ -329,14 +328,16 @@ void DolphinSearchBox::loadSettings()
m_fileNameButton->setChecked(true);
}
- m_facetsWidget->setVisible(SearchSettings::showFacetsWidget());
+ setFacetsVisible(SearchSettings::showFacetsWidget());
}
void DolphinSearchBox::saveSettings()
{
SearchSettings::setLocation(m_fromHereButton->isChecked() ? QStringLiteral("FromHere") : QStringLiteral("Everywhere"));
SearchSettings::setWhat(m_fileNameButton->isChecked() ? QStringLiteral("FileName") : QStringLiteral("Content"));
- SearchSettings::setShowFacetsWidget(m_facetsToggleButton->isChecked());
+ if (isIndexingEnabled()) {
+ SearchSettings::setShowFacetsWidget(m_facetsToggleButton->isChecked());
+ }
SearchSettings::self()->save();
}
@@ -472,8 +473,6 @@ void DolphinSearchBox::init()
m_startSearchTimer->setSingleShot(true);
m_startSearchTimer->setInterval(1000);
connect(m_startSearchTimer, &QTimer::timeout, this, &DolphinSearchBox::emitSearchRequest);
-
- updateFacetsToggleButton();
}
QUrl DolphinSearchBox::balooUrlForSearching() const
@@ -549,12 +548,44 @@ void DolphinSearchBox::fromBalooSearchUrl(const QUrl& url)
#endif
}
+void DolphinSearchBox::setFacetsVisible(bool visible)
+{
+ const bool indexingEnabled = isIndexingEnabled();
+ m_facetsWidget->setEnabled(indexingEnabled);
+ m_facetsWidget->setVisible(indexingEnabled && visible);
+ updateFacetsToggleButton();
+}
+
void DolphinSearchBox::updateFacetsToggleButton()
{
- const bool facetsIsVisible = SearchSettings::showFacetsWidget();
- m_facetsToggleButton->setChecked(facetsIsVisible ? true : false);
- m_facetsToggleButton->setIcon(QIcon::fromTheme(facetsIsVisible ? QStringLiteral("arrow-up-double") : QStringLiteral("arrow-down-double")));
- m_facetsToggleButton->setText(facetsIsVisible ? i18nc("action:button", "Fewer Options") : i18nc("action:button", "More Options"));
+ const bool facetsEnabled = m_facetsWidget->isEnabled();
+ const bool facetsVisible = m_facetsWidget->isVisible();
+
+ m_facetsToggleButton->setEnabled(facetsEnabled);
+ m_facetsToggleButton->setChecked(facetsVisible);
+
+ m_facetsToggleButton->setIcon(QIcon::fromTheme(
+ facetsVisible ? QStringLiteral("arrow-up-double") :
+ QStringLiteral("arrow-down-double")));
+
+ m_facetsToggleButton->setText(
+ facetsVisible ? i18nc("@action:button", "Fewer Options") :
+ i18nc("@action:button", "More Options"));
+
+ if (facetsEnabled) {
+ m_facetsToggleButton->setToolTip(QString());
+ } else {
+#ifdef HAVE_BALOO
+ const Baloo::IndexerConfig searchInfo;
+ if (!searchInfo.fileIndexingEnabled()) {
+ m_facetsToggleButton->setToolTip(i18nc("@info:tooltip", "Advanced search options are not available because the file indexing service is disabled."));
+ } else {
+ m_facetsToggleButton->setToolTip(i18nc("@info:tooltip", "Advanced search options are not available because this location is not indexed."));
+ }
+#else
+ m_facetsToggleButton->setToolTip(i18nc("@info:tooltip", "Advanced search options are not available because this version of Dolphin does not support the Baloo file indexer."));
+#endif
+ }
}
bool DolphinSearchBox::isIndexingEnabled() const