mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
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
This commit is contained in:
parent
95e34931c0
commit
4937992e93
11
src/main.cpp
11
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!";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue