From be84387f80fded7973f61d23ebb256398930b34e Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 15 Feb 2011 15:25:44 +0100 Subject: [PATCH] Improve restoration of last session * Prefer command line arguments on session management to settings. Reviewed-by: thorbjorn --- src/plugins/projectexplorer/projectexplorer.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 7b1dd6b3165..c0f23bc5969 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1252,10 +1252,10 @@ void ProjectExplorerPlugin::currentModeChanged(Core::IMode *mode, Core::IMode *o void ProjectExplorerPlugin::determineSessionToRestoreAtStartup() { QStringList arguments = ExtensionSystem::PluginManager::instance()->arguments(); - if (arguments.contains("-lastsession") - || d->m_projectExplorerSettings.autorestoreLastSession) { + // Process command line arguments first: + if (arguments.contains("-lastsession")) d->m_sessionToRestoreAtStartup = d->m_session->lastSession(); - } else { + if (d->m_sessionToRestoreAtStartup.isNull()) { QStringList sessions = d->m_session->sessions(); // We have command line arguments, try to find a session in them // Default to no session loading @@ -1267,6 +1267,10 @@ void ProjectExplorerPlugin::determineSessionToRestoreAtStartup() } } } + // Handle settings only after command line arguments: + if (d->m_sessionToRestoreAtStartup.isNull() + && d->m_projectExplorerSettings.autorestoreLastSession) + d->m_sessionToRestoreAtStartup = d->m_session->lastSession(); if (!d->m_sessionToRestoreAtStartup.isNull()) Core::ICore::instance()->modeManager()->activateMode(Core::Constants::MODE_EDIT);