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(); }