Improve restoration of last session

* Prefer command line arguments on session management to
  settings.

Reviewed-by: thorbjorn
This commit is contained in:
Tobias Hunger
2011-02-15 15:25:44 +01:00
parent b44d71b387
commit be84387f80

View File

@@ -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);