From e9e4c27e3a3f157291a231b8a746bb76dea525b7 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 3 May 2019 12:47:18 +0200 Subject: [PATCH] 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 --- src/tools/sdktool/addcmakeoperation.cpp | 9 +-------- src/tools/sdktool/adddebuggeroperation.cpp | 10 ++-------- src/tools/sdktool/addkitoperation.cpp | 17 +++++------------ src/tools/sdktool/addqtoperation.cpp | 9 +-------- src/tools/sdktool/addtoolchainoperation.cpp | 9 +-------- src/tools/sdktool/operation.cpp | 9 --------- src/tools/sdktool/operation.h | 1 - 7 files changed, 10 insertions(+), 54 deletions(-) diff --git a/src/tools/sdktool/addcmakeoperation.cpp b/src/tools/sdktool/addcmakeoperation.cpp index bc8d9a66bcc..893b9c5b612 100644 --- a/src/tools/sdktool/addcmakeoperation.cpp +++ b/src/tools/sdktool/addcmakeoperation.cpp @@ -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; diff --git a/src/tools/sdktool/adddebuggeroperation.cpp b/src/tools/sdktool/adddebuggeroperation.cpp index e6871cb8b65..3e94603d3c1 100644 --- a/src/tools/sdktool/adddebuggeroperation.cpp +++ b/src/tools/sdktool/adddebuggeroperation.cpp @@ -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)); diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp index b1c480811e6..0763c55e46d 100644 --- a/src/tools/sdktool/addkitoperation.cpp +++ b/src/tools/sdktool/addkitoperation.cpp @@ -623,19 +623,12 @@ 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)), - KeyValuePair({kit, ICON}, QVariant(icon)), - KeyValuePair({kit, AUTODETECTED}, QVariant(true)), - KeyValuePair({kit, SDK}, QVariant(true))}; + 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))}; if (!debuggerId.isEmpty() || !debugger.isEmpty()) { if (debuggerId.isEmpty()) { diff --git a/src/tools/sdktool/addqtoperation.cpp b/src/tools/sdktool/addqtoperation.cpp index c71676433be..30ece83c650 100644 --- a/src/tools/sdktool/addqtoperation.cpp +++ b/src/tools/sdktool/addqtoperation.cpp @@ -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)); diff --git a/src/tools/sdktool/addtoolchainoperation.cpp b/src/tools/sdktool/addtoolchainoperation.cpp index 335b72ec763..0f5359cff31 100644 --- a/src/tools/sdktool/addtoolchainoperation.cpp +++ b/src/tools/sdktool/addtoolchainoperation.cpp @@ -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)); diff --git a/src/tools/sdktool/operation.cpp b/src/tools/sdktool/operation.cpp index c4f823281a9..68bad3272db 100644 --- a/src/tools/sdktool/operation.cpp +++ b/src/tools/sdktool/operation.cpp @@ -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)) { diff --git a/src/tools/sdktool/operation.h b/src/tools/sdktool/operation.h index ad2062cf8f6..99077fb2160 100644 --- a/src/tools/sdktool/operation.h +++ b/src/tools/sdktool/operation.h @@ -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); };