diff options
author | Daniel Teske <daniel.teske@digia.com> | 2014-08-06 16:54:18 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@digia.com> | 2014-09-03 17:31:09 +0200 |
commit | e476ff35877528a8ad4bf31d94602f867c79f4aa (patch) | |
tree | 1691d73d17890fb6bcbc3b6b752ee32c7d8318fc /src/plugins/projectexplorer/projectimporter.cpp | |
parent | 0d8dd285b04e20e5fd7b57d6adb12591154447d7 (diff) |
QmakeProjectImporter: Prepare for multiple concurrent imports
Fix logic around temporary qt versions. We want essentially shared
ownership of kits on the temporary qt version.
Change-Id: Ic8c748aa2b04afb5a30444563b3fc2f4272ca47c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/projectexplorer/projectimporter.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projectimporter.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/plugins/projectexplorer/projectimporter.cpp b/src/plugins/projectexplorer/projectimporter.cpp index 0208260672..0a4d28539c 100644 --- a/src/plugins/projectexplorer/projectimporter.cpp +++ b/src/plugins/projectexplorer/projectimporter.cpp @@ -57,7 +57,7 @@ void ProjectImporter::markTemporary(Kit *k) { QTC_ASSERT(!k->hasValue(KIT_IS_TEMPORARY), return); - setIsUpdating(true); + bool oldIsUpdating = setIsUpdating(true); const QString name = k->displayName(); k->setUnexpandedDisplayName(QCoreApplication::translate("ProjectExplorer::ProjectImporter", @@ -67,7 +67,7 @@ void ProjectImporter::markTemporary(Kit *k) k->setValue(KIT_FINAL_NAME, name); k->setValue(KIT_IS_TEMPORARY, true); - setIsUpdating(false); + setIsUpdating(oldIsUpdating); } void ProjectImporter::makePermanent(Kit *k) @@ -75,7 +75,7 @@ void ProjectImporter::makePermanent(Kit *k) if (!k->hasValue(KIT_IS_TEMPORARY)) return; - setIsUpdating(true); + bool oldIsUpdating = setIsUpdating(true); k->removeKey(KIT_IS_TEMPORARY); k->removeKey(TEMPORARY_OF_PROJECTS); @@ -85,7 +85,7 @@ void ProjectImporter::makePermanent(Kit *k) k->removeKey(KIT_TEMPORARY_NAME); k->removeKey(KIT_FINAL_NAME); - setIsUpdating(false); + setIsUpdating(oldIsUpdating); } void ProjectImporter::cleanupKit(Kit *k) @@ -102,11 +102,11 @@ void ProjectImporter::addProject(Kit *k) projects.append(m_projectPath); // note: There can be more than one instance of the project added! - setIsUpdating(true); + bool oldIsUpdating = setIsUpdating(true); - k->setValue(TEMPORARY_OF_PROJECTS, projects); + k->setValueSilently(TEMPORARY_OF_PROJECTS, projects); - setIsUpdating(false); + setIsUpdating(oldIsUpdating); } void ProjectImporter::removeProject(Kit *k, const QString &path) @@ -117,14 +117,19 @@ void ProjectImporter::removeProject(Kit *k, const QString &path) QStringList projects = k->value(TEMPORARY_OF_PROJECTS, QStringList()).toStringList(); projects.removeOne(path); - setIsUpdating(true); + bool oldIsUpdating = setIsUpdating(true); if (projects.isEmpty()) ProjectExplorer::KitManager::deregisterKit(k); else - k->setValue(TEMPORARY_OF_PROJECTS, projects); + k->setValueSilently(TEMPORARY_OF_PROJECTS, projects); - setIsUpdating(false); + setIsUpdating(oldIsUpdating); +} + +bool ProjectImporter::isTemporaryKit(Kit *k) +{ + return k->hasValue(KIT_IS_TEMPORARY); } } // namespace ProjectExplorer |