]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Change in "Open in new tab" feature in Dolphin
authorEmirald Mateli <aldo.mateli@gmail.com>
Sun, 11 Jun 2017 17:26:52 +0000 (19:26 +0200)
committerElvis Angelaccio <elvis.angelaccio@kde.org>
Sun, 11 Jun 2017 17:28:39 +0000 (19:28 +0200)
Summary:
This patch proposes a change to the "open in new tab" feature.

The "open in new tab" feature will try to open selected items (files or folders) in a new tab, however, if there are no valid items to be opened in a new tab then nothing will happen, making it look like a bug. This patch adds the functionality that when there are no valid items(files or folders) to be opened in a new tab the current folder will be opened.

Test Plan:
1. Select a file(pdf, text, image etc) in Dolphin
2. Click on the "Open in new tab" toolbar button

Expected: since the file is not a valid target to open in a new tab, the current directory should be opened (as is the case where selection is empty)
Actual: Nothing happens after the button is pressed

Reviewed By: #dolphin, elvisangelaccio

Differential Revision: https://phabricator.kde.org/D6182

src/dolphinmainwindow.cpp

index e28e540d15ebb97974fcd7d65dd222b078409a79..4b01272b7e2a372b7735b48f5afb3508a2a21d04 100644 (file)
@@ -306,16 +306,21 @@ void DolphinMainWindow::openNewTab(const QUrl& url)
 void DolphinMainWindow::openInNewTab()
 {
     const KFileItemList& list = m_activeViewContainer->view()->selectedItems();
-    if (list.isEmpty()) {
-        openNewTab(m_activeViewContainer->url());
-    } else {
-        foreach (const KFileItem& item, list) {
-            const QUrl& url = DolphinView::openItemAsFolderUrl(item);
-            if (!url.isEmpty()) {
-                openNewTab(url);
-            }
+    bool tabCreated = false;
+
+    foreach (const KFileItem& item, list) {
+        const QUrl& url = DolphinView::openItemAsFolderUrl(item);
+        if (!url.isEmpty()) {
+            openNewTab(url);
+            tabCreated = true;
         }
     }
+
+    // if no new tab has been created from the selection
+    // open the current directory in a new tab
+    if (!tabCreated) {
+        openNewTab(m_activeViewContainer->url());
+    }
 }
 
 void DolphinMainWindow::openInNewWindow()