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
This commit is contained in:
Emmanuel Pescosta 2014-07-08 19:16:17 +02:00
parent c25b501898
commit 00754dda30
2 changed files with 12 additions and 20 deletions

View file

@ -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()

View file

@ -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<KUrl>& 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<KUrl>& dirs)
openNewTab(primaryUrl);
}
}
// Remove the previously opened tabs
for (int i = 0; i < oldOpenTabsCount; ++i) {
closeTab(0);
}
}
void DolphinMainWindow::openFiles(const QList<KUrl>& 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();
}