From 00754dda30dc3982d3e8edc5996cdb11b62fd99d Mon Sep 17 00:00:00 2001 From: Emmanuel Pescosta Date: Tue, 8 Jul 2014 19:16:17 +0200 Subject: [PATCH] Avoid opening unused tabs which are closed again after startup has finished (when directory/file urls are given) Instead of always opening a new tab with the home url and closing it again when directory/file urls are passed on, we now use the given directories/files directly to open new tabs on startup. Makes the code easier and we can reuse openDirectories/openFiles in future (if needed). REVIEW: 118966 --- src/dolphinapplication.cpp | 6 +++++- src/dolphinmainwindow.cpp | 26 +++++++------------------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/dolphinapplication.cpp b/src/dolphinapplication.cpp index 8e83a85928..a4b105b90f 100644 --- a/src/dolphinapplication.cpp +++ b/src/dolphinapplication.cpp @@ -34,7 +34,6 @@ DolphinApplication::DolphinApplication() : m_mainWindow = new DolphinMainWindow(); m_mainWindow->setAttribute(Qt::WA_DeleteOnClose); - m_mainWindow->show(); KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); @@ -71,6 +70,9 @@ DolphinApplication::DolphinApplication() : } else { m_mainWindow->openDirectories(urls); } + } else { + const KUrl homeUrl(GeneralSettings::homeUrl()); + m_mainWindow->openNewActivatedTab(homeUrl); } if (resetSplitSettings) { @@ -78,6 +80,8 @@ DolphinApplication::DolphinApplication() : } args->clear(); + + m_mainWindow->show(); } DolphinApplication::~DolphinApplication() diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index d9fe6458d7..0c48928bf4 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -198,9 +198,6 @@ DolphinMainWindow::DolphinMainWindow() : if (!showMenu) { createControlButton(); } - - const KUrl homeUrl(generalSettings->homeUrl()); - openNewActivatedTab(homeUrl); } DolphinMainWindow::~DolphinMainWindow() @@ -209,17 +206,6 @@ DolphinMainWindow::~DolphinMainWindow() void DolphinMainWindow::openDirectories(const QList& dirs) { - if (dirs.isEmpty()) { - return; - } - - if (dirs.count() == 1) { - m_activeViewContainer->setUrl(dirs.first()); - return; - } - - const int oldOpenTabsCount = m_viewTab.count(); - const bool hasSplitView = GeneralSettings::splitView(); // Open each directory inside a new tab. If the "split view" option has been enabled, @@ -234,11 +220,6 @@ void DolphinMainWindow::openDirectories(const QList& dirs) openNewTab(primaryUrl); } } - - // Remove the previously opened tabs - for (int i = 0; i < oldOpenTabsCount; ++i) { - closeTab(0); - } } void DolphinMainWindow::openFiles(const QList& files) @@ -516,6 +497,13 @@ void DolphinMainWindow::openInNewWindow() void DolphinMainWindow::showEvent(QShowEvent* event) { KXmlGuiWindow::showEvent(event); + + if (!m_activeViewContainer && m_viewTab.count() > 0) { + // If we have no active view container yet, we set the primary view container + // of the first tab as active view container. + setActiveTab(0); + } + if (!event->spontaneous()) { m_activeViewContainer->view()->setFocus(); }