]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Get rid of -Wdeprecated-copy warning
[dolphin.git] / src / dolphinviewcontainer.cpp
index 1e5d0f7d18c21fdc549bf0fff7bc893097ce3a7f..9ed7654fafaf9388e9a4e4cd368aa15044dbe0da 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);
@@ -361,6 +385,14 @@ bool DolphinViewContainer::isFilterBarVisible() const
 
 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);
+    }
+
     if (enabled == isSearchModeEnabled()) {
         if (enabled && !m_searchBox->hasFocus()) {
             m_searchBox->setFocus();
@@ -369,13 +401,7 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
         return;
     }
 
-    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
@@ -388,6 +414,8 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
     }
 
     m_searchModeEnabled = enabled;
+
+    emit searchModeEnabledChanged(enabled);
 }
 
 bool DolphinViewContainer::isSearchModeEnabled() const
@@ -402,7 +430,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();
         }
@@ -430,7 +458,7 @@ QString DolphinViewContainer::caption() const
     }
 
     KFilePlacesModel *placesModel = DolphinPlacesModelSingleton::instance().placesModel();
-    const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, url(), 1, Qt::MatchExactly);
+    const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, QUrl(url().adjusted(QUrl::StripTrailingSlash).toString(QUrl::FullyEncoded).append("/?")), 1, Qt::MatchRegExp);
 
     if (!matchedPlaces.isEmpty()) {
         return placesModel->text(matchedPlaces.first());
@@ -482,6 +510,7 @@ void DolphinViewContainer::setFilterBarVisible(bool visible)
 {
     Q_ASSERT(m_filterBar);
     if (visible) {
+        m_view->hideToolTip(ToolTipManager::HideBehavior::Instantly);
         m_filterBar->show();
         m_filterBar->setFocus();
         m_filterBar->selectAll();
@@ -542,6 +571,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);
     }
 }
@@ -630,6 +660,7 @@ void DolphinViewContainer::closeFilterBar()
 
 void DolphinViewContainer::setNameFilter(const QString& nameFilter)
 {
+    m_view->hideToolTip(ToolTipManager::HideBehavior::Instantly);
     m_view->setNameFilter(nameFilter);
     delayedStatusBarUpdate();
 }
@@ -672,7 +703,7 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url)
                 app = browser;
                 if (app.startsWith('!')) {
                     // a literal command has been configured, remove the '!' prefix
-                    app = app.mid(1);
+                    app.remove(0, 1);
                 }
             }
         } else {
@@ -697,7 +728,7 @@ void DolphinViewContainer::slotUrlSelectionRequested(const QUrl& url)
 
 void DolphinViewContainer::redirect(const QUrl& oldUrl, const QUrl& newUrl)
 {
-    Q_UNUSED(oldUrl);
+    Q_UNUSED(oldUrl)
     const bool block = m_urlNavigator->signalsBlocked();
     m_urlNavigator->blockSignals(true);
 
@@ -760,7 +791,7 @@ void DolphinViewContainer::showErrorMessage(const QString& msg)
 
 bool DolphinViewContainer::isSearchUrl(const QUrl& url) const
 {
-    return url.scheme().contains(QStringLiteral("search"));
+    return url.scheme().contains(QLatin1String("search"));
 }
 
 void DolphinViewContainer::saveViewState()