summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-10-07 15:44:37 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-10-07 15:44:37 +0200
commit4a75bc8f1ce56720517b9c6d174da6bfd81fae8b (patch)
treef53699394bff9bb9b0900c1e108af61ecc6815a2 /src
parent4fe2370a490f7dc0460edaccc916766325187319 (diff)
downloadmanager-4a75bc8f1ce56720517b9c6d174da6bfd81fae8b.tar.gz
manager-4a75bc8f1ce56720517b9c6d174da6bfd81fae8b.zip
Allow string config values to be enclosed in quotes to include spaces at
the beginning or the end
Diffstat (limited to 'src')
-rw-r--r--src/CRSMConfig.hpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/CRSMConfig.hpp b/src/CRSMConfig.hpp
index c8750dd..b25b809 100644
--- a/src/CRSMConfig.hpp
+++ b/src/CRSMConfig.hpp
@@ -60,13 +60,38 @@ using Boolean = bool;
template<>
class CRSMConfigValue<String> : public CRSMConfigValueBase {
String& config;
+ bool trimmedQuotes = false;
public:
CRSMConfigValue(String& config) : config(config) { }
- virtual void setValue(const QString& value) { config = value; }
- virtual QString value() { return config; }
+ virtual void setValue(const QString& value) { config = trimQuotes(QString(value), trimmedQuotes); }
+ virtual QString value()
+ {
+ if(trimmedQuotes)
+ {
+ return "\"" + config + "\"";
+ }
+ else
+ {
+ return config;
+ }
+ }
virtual CRSMConfigValueType::Type type() { return CRSMConfigValueType::Type::String; }
+
+private:
+ QString& trimQuotes(QString&& string, bool& trimmed)
+ {
+ trimmed = false;
+ if(string.length() >= 2 && string.at(0) == '"' && string.at(string.length() - 1) == '"')
+ {
+ string.remove(0, 1);
+ string.remove(string.length() - 1, 1);
+ trimmed = true;
+ }
+ return string;
+ }
+
};
template<typename Type>