]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Merge remote-tracking branch 'origin/Applications/18.08'
[dolphin.git] / src / dolphincontextmenu.cpp
index befe98677afaca4738f1377573d7f1603900b955..a521551e59a050e8015f9a40dd74dd9e7b59e864 100644 (file)
@@ -81,6 +81,8 @@ DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
 
 DolphinContextMenu::~DolphinContextMenu()
 {
+    delete m_baseFileItem;
+    m_baseFileItem = nullptr;
     delete m_selectedItemsProperties;
     m_selectedItemsProperties = nullptr;
 }
@@ -231,6 +233,8 @@ void DolphinContextMenu::openItemContextMenu()
 
             addSeparator();
         } else if (m_baseUrl.scheme().contains(QStringLiteral("search")) || m_baseUrl.scheme().contains(QStringLiteral("timeline"))) {
+            addOpenWithActions(fileItemActions);
+
             openParentAction = new QAction(QIcon::fromTheme(QStringLiteral("document-open-folder")),
                                            i18nc("@action:inmenu",
                                                  "Open Path"),
@@ -337,7 +341,12 @@ void DolphinContextMenu::openViewportContextMenu()
     addSeparator();
 
     // Insert 'Open With' entries
-    const KFileItemListProperties baseUrlProperties(KFileItemList() << baseFileItem());
+    KFileItem baseItem = view->rootItem();
+    if (baseItem.isNull() || baseItem.url() != m_baseUrl) {
+        baseItem = baseFileItem();
+    }
+
+    const KFileItemListProperties baseUrlProperties(KFileItemList() << baseItem);
     KFileItemActions fileItemActions;
     fileItemActions.setParentWidget(m_mainWindow);
     fileItemActions.setItemListProperties(baseUrlProperties);
@@ -345,7 +354,7 @@ void DolphinContextMenu::openViewportContextMenu()
 
     // Insert 'New Window' and 'New Tab' entries. Don't use "open_in_new_window" and
     // "open_in_new_tab" here, as the current selection should get ignored.
-    addAction(m_mainWindow->actionCollection()->action(QStringLiteral("new_window")));
+    addAction(m_mainWindow->actionCollection()->action(QStringLiteral("file_new")));
     addAction(m_mainWindow->actionCollection()->action(QStringLiteral("new_tab")));
 
     // Insert 'Add to Places' entry if exactly one item is selected
@@ -361,6 +370,12 @@ void DolphinContextMenu::openViewportContextMenu()
     addAction(pasteAction);
     addSeparator();
 
+    // Insert 'Sort By' and 'View Mode'
+    addAction(m_mainWindow->actionCollection()->action(QStringLiteral("sort")));
+    addAction(m_mainWindow->actionCollection()->action(QStringLiteral("view_mode")));
+
+    addSeparator();
+
     // Insert service actions
     fileItemActions.addServiceActionsTo(this);
     fileItemActions.addPluginActionsTo(this);