]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Update searchbar parameters on URL change
authorIsmael Asensio <isma.af@mgmail.com>
Wed, 2 Oct 2019 20:57:32 +0000 (22:57 +0200)
committerElvis Angelaccio <elvis.angelaccio@kde.org>
Wed, 2 Oct 2019 21:01:29 +0000 (23:01 +0200)
Summary:
Searchbar options (text and options) were only updated when toggling the search on, $
Main use case is when changing between stored search urls in Places panel.

Test Plan:
- Store two search urls in Places panel
- Navigate between them
- The searchbar text and parameters change accordingly

BEFORE:
{F7500811}
AFTER:
{F7500813}

Reviewers: #dolphin, elvisangelaccio

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D24369

src/dolphinviewcontainer.cpp

index 6a8ff914b506d154452aded40568a193e65fb982..8e821d8aae23ed497eba4bb88aad947ef9991c6c 100644 (file)
@@ -396,10 +396,7 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
     m_searchBox->setVisible(enabled);
     m_navigatorWidget->setVisible(!enabled);
 
-    if (enabled) {
-        const QUrl& locationUrl = m_urlNavigator->locationUrl();
-        m_searchBox->fromSearchUrl(locationUrl);
-    } else {
+    if (!enabled) {
         m_view->setViewPropertiesContext(QString());
 
         // Restore the URL for the URL navigator. If Dolphin has been
@@ -674,11 +671,15 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url)
     slotReturnPressed();
 
     if (KProtocolManager::supportsListing(url)) {
-        setSearchModeEnabled(isSearchUrl(url));
+        const bool searchUrl = isSearchUrl(url);
+        if (searchUrl) {
+            m_searchBox->fromSearchUrl(url);
+        }
+        setSearchModeEnabled(searchUrl);
         m_view->setUrl(url);
         tryRestoreViewState();
 
-        if (m_autoGrabFocus && isActive() && !isSearchUrl(url)) {
+        if (m_autoGrabFocus && isActive() && !searchUrl) {
             // When an URL has been entered, the view should get the focus.
             // The focus must be requested asynchronously, as changing the URL might create
             // a new view widget.