X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/de077f8477c0b7077ed9239be8741fcb67658ffa..3515582495f9aa02369a342d73c11079fcdcd654:/src/dolphinapplication.cpp diff --git a/src/dolphinapplication.cpp b/src/dolphinapplication.cpp index 9dc0cf0f7..da9358e37 100644 --- a/src/dolphinapplication.cpp +++ b/src/dolphinapplication.cpp @@ -21,55 +21,64 @@ #include "dolphinapplication.h" #include "dolphinmainwindow.h" #include "dolphin_generalsettings.h" -#include "settings/dolphinsettings.h" #include #include -#include -#include +#include DolphinApplication::DolphinApplication() : m_mainWindow(0) { m_mainWindow = new DolphinMainWindow(); m_mainWindow->setAttribute(Qt::WA_DeleteOnClose); - m_mainWindow->show(); KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); + const int argsCount = args->count(); + + QList urls; + for (int i = 0; i < argsCount; ++i) { + const QUrl url = args->url(i); + if (url.isValid()) { + urls.append(url); + } + } + bool resetSplitSettings = false; - GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); - if (args->isSet("split") && !generalSettings->splitView()) { + if (args->isSet("split") && !GeneralSettings::splitView()) { // Dolphin should be opened with a split view although this is not // set in the GeneralSettings. Temporary adjust the setting until // all passed URLs have been opened. - generalSettings->setSplitView(true); + GeneralSettings::setSplitView(true); resetSplitSettings = true; - } - const int argsCount = args->count(); - if (argsCount > 0) { - QList urls; - for (int i = 0; i < argsCount; ++i) { - const KUrl url = args->url(i); - if (url.isValid()) { - urls.append(url); - } + // We need 2 URLs to open Dolphin in split view mode + if (urls.isEmpty()) { // No URL given - Open home URL in all two views + urls.append(GeneralSettings::homeUrl()); + urls.append(GeneralSettings::homeUrl()); + } else if (urls.length() == 1) { // Only 1 URL given - Open given URL in all two views + urls.append(urls.at(0)); } + } - if (!urls.isEmpty()) { - if (args->isSet("select")) { - m_mainWindow->openFiles(urls); - } else { - m_mainWindow->openDirectories(urls); - } + if (!urls.isEmpty()) { + if (args->isSet("select")) { + m_mainWindow->openFiles(urls); + } else { + m_mainWindow->openDirectories(urls); } + } else { + const QUrl homeUrl(QUrl::fromLocalFile(GeneralSettings::homeUrl())); + m_mainWindow->openNewActivatedTab(homeUrl); } - args->clear(); if (resetSplitSettings) { - generalSettings->setSplitView(false); + GeneralSettings::setSplitView(false); } + + args->clear(); + + m_mainWindow->show(); } DolphinApplication::~DolphinApplication() @@ -83,12 +92,11 @@ DolphinApplication* DolphinApplication::app() void DolphinApplication::restoreSession() { - const QString className = KXmlGuiWindow::classNameOfToplevel(0); + const QString className = KXmlGuiWindow::classNameOfToplevel(1); if (className == QLatin1String("DolphinMainWindow")) { - m_mainWindow->restore(0); + m_mainWindow->restore(1); } else { kWarning() << "Unknown class " << className << " in session saved data!"; } } -#include "dolphinapplication.moc"