diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index fdf1fc0e4587383be2d6fcf71693917a81b44fa8..eb10aee6b97e58d43e22d2bb93a8ee9f46b5c83d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -134,6 +134,23 @@ QStringList CMakeConfigItem::cmakeSplitValue(const QString &in, bool keepEmpty) return newArgs; } +CMakeConfigItem::Type CMakeConfigItem::typeStringToType(const QByteArray &type) +{ + if (type == "BOOL") + return CMakeConfigItem::BOOL; + if (type == "STRING") + return CMakeConfigItem::STRING; + if (type == "FILEPATH") + return CMakeConfigItem::FILEPATH; + if (type == "PATH") + return CMakeConfigItem::PATH; + if (type == "STATIC") + return CMakeConfigItem::STATIC; + + QTC_CHECK(type == "INTERNAL"); + return CMakeConfigItem::INTERNAL; +} + QString CMakeConfigItem::expandedValue(const ProjectExplorer::Kit *k) const { return expandedValue(k->macroExpander()); @@ -195,20 +212,8 @@ CMakeConfigItem CMakeConfigItem::fromString(const QString &s) // Fill in item: CMakeConfigItem item; if (!key.isEmpty()) { - CMakeConfigItem::Type t = CMakeConfigItem::STRING; - if (type == QLatin1String("FILEPATH")) - t = CMakeConfigItem::FILEPATH; - else if (type == QLatin1String("PATH")) - t = CMakeConfigItem::PATH; - else if (type == QLatin1String("BOOL")) - t = CMakeConfigItem::BOOL; - else if (type == QLatin1String("INTERNAL")) - t = CMakeConfigItem::INTERNAL; - else if (type == QLatin1String("STATIC")) - t = CMakeConfigItem::STATIC; - item.key = key.toUtf8(); - item.type = t; + item.type = CMakeConfigItem::typeStringToType(type.toUtf8()); item.value = value.toUtf8(); } return item; diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h index 24e5c54cd9de10cddfa1dbc2b0c6a5de88e9b280..e52a3ee535a91febe0f08d0186387ef51ead18da 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h @@ -47,6 +47,7 @@ public: static QString expandedValueOf(const ProjectExplorer::Kit *k, const QByteArray &key, const QList<CMakeConfigItem> &input); static QStringList cmakeSplitValue(const QString &in, bool keepEmpty = false); + static Type typeStringToType(const QByteArray &typeString); bool isNull() const { return key.isEmpty(); } QString expandedValue(const ProjectExplorer::Kit *k) const; diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.cpp b/src/plugins/cmakeprojectmanager/tealeafreader.cpp index 76ce5f8f0279e361c1b1b0709430699f8db928e7..b84544d177b723d84d6bb0a7b66e370cba191301 100644 --- a/src/plugins/cmakeprojectmanager/tealeafreader.cpp +++ b/src/plugins/cmakeprojectmanager/tealeafreader.cpp @@ -143,20 +143,6 @@ static QByteArrayList splitCMakeCacheLine(const QByteArray &line) { << line.mid(equalPos + 1); } -static CMakeConfigItem::Type fromByteArray(const QByteArray &type) { - if (type == "BOOL") - return CMakeConfigItem::BOOL; - if (type == "STRING") - return CMakeConfigItem::STRING; - if (type == "FILEPATH") - return CMakeConfigItem::FILEPATH; - if (type == "PATH") - return CMakeConfigItem::PATH; - QTC_CHECK(type == "INTERNAL" || type == "STATIC"); - - return CMakeConfigItem::INTERNAL; -} - // -------------------------------------------------------------------- // TeaLeafReader: // -------------------------------------------------------------------- @@ -305,10 +291,10 @@ CMakeConfig TeaLeafReader::parseConfiguration(const Utils::FileName &cacheFile, if (key.endsWith("-ADVANCED") && value == "1") { advancedSet.insert(key.left(key.count() - 9 /* "-ADVANCED" */)); - } else if (key.endsWith("-STRINGS") && fromByteArray(type) == CMakeConfigItem::INTERNAL) { + } else if (key.endsWith("-STRINGS") && CMakeConfigItem::typeStringToType(type) == CMakeConfigItem::INTERNAL) { valuesMap[key.left(key.count() - 8) /* "-STRINGS" */] = value; } else { - CMakeConfigItem::Type t = fromByteArray(type); + CMakeConfigItem::Type t = CMakeConfigItem::typeStringToType(type); result << CMakeConfigItem(key, t, documentation, value); } }