diff options
author | Tim Jenssen <tim.jenssen@digia.com> | 2013-11-14 16:47:27 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@digia.com> | 2013-11-14 17:17:59 +0100 |
commit | 8d6c1d091496950339748bec8099b4feddf0ea12 (patch) | |
tree | 7585dcead1ecb8186c33aaa91ca25c6ca4f8919c /src/libs/kdtools/kdupdaterupdateoperation.cpp | |
parent | 54e4f19a86e64347f66dfd7345f9428c55123fe0 (diff) |
add new settingsoperation
Change-Id: I3c05c51241a19304b43c0fc4f1306b36b6a84c86
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'src/libs/kdtools/kdupdaterupdateoperation.cpp')
-rw-r--r-- | src/libs/kdtools/kdupdaterupdateoperation.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libs/kdtools/kdupdaterupdateoperation.cpp b/src/libs/kdtools/kdupdaterupdateoperation.cpp index c1591f467..9ba165d4b 100644 --- a/src/libs/kdtools/kdupdaterupdateoperation.cpp +++ b/src/libs/kdtools/kdupdaterupdateoperation.cpp @@ -176,6 +176,40 @@ QStringList UpdateOperation::arguments() const return m_arguments; } +struct StartsWith +{ + StartsWith(const QString &searchTerm) + : m_searchTerm(searchTerm) {} + + bool operator()(const QString &searchString) + { + return searchString.startsWith(m_searchTerm); + } + + QString m_searchTerm; +}; + + +QString UpdateOperation::argumentKeyValue(const QString &key, const QString &defaultValue) const +{ + const QString keySeparater(key + QLatin1String("=")); + const QStringList tArguments(arguments()); + QStringList::const_iterator it = std::find_if(tArguments.begin(), tArguments.end(), + StartsWith(keySeparater)); + if (it == tArguments.end()) + return defaultValue; + + const QString value = it->mid(keySeparater.size()); + + it = std::find_if(++it, tArguments.end(), StartsWith(keySeparater)); + if (it != tArguments.end()) { + qWarning() << QString::fromLatin1("There are multiple keys in the arguments calling" + " '%1'. Only the first found '%2' is used: '%3'").arg(name(), key, arguments().join( + QLatin1String("; "))); + } + return value; +} + /*! Returns error details in case performOperation() failed. */ |