1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

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
This commit is contained in:
Gregor Mi 2017-09-21 15:41:26 +02:00 committed by Emmanuel Pescosta
parent 49396318f0
commit 3749b55527
No known key found for this signature in database
GPG Key ID: 67C7A6C81D838246
3 changed files with 17 additions and 1 deletions

View File

@ -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

View File

@ -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);

View File

@ -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