diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-08-19 12:04:05 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-08-19 13:11:01 +0000 |
commit | 37a2bbe14ea6cb38784ca98fd933f24ad6cad402 (patch) | |
tree | 1762c173aa2f4a57824d1e77a52f6bc49b38d573 | |
parent | 3bf3feb33c9a7cd8ae0a4a59ff21a56322f0eb7e (diff) | |
download | qt-creator-37a2bbe14ea6cb38784ca98fd933f24ad6cad402.tar.gz |
Utils::Environment: Remove another set of duplicate functions
More clean-up after 4bae5de36b.
Change-Id: Ia60cb868c464627b42a94d502d301b175449aa17
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | src/libs/utils/environment.cpp | 30 | ||||
-rw-r--r-- | src/libs/utils/namevaluedictionary.cpp | 55 | ||||
-rw-r--r-- | src/libs/utils/namevaluedictionary.h | 4 | ||||
-rw-r--r-- | src/libs/utils/osspecificaspects.h | 5 |
4 files changed, 39 insertions, 55 deletions
diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp index 15751e9c2e..02c0329714 100644 --- a/src/libs/utils/environment.cpp +++ b/src/libs/utils/environment.cpp @@ -41,30 +41,6 @@ Q_GLOBAL_STATIC(QVector<Utils::EnvironmentProvider>, environmentProviders) namespace Utils { -static NameValueMap::iterator findKey(NameValueMap &input, Utils::OsType osType, const QString &key) -{ - const Qt::CaseSensitivity casing = (osType == Utils::OsTypeWindows) ? Qt::CaseInsensitive - : Qt::CaseSensitive; - for (auto it = input.begin(); it != input.end(); ++it) { - if (key.compare(it.key(), casing) == 0) - return it; - } - return input.end(); -} - -static NameValueMap::const_iterator findKey(const NameValueMap &input, - Utils::OsType osType, - const QString &key) -{ - const Qt::CaseSensitivity casing = (osType == Utils::OsTypeWindows) ? Qt::CaseInsensitive - : Qt::CaseSensitive; - for (auto it = input.constBegin(); it != input.constEnd(); ++it) { - if (key.compare(it.key(), casing) == 0) - return it; - } - return input.constEnd(); -} - QProcessEnvironment Environment::toProcessEnvironment() const { QProcessEnvironment result; @@ -90,7 +66,7 @@ void Environment::prependOrSetPath(const QString &value) void Environment::appendOrSet(const QString &key, const QString &value, const QString &sep) { QTC_ASSERT(!key.contains('='), return ); - auto it = findKey(m_values, m_osType, key); + const auto it = findKey(key); if (it == m_values.end()) { m_values.insert(key, qMakePair(value, true)); } else { @@ -104,7 +80,7 @@ void Environment::appendOrSet(const QString &key, const QString &value, const QS void Environment::prependOrSet(const QString &key, const QString &value, const QString &sep) { QTC_ASSERT(!key.contains('='), return ); - auto it = findKey(m_values, m_osType, key); + const auto it = findKey(key); if (it == m_values.end()) { m_values.insert(key, qMakePair(value, true)); } else { @@ -346,7 +322,7 @@ QString Environment::expandVariables(const QString &input) const for (int vStart = -1, i = 0; i < result.length(); ) { if (result.at(i++) == '%') { if (vStart > 0) { - const_iterator it = findKey(m_values, m_osType, result.mid(vStart, i - vStart - 1)); + const auto it = findKey(result.mid(vStart, i - vStart - 1)); if (it != m_values.constEnd()) { result.replace(vStart - 1, i - vStart + 1, it->first); i = vStart - 1 + it->first.length(); diff --git a/src/libs/utils/namevaluedictionary.cpp b/src/libs/utils/namevaluedictionary.cpp index 67728d411f..923ebb8ab4 100644 --- a/src/libs/utils/namevaluedictionary.cpp +++ b/src/libs/utils/namevaluedictionary.cpp @@ -31,30 +31,6 @@ namespace Utils { -namespace { -NameValueMap::iterator findKey(NameValueMap &input, Utils::OsType osType, const QString &key) -{ - const Qt::CaseSensitivity casing = (osType == Utils::OsTypeWindows) ? Qt::CaseInsensitive - : Qt::CaseSensitive; - for (auto it = input.begin(); it != input.end(); ++it) { - if (key.compare(it.key(), casing) == 0) - return it; - } - return input.end(); -} - -NameValueMap::const_iterator findKey(const NameValueMap &input, Utils::OsType osType, const QString &key) -{ - const Qt::CaseSensitivity casing = (osType == Utils::OsTypeWindows) ? Qt::CaseInsensitive - : Qt::CaseSensitive; - for (auto it = input.constBegin(); it != input.constEnd(); ++it) { - if (key.compare(it.key(), casing) == 0) - return it; - } - return input.constEnd(); -} -} // namespace - NameValueDictionary::NameValueDictionary(const QStringList &env, OsType osType) : m_osType(osType) { @@ -76,6 +52,24 @@ NameValueDictionary::NameValueDictionary(const NameValuePairs &nameValues) set(nameValue.first, nameValue.second); } +NameValueMap::iterator NameValueDictionary::findKey(const QString &key) +{ + for (auto it = m_values.begin(); it != m_values.end(); ++it) { + if (key.compare(it.key(), nameCaseSensitivity()) == 0) + return it; + } + return m_values.end(); +} + +NameValueMap::const_iterator NameValueDictionary::findKey(const QString &key) const +{ + for (auto it = m_values.constBegin(); it != m_values.constEnd(); ++it) { + if (key.compare(it.key(), nameCaseSensitivity()) == 0) + return it; + } + return m_values.constEnd(); +} + QStringList NameValueDictionary::toStringList() const { QStringList result; @@ -89,7 +83,7 @@ QStringList NameValueDictionary::toStringList() const void NameValueDictionary::set(const QString &key, const QString &value, bool enabled) { QTC_ASSERT(!key.contains('='), return ); - auto it = findKey(m_values, m_osType, key); + const auto it = findKey(key); const auto valuePair = qMakePair(value, enabled); if (it == m_values.end()) m_values.insert(key, valuePair); @@ -100,7 +94,7 @@ void NameValueDictionary::set(const QString &key, const QString &value, bool ena void NameValueDictionary::unset(const QString &key) { QTC_ASSERT(!key.contains('='), return ); - auto it = findKey(m_values, m_osType, key); + const auto it = findKey(key); if (it != m_values.end()) m_values.erase(it); } @@ -112,13 +106,13 @@ void NameValueDictionary::clear() QString NameValueDictionary::value(const QString &key) const { - const auto it = findKey(m_values, m_osType, key); + const auto it = findKey(key); return it != m_values.end() && it.value().second ? it.value().first : QString(); } NameValueDictionary::const_iterator NameValueDictionary::constFind(const QString &name) const { - return findKey(m_values, m_osType, name); + return findKey(name); } int NameValueDictionary::size() const @@ -195,6 +189,11 @@ OsType NameValueDictionary::osType() const return m_osType; } +Qt::CaseSensitivity NameValueDictionary::nameCaseSensitivity() const +{ + return OsSpecificAspects::envVarCaseSensitivity(osType()); +} + QString NameValueDictionary::userName() const { return value(QString::fromLatin1(m_osType == OsTypeWindows ? "USERNAME" : "USER")); diff --git a/src/libs/utils/namevaluedictionary.h b/src/libs/utils/namevaluedictionary.h index acb9800745..7386a673db 100644 --- a/src/libs/utils/namevaluedictionary.h +++ b/src/libs/utils/namevaluedictionary.h @@ -55,6 +55,7 @@ public: NameValueItems diff(const NameValueDictionary &other, bool checkAppendPrepend = false) const; bool hasKey(const QString &key) const; OsType osType() const; + Qt::CaseSensitivity nameCaseSensitivity() const; QString userName() const; @@ -80,6 +81,9 @@ public: } protected: + NameValueMap::iterator findKey(const QString &key); + const_iterator findKey(const QString &key) const; + NameValueMap m_values; OsType m_osType; }; diff --git a/src/libs/utils/osspecificaspects.h b/src/libs/utils/osspecificaspects.h index 45541a3bf2..1a5bec02bb 100644 --- a/src/libs/utils/osspecificaspects.h +++ b/src/libs/utils/osspecificaspects.h @@ -51,6 +51,11 @@ inline Qt::CaseSensitivity fileNameCaseSensitivity(OsType osType) return osType == OsTypeWindows || osType == OsTypeMac ? Qt::CaseInsensitive : Qt::CaseSensitive; } +inline Qt::CaseSensitivity envVarCaseSensitivity(OsType osType) +{ + return fileNameCaseSensitivity(osType); +} + inline QChar pathListSeparator(OsType osType) { return QLatin1Char(osType == OsTypeWindows ? ';' : ':'); |