]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Change window title when searching
[dolphin.git] / src / dolphinviewcontainer.cpp
index 72ced931b709f21d95848b541372b618df8edab5..83b9f4343778235f303f6893324e4d288c28a5c2 100644 (file)
 #include <QTimer>
 #include <QMimeData>
 #include <QVBoxLayout>
+#include <QLoggingCategory>
 
 #include <KFileItemActions>
 #include <KFilePlacesModel>
 #include <KLocalizedString>
 #include <KIO/PreviewJob>
+#include <kio_version.h>
 #include <KMessageWidget>
 #include <KShell>
 #include <QUrl>
@@ -40,6 +42,7 @@
 #endif
 
 #include "global.h"
+#include "dolphindebug.h"
 #include "dolphin_generalsettings.h"
 #include "filterbar/filterbar.h"
 #include "search/dolphinsearchbox.h"
 
 DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
     QWidget(parent),
-    m_topLayout(0),
-    m_urlNavigator(0),
-    m_searchBox(0),
-    m_messageWidget(0),
-    m_view(0),
-    m_filterBar(0),
-    m_statusBar(0),
-    m_statusBarTimer(0),
+    m_topLayout(nullptr),
+    m_urlNavigator(nullptr),
+    m_searchBox(nullptr),
+    m_messageWidget(nullptr),
+    m_view(nullptr),
+    m_filterBar(nullptr),
+    m_statusBar(nullptr),
+    m_statusBarTimer(nullptr),
     m_statusBarTimestamp(),
     m_autoGrabFocus(true)
 #ifdef KActivities_FOUND
@@ -133,10 +136,18 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
             this, &DolphinViewContainer::slotUrlNavigatorLocationAboutToBeChanged);
     connect(m_urlNavigator, &KUrlNavigator::urlChanged,
             this, &DolphinViewContainer::slotUrlNavigatorLocationChanged);
+    connect(m_urlNavigator, &KUrlNavigator::urlSelectionRequested,
+            this, &DolphinViewContainer::slotUrlSelectionRequested);
     connect(m_urlNavigator, &KUrlNavigator::returnPressed,
             this, &DolphinViewContainer::slotReturnPressed);
-    connect(m_urlNavigator, &KUrlNavigator::urlsDropped,
-            m_view, &DolphinView::dropUrls);
+    connect(m_urlNavigator, &KUrlNavigator::urlsDropped, this, [=](const QUrl &destination, QDropEvent *event) {
+#if KIO_VERSION >= QT_VERSION_CHECK(5, 37, 0)
+        m_view->dropUrls(destination, event, m_urlNavigator->dropWidget());
+#else
+        // TODO: remove as soon as we can hard-depend of KF5 >= 5.37
+        m_view->dropUrls(destination, event, m_view);
+#endif
+    });
 
     // Initialize status bar
     m_statusBar = new DolphinStatusBar(this);
@@ -234,6 +245,11 @@ bool DolphinViewContainer::autoGrabFocus() const
     return m_autoGrabFocus;
 }
 
+QString DolphinViewContainer::currentSearchText() const
+{
+     return m_searchBox->text();
+}
+
 const DolphinStatusBar* DolphinViewContainer::statusBar() const
 {
     return m_statusBar;
@@ -351,7 +367,7 @@ QString DolphinViewContainer::placesText() const
     QString text;
 
     if (isSearchModeEnabled()) {
-        text = m_searchBox->searchPath().fileName() + QLatin1String(": ") + m_searchBox->text();
+        text = i18n("Search for %1 in %2", m_searchBox->text(), m_searchBox->searchPath().fileName());
     } else {
         text = url().fileName();
         if (text.isEmpty()) {
@@ -593,6 +609,13 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url)
     }
 }
 
+void DolphinViewContainer::slotUrlSelectionRequested(const QUrl& url)
+{
+    qCDebug(DolphinDebug) << "slotUrlSelectionRequested: " << url;
+    m_view->markUrlsAsSelected({url});
+    m_view->markUrlAsCurrent(url); // makes the item scroll into view
+}
+
 void DolphinViewContainer::redirect(const QUrl& oldUrl, const QUrl& newUrl)
 {
     Q_UNUSED(oldUrl);