summaryrefslogtreecommitdiffstats
path: root/src/libs/kdtools/kdupdaterupdateoperation.cpp
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@digia.com>2013-11-14 16:47:27 +0100
committerTim Jenssen <tim.jenssen@digia.com>2013-11-14 17:17:59 +0100
commit8d6c1d091496950339748bec8099b4feddf0ea12 (patch)
tree7585dcead1ecb8186c33aaa91ca25c6ca4f8919c /src/libs/kdtools/kdupdaterupdateoperation.cpp
parent54e4f19a86e64347f66dfd7345f9428c55123fe0 (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.cpp34
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.
*/