From: Kai Uwe Broulik Date: Tue, 9 Sep 2014 13:31:55 +0000 (+0200) Subject: Add "Open Path" context menu action X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/42153e55e64d25dd0a1df30ae13c746320c7774a 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 --- diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 22272fb74..e74adca55 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 180f91787..3646ebcb5 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 21d132020..f9ebe33ac 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);