From ec9f4ed17c9c71078eac838060024aef5ca8b2c3 Mon Sep 17 00:00:00 2001 From: Emirald Mateli Date: Sun, 11 Jun 2017 19:26:52 +0200 Subject: [PATCH] Change in "Open in new tab" feature in Dolphin 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 | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index e28e540d15..4b01272b7e 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -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()