X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/37deaaef2c39a4c4b410cd0313a55a4072d2b2ff..47a5071fc9eace09cdc9e4e89eacda06fb893194:/src/main.cpp diff --git a/src/main.cpp b/src/main.cpp index 802e64d25..0a252bc77 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,23 +1,10 @@ -/*************************************************************************** - * Copyright (C) 2006 by Peter Penz * - * Copyright (C) 2006 by Stefan Monov * - * Copyright (C) 2015 by Mathieu Tarral * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2006 Peter Penz + * SPDX-FileCopyrightText: 2006 Stefan Monov + * SPDX-FileCopyrightText: 2015 Mathieu Tarral + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include "dbusinterface.h" #include "dolphin_generalsettings.h" @@ -178,30 +165,37 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) mainWindow->show(); + KDBusService dolphinDBusService; + DBusInterface interface; + if (!app.isSessionRestored()) { KConfigGui::setSessionConfig(QStringLiteral("dolphin"), QStringLiteral("dolphin")); } // Only restore session if: - // 1. Dolphin was not started with command line args + // 1. Not explicitly opening a new instance // 2. The "remember state" setting is enabled or session restoration after // reboot is in use // 3. There is a session available to restore - if (!startedWithURLs && (app.isSessionRestored() || GeneralSettings::rememberOpenedTabs()) ) { + if (!parser.isSet(QStringLiteral("new-window")) + && (app.isSessionRestored() || GeneralSettings::rememberOpenedTabs()) + ) { // Get saved state data for the last-closed Dolphin instance const QString serviceName = QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid()); if (Dolphin::dolphinGuiInstances(serviceName).size() > 0) { const QString className = KXmlGuiWindow::classNameOfToplevel(1); if (className == QLatin1String("DolphinMainWindow")) { mainWindow->restore(1); + // If the user passed any URLs to Dolphin, open those in the + // window after session-restoring it + if (startedWithURLs) { + mainWindow->openDirectories(urls, splitView); + } } else { qCWarning(DolphinDebug) << "Unknown class " << className << " in session saved data!"; } } } - KDBusService dolphinDBusService; - DBusInterface interface; - return app.exec(); // krazy:exclude=crash; }