diff options
Diffstat (limited to 'src/CRSMConfig.hpp')
| -rw-r--r-- | src/CRSMConfig.hpp | 29 |
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> |
