sdktool: Do not fiddle with display names

sdktool made the "display names" unique by potentially adding a number.
This has multiple drawbacks:
- The display name can contain variables that lead to
  unique _expanded_ names
- Adding a number doesn't really help for distinguishing things
- That number is then hard-baked into the install settings

Installers should take care that they register identifiable names.
And if we really want to ensure unique names, then Qt Creator can do that
itself, or even better leave the user to do it, because a number doesn't
really help anyhow.

Fixes: QTCREATORBUG-17909
Change-Id: Id0f44c0cbe457047a0713bda4980fb5d4bc5bcaa
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Eike Ziller
2019-05-03 12:47:18 +02:00
parent 48f8eca574
commit e9e4c27e3a
7 changed files with 10 additions and 54 deletions

View File

@@ -203,20 +203,13 @@ QVariantMap AddCMakeOperation::addCMake(const QVariantMap &map, const QString &i
return QVariantMap();
}
// Sanity check: Make sure displayName is unique.
QStringList nameKeys = FindKeyOperation::findKey(map, DISPLAYNAME_KEY);
QStringList nameList;
foreach (const QString &nameKey, nameKeys)
nameList << GetOperation::get(map, nameKey).toString();
const QString uniqueName = makeUnique(displayName, nameList);
QVariantMap result = RmKeysOperation::rmKeys(map, {COUNT});
const QString cm = QString::fromLatin1(PREFIX) + QString::number(count);
KeyValuePairList data;
data << KeyValuePair({cm, ID_KEY}, QVariant(id));
data << KeyValuePair({cm, DISPLAYNAME_KEY}, QVariant(uniqueName));
data << KeyValuePair({cm, DISPLAYNAME_KEY}, QVariant(displayName));
data << KeyValuePair({cm, AUTODETECTED_KEY}, QVariant(true));
data << KeyValuePair({cm, PATH_KEY}, QVariant(path));
KeyValuePairList extraList;

View File

@@ -204,17 +204,11 @@ QVariantMap AddDebuggerOperation::addDebugger(const QVariantMap &map,
toRemove << QLatin1String(COUNT);
QVariantMap cleaned = RmKeysOperation::rmKeys(map, toRemove);
// Sanity check: Make sure displayName is unique.
QStringList nameKeys = FindKeyOperation::findKey(map, QLatin1String(DISPLAYNAME));
QStringList nameList;
foreach (const QString &nameKey, nameKeys)
nameList << GetOperation::get(map, nameKey).toString();
const QString uniqueName = makeUnique(displayName, nameList);
// insert data:
KeyValuePairList data;
data << KeyValuePair(QStringList() << debugger << QLatin1String(ID), QVariant(id));
data << KeyValuePair(QStringList() << debugger << QLatin1String(DISPLAYNAME), QVariant(uniqueName));
data << KeyValuePair(QStringList() << debugger << QLatin1String(DISPLAYNAME),
QVariant(displayName));
data << KeyValuePair(QStringList() << debugger << QLatin1String(AUTODETECTED), QVariant(true));
data << KeyValuePair(QStringList() << debugger << QLatin1String(ABIS), QVariant(abis));

View File

@@ -623,16 +623,9 @@ QVariantMap AddKitOperation::addKit(const QVariantMap &map, const QVariantMap &t
// remove data:
QVariantMap cleaned = RmKeysOperation::rmKeys(map, {COUNT, DEFAULT});
// Sanity check: Make sure displayName is unique.
QStringList nameKeys = FindKeyOperation::findKey(map, DISPLAYNAME);
QStringList nameList;
foreach (const QString &nameKey, nameKeys)
nameList << GetOperation::get(map, nameKey).toString();
const QString uniqueName = makeUnique(displayName, nameList);
// insert data:
KeyValuePairList data = { KeyValuePair({kit, ID}, QVariant(id)),
KeyValuePair({kit, DISPLAYNAME}, QVariant(uniqueName)),
KeyValuePairList data = {KeyValuePair({kit, ID}, QVariant(id)),
KeyValuePair({kit, DISPLAYNAME}, QVariant(displayName)),
KeyValuePair({kit, ICON}, QVariant(icon)),
KeyValuePair({kit, AUTODETECTED}, QVariant(true)),
KeyValuePair({kit, SDK}, QVariant(true))};

View File

@@ -296,20 +296,13 @@ QVariantMap AddQtOperation::addQt(const QVariantMap &map,
}
const QString qt = QString::fromLatin1(PREFIX) + QString::number(versionCount);
// Sanity check: Make sure displayName is unique.
QStringList nameKeys = FindKeyOperation::findKey(map, QLatin1String(DISPLAYNAME));
QStringList nameList;
foreach (const QString &nameKey, nameKeys)
nameList << GetOperation::get(map, nameKey).toString();
const QString uniqueName = makeUnique(displayName, nameList);
// Sanitize qmake path:
QString saneQmake = QDir::cleanPath(QDir::fromNativeSeparators(qmake));
// insert data:
KeyValuePairList data;
data << KeyValuePair(QStringList() << qt << QLatin1String(ID), QVariant(-1));
data << KeyValuePair(QStringList() << qt << QLatin1String(DISPLAYNAME), QVariant(uniqueName));
data << KeyValuePair(QStringList() << qt << QLatin1String(DISPLAYNAME), QVariant(displayName));
data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTED), QVariant(true));
data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTION_SOURCE), QVariant(sdkId));
data << KeyValuePair(QStringList() << qt << QLatin1String(QMAKE), QVariant(saneQmake));

View File

@@ -253,13 +253,6 @@ QVariantMap AddToolChainOperation::addToolChain(const QVariantMap &map, const QS
return QVariantMap();
}
// Sanity check: Make sure displayName is unique.
QStringList nameKeys = FindKeyOperation::findKey(map, DISPLAYNAME);
QStringList nameList;
foreach (const QString &nameKey, nameKeys)
nameList << GetOperation::get(map, nameKey).toString();
const QString uniqueName = makeUnique(displayName, nameList);
QVariantMap result = RmKeysOperation::rmKeys(map, {COUNT});
const QString tc = QString::fromLatin1(PREFIX) + QString::number(count);
@@ -290,7 +283,7 @@ QVariantMap AddToolChainOperation::addToolChain(const QVariantMap &map, const QS
data << KeyValuePair({tc, LANGUAGE_KEY}, QVariant(oldLang));
if (!newLang.isEmpty())
data << KeyValuePair({tc, LANGUAGE_KEY_V2}, QVariant(newLang));
data << KeyValuePair({tc, DISPLAYNAME}, QVariant(uniqueName));
data << KeyValuePair({tc, DISPLAYNAME}, QVariant(displayName));
data << KeyValuePair({tc, AUTODETECTED}, QVariant(true));
data << KeyValuePair({tc, PATH}, QVariant(path));
data << KeyValuePair({tc, TARGET_ABI}, QVariant(abi));

View File

@@ -62,15 +62,6 @@ QVariant Operation::valueFromString(const QString &v)
return QVariant();
}
QString Operation::makeUnique(const QString &name, const QStringList &inUse)
{
QString unique = name;
int i = 1;
while (inUse.contains(unique))
unique = name + QString::number(++i);
return unique;
}
Operation::KeyValuePair::KeyValuePair(const QString &k, const QString &v) :
value(valueFromString(v))
{

View File

@@ -63,5 +63,4 @@ public:
bool save(const QVariantMap &map, const QString &file) const;
static QVariant valueFromString(const QString &v);
static QString makeUnique(const QString &name, const QStringList &inUse);
};