From 64d2fd29819fa46c293e8c726c7df2ff00b332b3 Mon Sep 17 00:00:00 2001 From: Michael Heidelbach Date: Tue, 16 Jan 2018 10:23:50 +0100 Subject: [PATCH] Folderspanel's context-menu option "Limit to Home Directory" is always visible Summary: Applied suggested changes to [[ https://phabricator.kde.org/D9662 | D9662 ]] - Enum instead of bool - Use QStringLiteral Test Plan: Visual inspection Reviewers: ngraham, elvisangelaccio, #dolphin Reviewed By: ngraham, #dolphin Subscribers: #dolphin Tags: #dolphin, #kde_applications Differential Revision: https://phabricator.kde.org/D9911 --- src/panels/folders/folderspanel.cpp | 10 +++++----- src/panels/folders/folderspanel.h | 11 +++++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index add7f692b9..4a476ad76a 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -137,7 +137,7 @@ bool FoldersPanel::urlChanged() void FoldersPanel::reloadTree() { if (m_controller) { - loadTree(url(), true); + loadTree(url(), AllowJumpHome); } } @@ -316,7 +316,7 @@ void FoldersPanel::startFadeInAnimation() anim->setDuration(200); } -void FoldersPanel::loadTree(const QUrl& url, bool allowJumpHome) +void FoldersPanel::loadTree(const QUrl& url, FoldersPanel::NavigationBehaviour navigationBehaviour) { Q_ASSERT(m_controller); @@ -327,7 +327,7 @@ void FoldersPanel::loadTree(const QUrl& url, bool allowJumpHome) if (!url.isLocalFile()) { // Clear the path for non-local URLs and use it as base baseUrl = url; - baseUrl.setPath(QString('/')); + baseUrl.setPath(QStringLiteral("/")); } else if (Dolphin::homeUrl().isParentOf(url) || (Dolphin::homeUrl() == url)) { if (FoldersPanelSettings::limitFoldersPanelToHome() ) { baseUrl = Dolphin::homeUrl(); @@ -335,7 +335,7 @@ void FoldersPanel::loadTree(const QUrl& url, bool allowJumpHome) // Use the root directory as base for local URLs (#150941) baseUrl = QUrl::fromLocalFile(QDir::rootPath()); } - } else if (FoldersPanelSettings::limitFoldersPanelToHome() && allowJumpHome) { + } else if (FoldersPanelSettings::limitFoldersPanelToHome() && navigationBehaviour == AllowJumpHome) { baseUrl = Dolphin::homeUrl(); jumpHome = true; } else { @@ -349,7 +349,7 @@ void FoldersPanel::loadTree(const QUrl& url, bool allowJumpHome) } const int index = m_model->index(url); - if (jumpHome == true) { + if (jumpHome) { emit folderActivated(baseUrl); } else if (index >= 0) { updateCurrentItem(index); diff --git a/src/panels/folders/folderspanel.h b/src/panels/folders/folderspanel.h index a653b45840..3b27dd3dda 100644 --- a/src/panels/folders/folderspanel.h +++ b/src/panels/folders/folderspanel.h @@ -85,13 +85,20 @@ private slots: private: + /** + * Indicate if it is allowed to leave current location. + */ + enum NavigationBehaviour { + StayWhereYouAre, ///< Don't leave current location. + AllowJumpHome ///< Go Home only when context menu option got checked. + }; /** * Initializes the base URL of the tree and expands all * directories until \a url. * @param url URL of the leaf directory that should get expanded. - * @param allowJumpHome indicate context menu got checked. + * @param navigationBehaviour Navigation behaviour \see NavigationBehaviour */ - void loadTree(const QUrl& url, bool allowJumpHome = false); + void loadTree(const QUrl& url, NavigationBehaviour navigationBehaviour = StayWhereYouAre); void reloadTree();