CppTools: Do not clear project state on session unload

Affected functionality was, among others:
 * Getting the correct project part when opening a file
 * Fallback project part (merged defines/includes) not up to date
 * Fallback for "Switch Header/Source" not up to date

In the early days sessions switching was probably implemented by "close
all projects of session X, open all projects of session Y". That's not
the case anymore today.

Change-Id: I4c6a80e2eb219615d3ea6fcf07be7c05072c8832
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2016-02-10 15:33:38 +01:00
parent eb96cb45ff
commit e1b14565fa
2 changed files with 1 additions and 14 deletions

View File

@@ -326,8 +326,6 @@ CppModelManager::CppModelManager(QObject *parent)
this, SLOT(onAboutToRemoveProject(ProjectExplorer::Project*))); this, SLOT(onAboutToRemoveProject(ProjectExplorer::Project*)));
connect(sessionManager, SIGNAL(aboutToLoadSession(QString)), connect(sessionManager, SIGNAL(aboutToLoadSession(QString)),
this, SLOT(onAboutToLoadSession())); this, SLOT(onAboutToLoadSession()));
connect(sessionManager, SIGNAL(aboutToUnloadSession(QString)),
this, SLOT(onAboutToUnloadSession()));
connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged,
this, &CppModelManager::onCurrentEditorChanged); this, &CppModelManager::onCurrentEditorChanged);
@@ -1061,17 +1059,6 @@ void CppModelManager::onAboutToLoadSession()
GC(); GC();
} }
void CppModelManager::onAboutToUnloadSession()
{
Core::ProgressManager::cancelTasks(CppTools::Constants::TASK_INDEX);
do {
QMutexLocker locker(&d->m_projectMutex);
d->m_projectToProjectsInfo.clear();
recalculateProjectPartMappings();
d->m_dirty = true;
} while (0);
}
void CppModelManager::renameIncludes(const QString &oldFileName, const QString &newFileName) void CppModelManager::renameIncludes(const QString &oldFileName, const QString &newFileName)
{ {
if (oldFileName.isEmpty() || newFileName.isEmpty()) if (oldFileName.isEmpty() || newFileName.isEmpty())
@@ -1103,6 +1090,7 @@ void CppModelManager::renameIncludes(const QString &oldFileName, const QString &
void CppModelManager::onCoreAboutToClose() void CppModelManager::onCoreAboutToClose()
{ {
Core::ProgressManager::cancelTasks(CppTools::Constants::TASK_INDEX);
d->m_enableGC = false; d->m_enableGC = false;
} }

View File

@@ -197,7 +197,6 @@ private slots:
// This should be executed in the GUI thread. // This should be executed in the GUI thread.
friend class Tests::ModelManagerTestHelper; friend class Tests::ModelManagerTestHelper;
void onAboutToLoadSession(); void onAboutToLoadSession();
void onAboutToUnloadSession();
void renameIncludes(const QString &oldFileName, const QString &newFileName); void renameIncludes(const QString &oldFileName, const QString &newFileName);
void onProjectAdded(ProjectExplorer::Project *project); void onProjectAdded(ProjectExplorer::Project *project);
void onAboutToRemoveProject(ProjectExplorer::Project *project); void onAboutToRemoveProject(ProjectExplorer::Project *project);