forked from qt-creator/qt-creator
SDKtool: Fix autodetection sources of Qt versions
Make sure to use autodetection sources (--id) in sdktool that are actually expected by Creator. Do so by prepending the necessary magic. This makes sure that creator will actually remove the SDK Qt versions again once they get removed by SDKtool. Task-number: QTCREATORBUG-8235 Change-Id: I8dde1ab1ae192c8f79de9fb9104461e7435237ec Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
This commit is contained in:
@@ -255,8 +255,12 @@ QVariantMap AddQtOperation::addQt(const QVariantMap &map,
|
||||
const QString &id, const QString &displayName, const QString &type,
|
||||
const QString &qmake, const KeyValuePairList &extra)
|
||||
{
|
||||
QString sdkId = id;
|
||||
if (!id.startsWith(QLatin1String("SDK.")))
|
||||
sdkId = QString::fromLatin1("SDK.") + id;
|
||||
|
||||
// Sanity check: Make sure autodetection source is not in use already:
|
||||
QStringList valueKeys = FindValueOperation::findValues(map, id);
|
||||
QStringList valueKeys = FindValueOperation::findValues(map, sdkId);
|
||||
bool hasId = false;
|
||||
foreach (const QString &k, valueKeys) {
|
||||
if (k.endsWith(QString(QLatin1Char('/')) + QLatin1String(AUTODETECTION_SOURCE))) {
|
||||
@@ -297,7 +301,7 @@ QVariantMap AddQtOperation::addQt(const QVariantMap &map,
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(ID), QVariant(-1));
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(DISPLAYNAME), QVariant(uniqueName));
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTED), QVariant(true));
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTION_SOURCE), QVariant(id));
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTION_SOURCE), QVariant(sdkId));
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(QMAKE), QVariant(saneQmake));
|
||||
data << KeyValuePair(QStringList() << qt << QLatin1String(TYPE), QVariant(type));
|
||||
|
||||
|
||||
@@ -133,12 +133,17 @@ bool RmQtOperation::test() const
|
||||
|
||||
QVariantMap RmQtOperation::rmQt(const QVariantMap &map, const QString &id)
|
||||
{
|
||||
QString sdkId = id;
|
||||
if (!id.startsWith(QLatin1String("SDK.")))
|
||||
sdkId = QString::fromLatin1("SDK.") + id;
|
||||
|
||||
QVariantList qtList;
|
||||
for (QVariantMap::const_iterator i = map.begin(); i != map.end(); ++i) {
|
||||
if (!i.key().startsWith(QLatin1String(PREFIX)))
|
||||
continue;
|
||||
QVariantMap qtData = i.value().toMap();
|
||||
if (qtData.value(QLatin1String(AUTODETECTION_SOURCE)).toString() != id)
|
||||
const QString dataId = qtData.value(QLatin1String(AUTODETECTION_SOURCE)).toString();
|
||||
if ((dataId != id) && (dataId != sdkId))
|
||||
qtList.append(qtData);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user