]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Added the "Open in new Tabs" action to the Dolphin Context menu.
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Wed, 22 May 2013 19:47:14 +0000 (21:47 +0200)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Wed, 22 May 2013 19:47:14 +0000 (21:47 +0200)
BUG: 312296
REVIEW: 110371
FIXED-IN: 4.11.0

src/dolphincontextmenu.cpp
src/dolphinmainwindow.cpp

index af8b61384938c6dd8d2a0d7b37c838dd9aa9c16d..cddcc8936c68a745758a286787aa1d72086e7779 100644 (file)
@@ -235,6 +235,20 @@ void DolphinContextMenu::openItemContextMenu()
                                                    this);
             addAction(openParentInNewTabAction);
 
+            addSeparator();
+        }
+    } else {
+        bool selectionHasOnlyDirs = true;
+        foreach (const KFileItem& item, m_selectedItems) {
+            if (!item.isDir()) {
+                selectionHasOnlyDirs = false;
+                break;
+            }
+        }
+
+        if (selectionHasOnlyDirs) {
+            // insert 'Open in new tab' entry
+            addAction(m_mainWindow->actionCollection()->action("open_in_new_tabs"));
             addSeparator();
         }
     }
index 347489d6b429f139a149080b1beecb4c39fcf9b2..3b169a57dab9a531f581b19b4fa8d96b5e411c54 100644 (file)
@@ -520,11 +520,15 @@ void DolphinMainWindow::activatePrevTab()
 
 void DolphinMainWindow::openInNewTab()
 {
-    const KFileItemList list = m_activeViewContainer->view()->selectedItems();
+    const KFileItemList& list = m_activeViewContainer->view()->selectedItems();
     if (list.isEmpty()) {
         openNewTab(m_activeViewContainer->url());
-    } else if ((list.count() == 1) && list[0].isDir()) {
-        openNewTab(list[0].url());
+    } else {
+        foreach (const KFileItem& item, list) {
+            if (item.isDir()) {
+                openNewTab(item.url());
+            }
+        }
     }
 }
 
@@ -1645,6 +1649,11 @@ void DolphinMainWindow::setupActions()
     openInNewTab->setIcon(KIcon("tab-new"));
     connect(openInNewTab, SIGNAL(triggered()), this, SLOT(openInNewTab()));
 
+    KAction* openInNewTabs = actionCollection()->addAction("open_in_new_tabs");
+    openInNewTabs->setText(i18nc("@action:inmenu", "Open in New Tabs"));
+    openInNewTabs->setIcon(KIcon("tab-new"));
+    connect(openInNewTabs, SIGNAL(triggered()), this, SLOT(openInNewTab()));
+
     KAction* openInNewWindow = actionCollection()->addAction("open_in_new_window");
     openInNewWindow->setText(i18nc("@action:inmenu", "Open in New Window"));
     openInNewWindow->setIcon(KIcon("window-new"));