]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Merge remote-tracking branch 'origin/master' into kf6
[dolphin.git] / src / dolphincontextmenu.cpp
index 2eff1017f9d716adc01887f8f7f009b49a21e9e9..34d2102ef0e83df6e5a90fb3fc09cf105c11436b 100644 (file)
@@ -27,7 +27,6 @@
 #include <KLocalizedString>
 #include <KNewFileMenu>
 #include <KStandardAction>
-#include <kio_version.h>
 
 #include <QApplication>
 #include <QClipboard>
@@ -138,7 +137,7 @@ void DolphinContextMenu::addTrashItemContextMenu()
     addAction(QIcon::fromTheme("restoration"), i18nc("@action:inmenu", "Restore"), [this]() {
         QList<QUrl> selectedUrls;
         selectedUrls.reserve(m_selectedItems.count());
-        for (const KFileItem &item : qAsConst(m_selectedItems)) {
+        for (const KFileItem &item : std::as_const(m_selectedItems)) {
             selectedUrls.append(item.url());
         }
 
@@ -165,11 +164,15 @@ void DolphinContextMenu::addDirectoryItemContextMenu()
         addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_new_window")));
     }
 
+    if (ContextMenuSettings::showOpenInSplitView()) {
+        addAction(m_mainWindow->actionCollection()->action(QStringLiteral("open_in_split_view")));
+    }
+
     // Insert 'Open With' entries
     addOpenWithActions();
 
     // set up 'Create New' menu
-    DolphinNewFileMenu *newFileMenu = new DolphinNewFileMenu(m_mainWindow->actionCollection(), m_mainWindow);
+    DolphinNewFileMenu *newFileMenu = new DolphinNewFileMenu(m_mainWindow->actionCollection()->action(QStringLiteral("create_dir")), m_mainWindow);
     newFileMenu->checkUpToDate();
     newFileMenu->setWorkingDirectory(m_fileInfo.url());
     newFileMenu->setEnabled(selectedItemsProps.supportsWriting());
@@ -187,17 +190,19 @@ void DolphinContextMenu::addDirectoryItemContextMenu()
 void DolphinContextMenu::addOpenParentFolderActions()
 {
     addAction(QIcon::fromTheme(QStringLiteral("document-open-folder")), i18nc("@action:inmenu", "Open Path"), [this]() {
-        m_mainWindow->changeUrl(KIO::upUrl(m_fileInfo.url()));
-        m_mainWindow->activeViewContainer()->view()->markUrlsAsSelected({m_fileInfo.url()});
-        m_mainWindow->activeViewContainer()->view()->markUrlAsCurrent(m_fileInfo.url());
+        const QUrl url = m_fileInfo.targetUrl();
+        const QUrl parentUrl = KIO::upUrl(url);
+        m_mainWindow->changeUrl(parentUrl);
+        m_mainWindow->activeViewContainer()->view()->markUrlsAsSelected({url});
+        m_mainWindow->activeViewContainer()->view()->markUrlAsCurrent(url);
     });
 
     addAction(QIcon::fromTheme(QStringLiteral("tab-new")), i18nc("@action:inmenu", "Open Path in New Tab"), [this]() {
-        m_mainWindow->openNewTab(KIO::upUrl(m_fileInfo.url()));
+        m_mainWindow->openNewTab(KIO::upUrl(m_fileInfo.targetUrl()));
     });
 
     addAction(QIcon::fromTheme(QStringLiteral("window-new")), i18nc("@action:inmenu", "Open Path in New Window"), [this]() {
-        Dolphin::openNewWindow({m_fileInfo.url()}, m_mainWindow, Dolphin::OpenNewWindowFlag::Select);
+        Dolphin::openNewWindow({m_fileInfo.targetUrl()}, m_mainWindow, Dolphin::OpenNewWindowFlag::Select);
     });
 }
 
@@ -230,7 +235,7 @@ void DolphinContextMenu::addItemContextMenu()
     } else {
         // multiple files
         bool selectionHasOnlyDirs = true;
-        for (const auto &item : qAsConst(m_selectedItems)) {
+        for (const auto &item : std::as_const(m_selectedItems)) {
             const QUrl &url = DolphinView::openItemAsFolderUrl(item);
             if (url.isEmpty()) {
                 selectionHasOnlyDirs = false;