┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNate Graham <[email protected]>2020-10-06 12:16:25 -0600
committerNate Graham <[email protected]>2020-10-11 17:02:49 +0000
commit4937992e93088bb572cda971bb899aed0e812aa3 (patch)
treec73f39b00dfbb4b7fd559670a2a65ddc68ffbe10 /src
parent95e34931c0eddd92e8b2a2e0ec6a12ec706955c3 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp11
1 files 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!";
}