diff options
Diffstat (limited to 'src/tools/sdktool/addqtoperation.cpp')
-rw-r--r-- | src/tools/sdktool/addqtoperation.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/tools/sdktool/addqtoperation.cpp b/src/tools/sdktool/addqtoperation.cpp index ec5f6b4e2b..c2443c741a 100644 --- a/src/tools/sdktool/addqtoperation.cpp +++ b/src/tools/sdktool/addqtoperation.cpp @@ -37,6 +37,8 @@ #include "settings.h" +#include <QDir> + #include <iostream> // Qt version file stuff: @@ -172,9 +174,15 @@ bool AddQtOperation::test() const || map.value(QLatin1String(VERSION)).toInt() != 1) return false; +#if defined Q_OS_WIN + map = addQt(map, QLatin1String("testId"), QLatin1String("Test Qt Version"), QLatin1String("testType"), + QLatin1String("/tmp//../tmp/test\\qmake"), + KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue")))); +#else map = addQt(map, QLatin1String("testId"), QLatin1String("Test Qt Version"), QLatin1String("testType"), - QLatin1String("/tmp/test/qmake"), + QLatin1String("/tmp//../tmp/test/qmake"), KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue")))); +#endif if (map.count() != 2 || !map.contains(QLatin1String(VERSION)) @@ -247,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))) { @@ -281,13 +293,16 @@ QVariantMap AddQtOperation::addQt(const QVariantMap &map, 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(AUTODETECTED), QVariant(true)); - data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTION_SOURCE), QVariant(id)); - data << KeyValuePair(QStringList() << qt << QLatin1String(QMAKE), QVariant(qmake)); + 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)); KeyValuePairList qtExtraList; |