From 4937992e93088bb572cda971bb899aed0e812aa3 Mon Sep 17 00:00:00 2001 From: Nate Graham Date: Tue, 6 Oct 2020 12:16:25 -0600 Subject: [PATCH] When restoring former window state, append any URLs passed as args Before, when Dolphin was closed but opened with any URLs, it would open a new window with only those URLs, rather than restoring any window state (if the user has this feature enabled). Now, Dolphin will first restore state (if enabled) and then append any URLs, rather than replacing the existing set of URLs. The "new instance" case was previously handled automatically and now needs to be explictly handled by checking for it, to make sure that new instances give you a clean window rather than a state-restored window. BUG: 427274 FIXED-IN: 20.12 --- src/main.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8b3121d22..0a252bc77 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -173,17 +173,24 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) } // 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!"; } -- 2.47.3