Unverified Commit 3749b555 authored by Gregor Mi's avatar Gregor Mi Committed by Emmanuel Pescosta

Select child folder when navigating to a parent folder

Whenever the dolphin view is initialized to show the contents of a new URL
(e.g. "/home/x/test") it will be checked if the new URL is a parent of the
previous displayed URL (e.g. "/home/x/test/documents/aaa"). If the check is
successful, then the common child (in this example: "/home/x/test/documents/")
folder item will be selected and scrolled into view.

REVIEW: 123253
BUG: 377392
CCBUG: 335616
parent 49396318
......@@ -8,7 +8,7 @@ set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATI
project(Dolphin VERSION ${KDE_APPLICATIONS_VERSION})
set(QT_MIN_VERSION "5.5.0")
set(KF5_MIN_VERSION "5.30.0")
set(KF5_MIN_VERSION "5.37.0")
set(ECM_MIN_VERSION "1.6.0")
# ECM setup
......
......@@ -24,6 +24,7 @@
#include <QTimer>
#include <QMimeData>
#include <QVBoxLayout>
#include <QLoggingCategory>
#include <KFileItemActions>
#include <KFilePlacesModel>
......@@ -41,6 +42,7 @@
#endif
#include "global.h"
#include "dolphindebug.h"
#include "dolphin_generalsettings.h"
#include "filterbar/filterbar.h"
#include "search/dolphinsearchbox.h"
......@@ -134,6 +136,8 @@ 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, this, [=](const QUrl &destination, QDropEvent *event) {
......@@ -600,6 +604,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);
......
......@@ -256,6 +256,11 @@ private slots:
*/
void slotUrlNavigatorLocationChanged(const QUrl& url);
/**
* @see KUrlNavigator::urlSelectionRequested
*/
void slotUrlSelectionRequested(const QUrl& url);
/**
* Is invoked when a redirection is done and changes the
* URL of the URL navigator to \a newUrl without triggering
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment