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
}
// Only restore session if:
}
// 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
// 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);
// 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!";
}
} else {
qCWarning(DolphinDebug) << "Unknown class " << className << " in session saved data!";
}