Session: Restore session/open files after initialization

Only restore a session or file from the command line (or the setting)
after initialization is completely done.

Kit restoration moved to delayedInitialize, and before that we cannot
sensibly open a session anyway.

Change-Id: I73b984a8744729ea63af16b1f0161b49a2cd5d55
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Eike Ziller
2023-09-15 15:38:18 +02:00
parent 116a51343e
commit 431583872a

View File

@@ -117,7 +117,9 @@ SessionManager::SessionManager()
m_instance = this;
d = new SessionManagerPrivate;
connect(ICore::instance(), &ICore::coreOpened, this, [] { d->restoreStartupSession(); });
connect(PluginManager::instance(), &PluginManager::initializationDone, this, [] {
d->restoreStartupSession();
});
connect(ModeManager::instance(), &ModeManager::currentModeChanged,
this, &SessionManager::saveActiveMode);
@@ -449,13 +451,10 @@ void SessionManagerPrivate::restoreStartupSession()
: QString(),
true);
// delay opening projects from the command line even more
QTimer::singleShot(0, m_instance, [arguments] {
ICore::openFiles(Utils::transform(arguments, &FilePath::fromUserInput),
ICore::OpenFilesFlags(ICore::CanContainLineAndColumnNumbers
| ICore::SwitchMode));
emit m_instance->startupSessionRestored();
});
ICore::openFiles(Utils::transform(arguments, &FilePath::fromUserInput),
ICore::OpenFilesFlags(ICore::CanContainLineAndColumnNumbers
| ICore::SwitchMode));
emit m_instance->startupSessionRestored();
}
void SessionManagerPrivate::saveSettings()