]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Update searchbar parameters on URL change
[dolphin.git] / src / dolphinviewcontainer.cpp
index 1e5d0f7d18c21fdc549bf0fff7bc893097ce3a7f..8e821d8aae23ed497eba4bb88aad947ef9991c6c 100644 (file)
@@ -80,6 +80,18 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
     QHBoxLayout* navigatorLayout = new QHBoxLayout(m_navigatorWidget);
     navigatorLayout->setSpacing(0);
     navigatorLayout->setContentsMargins(0, 0, 0, 0);
+    m_navigatorWidget->setWhatsThis(xi18nc("@info:whatsthis location bar",
+        "<para>This line describes the location of the files and folders "
+        "displayed below.</para><para>The name of the currently viewed "
+        "folder can be read at the very right. To the left of it is the "
+        "name of the folder that contains it. The whole line is called "
+        "the <emphasis>path</emphasis> to the current location because "
+        "following these folders from left to right leads here.</para>"
+        "<para>The path is displayed on the <emphasis>location bar</emphasis> "
+        "which is more powerful than one would expect. To learn more "
+        "about the basic and advanced features of the location bar "
+        "<link url='help:/dolphin/location-bar.html'>click here</link>. "
+        "This will open the dedicated page in the Handbook.</para>"));
 
     m_urlNavigator = new KUrlNavigator(DolphinPlacesModelSingleton::instance().placesModel(), url, this);
     connect(m_urlNavigator, &KUrlNavigator::activated,
@@ -107,6 +119,18 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
     connect(m_searchBox, &DolphinSearchBox::closeRequest, this, &DolphinViewContainer::closeSearchBox);
     connect(m_searchBox, &DolphinSearchBox::searchRequest, this, &DolphinViewContainer::startSearching);
     connect(m_searchBox, &DolphinSearchBox::returnPressed, this, &DolphinViewContainer::requestFocus);
+    m_searchBox->setWhatsThis(xi18nc("@info:whatsthis findbar",
+        "<para>This helps you find files and folders. Enter a <emphasis>"
+        "search term</emphasis> and specify search settings with the "
+        "buttons at the bottom:<list><item>Filename/Content: "
+        "Does the item you are looking for contain the search terms "
+        "within its filename or its contents?<nl/>The contents of images, "
+        "audio files and videos will not be searched.</item><item>"
+        "From Here/Everywhere: Do you want to search in this "
+        "folder and its sub-folders or everywhere?</item><item>"
+        "More Options: Click this to search by media type, access "
+        "time or rating.</item><item>More Search Tools: Install other "
+        "means to find an item.</item></list></para>"));
 
     m_messageWidget = new KMessageWidget(this);
     m_messageWidget->setCloseButtonVisible(true);
@@ -372,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
@@ -402,7 +423,7 @@ QString DolphinViewContainer::placesText() const
     if (isSearchModeEnabled()) {
         text = i18n("Search for %1 in %2", m_searchBox->text(), m_searchBox->searchPath().fileName());
     } else {
-        text = url().fileName();
+        text = url().adjusted(QUrl::StripTrailingSlash).fileName();
         if (text.isEmpty()) {
             text = url().host();
         }
@@ -542,6 +563,7 @@ void DolphinViewContainer::slotDirectoryLoadingStarted()
         // Trigger an undetermined progress indication. The progress
         // information in percent will be triggered by the percent() signal
         // of the directory lister later.
+        m_statusBar->setProgressText(QString());
         updateDirectoryLoadingProgress(-1);
     }
 }
@@ -649,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.