┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dolphinviewcontainer.cpp2
-rw-r--r--src/search/bar.cpp6
-rw-r--r--src/search/bar.h15
3 files changed, 19 insertions, 4 deletions
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 4d7472ed3..56c659b76 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -339,7 +339,7 @@ void DolphinViewContainer::setSearchBarVisible(bool visible)
{
if (!visible) {
if (isSearchBarVisible()) {
- m_searchBar->setVisible(false, WithAnimation);
+ m_searchBar->setVisible(false, WithAnimation, Search::Bar::HideBehavior::KeepCurrentUrl);
}
return;
}
diff --git a/src/search/bar.cpp b/src/search/bar.cpp
index 851eef942..7e31cb0f2 100644
--- a/src/search/bar.cpp
+++ b/src/search/bar.cpp
@@ -187,11 +187,13 @@ void Bar::selectAll()
m_searchTermEditor->selectAll();
}
-void Bar::setVisible(bool visible, Animated animated)
+void Bar::setVisible(bool visible, Animated animated, HideBehavior hideBehavior)
{
if (!visible) {
m_startSearchTimer->stop();
- Q_EMIT urlChangeRequested(m_searchConfiguration->searchPath());
+ if (hideBehavior == HideBehavior::RestoreUrl) {
+ Q_EMIT urlChangeRequested(m_searchConfiguration->searchPath());
+ }
if (isAncestorOf(QApplication::focusWidget())) {
Q_EMIT focusViewRequest();
}
diff --git a/src/search/bar.h b/src/search/bar.h
index 969335232..1017d813f 100644
--- a/src/search/bar.h
+++ b/src/search/bar.h
@@ -51,6 +51,19 @@ class Bar : public AnimatedHeightWidget, public UpdatableStateInterface
Q_OBJECT
public:
+ enum class HideBehavior {
+ /**
+ * When hiding the bar, request that the view switches back to a non-search URL (the search path).
+ * This is the behavior when the user explicitly quits searching.
+ */
+ RestoreUrl,
+ /**
+ * When hiding the bar, do not request any URL change.
+ * This is used when the UI is hidden automatically because the view navigated elsewhere already.
+ */
+ KeepCurrentUrl,
+ };
+
/**
* @brief Constructs a Search::Bar with an initial state matching @p dolphinQuery and with parent @p parent.
*/
@@ -80,7 +93,7 @@ public:
* be properly un/checked.
* @see AnimatedHeightWidget::setVisible().
*/
- void setVisible(bool visible, Animated animated);
+ void setVisible(bool visible, Animated animated, HideBehavior hideBehavior = HideBehavior::RestoreUrl);
/**
* @returns false, when the search UI has not yet been changed to search for anything specific. For example when no search term has been entered yet.