From 42153e55e64d25dd0a1df30ae13c746320c7774a Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Tue, 9 Sep 2014 15:31:55 +0200 Subject: [PATCH] Add "Open Path" context menu action This adds a third option to the "in new tab" and "in new window" which opens the parent folder in the same view BUG: 298704 FIXED-IN: 4.15 REVIEW: 110133 --- src/dolphincontextmenu.cpp | 11 ++++++++++- src/dolphincontextmenu.h | 1 + src/dolphinmainwindow.cpp | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 22272fb74b..e74adca558 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -200,6 +200,7 @@ void DolphinContextMenu::openItemContextMenu() { Q_ASSERT(!m_fileInfo.isNull()); + QAction* openParentAction = 0; QAction* openParentInNewWindowAction = 0; QAction* openParentInNewTabAction = 0; QAction* addToPlacesAction = 0; @@ -235,7 +236,13 @@ void DolphinContextMenu::openItemContextMenu() } addSeparator(); - } else if (m_baseUrl.protocol().contains("search")) { + } else if (m_baseUrl.protocol().contains("search") || m_baseUrl.protocol().contains("timeline")) { + openParentAction = new QAction(QIcon::fromTheme("document-open-folder"), + i18nc("@action:inmenu", + "Open Path"), + this); + addAction(openParentAction); + openParentInNewWindowAction = new QAction(QIcon::fromTheme("window-new"), i18nc("@action:inmenu", "Open Path in New Window"), @@ -306,6 +313,8 @@ void DolphinContextMenu::openItemContextMenu() PlacesItem* item = model.createPlacesItem(text, selectedUrl); model.appendItemToGroup(item); } + } else if (activatedAction == openParentAction) { + m_command = OpenParentFolder; } else if (activatedAction == openParentInNewWindowAction) { m_command = OpenParentFolderInNewWindow; } else if (activatedAction == openParentInNewTabAction) { diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h index 180f91787c..3646ebcb51 100644 --- a/src/dolphincontextmenu.h +++ b/src/dolphincontextmenu.h @@ -58,6 +58,7 @@ public: enum Command { None, + OpenParentFolder, OpenParentFolderInNewWindow, OpenParentFolderInNewTab }; diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 21d1320201..f9ebe33ac5 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -773,6 +773,10 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos, const DolphinContextMenu::Command command = contextMenu.data()->open(); switch (command) { + case DolphinContextMenu::OpenParentFolder: + changeUrl(KIO::upUrl(item.url())); + break; + case DolphinContextMenu::OpenParentFolderInNewWindow: { KRun::run("dolphin %u", QList() << KIO::upUrl(item.url()), this);