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
This commit is contained in:
Kai Uwe Broulik 2014-09-09 15:31:55 +02:00
parent dacded2afd
commit 42153e55e6
3 changed files with 15 additions and 1 deletions

View file

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

View file

@ -58,6 +58,7 @@ public:
enum Command
{
None,
OpenParentFolder,
OpenParentFolderInNewWindow,
OpenParentFolderInNewTab
};

View file

@ -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<QUrl>() << KIO::upUrl(item.url()), this);