aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/projectimporter.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2014-08-06 16:54:18 +0200
committerDaniel Teske <daniel.teske@digia.com>2014-09-03 17:31:09 +0200
commite476ff35877528a8ad4bf31d94602f867c79f4aa (patch)
tree1691d73d17890fb6bcbc3b6b752ee32c7d8318fc /src/plugins/projectexplorer/projectimporter.cpp
parent0d8dd285b04e20e5fd7b57d6adb12591154447d7 (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.cpp25
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