forked from qt-creator/qt-creator
QtSupport: Clean up QtProjectImporter definition
Change-Id: I199c489a5cc7bb96723723992467d5d940e85f77 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -23,11 +23,43 @@ using namespace Utils;
|
||||
|
||||
namespace QtSupport {
|
||||
|
||||
QtProjectImporter::QtProjectImporter(const Utils::FilePath &path) : ProjectImporter(path)
|
||||
static QtVersion *versionFromVariant(const QVariant &v)
|
||||
{
|
||||
useTemporaryKitAspect(QtKitAspect::id(),
|
||||
[this](Kit *k, const QVariantList &vl) {cleanupTemporaryQt(k, vl);},
|
||||
[this](Kit *k, const QVariantList &vl) {persistTemporaryQt(k, vl);});
|
||||
bool ok;
|
||||
const int qtId = v.toInt(&ok);
|
||||
QTC_ASSERT(ok, return nullptr);
|
||||
return QtVersionManager::version(qtId);
|
||||
}
|
||||
|
||||
static void cleanupTemporaryQt(Kit *k, const QVariantList &vl)
|
||||
{
|
||||
if (vl.isEmpty())
|
||||
return; // No temporary Qt
|
||||
QTC_ASSERT(vl.count() == 1, return);
|
||||
QtVersion *version = versionFromVariant(vl.at(0));
|
||||
QTC_ASSERT(version, return);
|
||||
QtVersionManager::removeVersion(version);
|
||||
QtKitAspect::setQtVersion(k, nullptr); // Always mark Kit as not using this Qt
|
||||
}
|
||||
|
||||
static void persistTemporaryQt(Kit *k, const QVariantList &vl)
|
||||
{
|
||||
if (vl.isEmpty())
|
||||
return; // No temporary Qt
|
||||
QTC_ASSERT(vl.count() == 1, return);
|
||||
const QVariant data = vl.at(0);
|
||||
QtVersion *tmpVersion = versionFromVariant(data);
|
||||
QtVersion *actualVersion = QtKitAspect::qtVersion(k);
|
||||
|
||||
// User changed Kit away from temporary Qt that was set up:
|
||||
if (tmpVersion && actualVersion != tmpVersion)
|
||||
QtVersionManager::removeVersion(tmpVersion);
|
||||
}
|
||||
|
||||
QtProjectImporter::QtProjectImporter(const FilePath &path)
|
||||
: ProjectImporter(path)
|
||||
{
|
||||
useTemporaryKitAspect(QtKitAspect::id(), &cleanupTemporaryQt, &persistTemporaryQt);
|
||||
}
|
||||
|
||||
QtProjectImporter::QtVersionData
|
||||
@@ -71,39 +103,6 @@ Kit *QtProjectImporter::createTemporaryKit(const QtVersionData &versionData,
|
||||
});
|
||||
}
|
||||
|
||||
static QtVersion *versionFromVariant(const QVariant &v)
|
||||
{
|
||||
bool ok;
|
||||
const int qtId = v.toInt(&ok);
|
||||
QTC_ASSERT(ok, return nullptr);
|
||||
return QtVersionManager::version(qtId);
|
||||
}
|
||||
|
||||
void QtProjectImporter::cleanupTemporaryQt(Kit *k, const QVariantList &vl)
|
||||
{
|
||||
if (vl.isEmpty())
|
||||
return; // No temporary Qt
|
||||
QTC_ASSERT(vl.count() == 1, return);
|
||||
QtVersion *version = versionFromVariant(vl.at(0));
|
||||
QTC_ASSERT(version, return);
|
||||
QtVersionManager::removeVersion(version);
|
||||
QtKitAspect::setQtVersion(k, nullptr); // Always mark Kit as not using this Qt
|
||||
}
|
||||
|
||||
void QtProjectImporter::persistTemporaryQt(Kit *k, const QVariantList &vl)
|
||||
{
|
||||
if (vl.isEmpty())
|
||||
return; // No temporary Qt
|
||||
QTC_ASSERT(vl.count() == 1, return);
|
||||
const QVariant data = vl.at(0);
|
||||
QtVersion *tmpVersion = versionFromVariant(data);
|
||||
QtVersion *actualVersion = QtKitAspect::qtVersion(k);
|
||||
|
||||
// User changed Kit away from temporary Qt that was set up:
|
||||
if (tmpVersion && actualVersion != tmpVersion)
|
||||
QtVersionManager::removeVersion(tmpVersion);
|
||||
}
|
||||
|
||||
} // namespace QtSupport
|
||||
|
||||
#if WITH_TESTS
|
||||
|
@@ -28,10 +28,6 @@ protected:
|
||||
QtVersionData findOrCreateQtVersion(const Utils::FilePath &qmakePath) const;
|
||||
ProjectExplorer::Kit *createTemporaryKit(const QtVersionData &versionData,
|
||||
const KitSetupFunction &setup) const;
|
||||
|
||||
private:
|
||||
void cleanupTemporaryQt(ProjectExplorer::Kit *k, const QVariantList &vl);
|
||||
void persistTemporaryQt(ProjectExplorer::Kit *k, const QVariantList &vl);
|
||||
};
|
||||
|
||||
#ifdef WITH_TESTS
|
||||
|
Reference in New Issue
Block a user