13
0

Specialise ConfigVariable for string so that values with

spaces in get handled properly (part of #4321).


git-svn-id: svn://localhost/ardour2/branches/3.0@10092 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-09-18 19:49:36 +00:00
parent 87d57a1de9
commit c09f2eedf2

View File

@ -88,6 +88,42 @@ class ConfigVariable : public ConfigVariableBase
T value; T value;
}; };
/** Specialisation of ConfigVariable for std::string to cope with whitespace properly */
template<>
class ConfigVariable<std::string> : public ConfigVariableBase
{
public:
ConfigVariable (std::string str) : ConfigVariableBase (str) {}
ConfigVariable (std::string str, std::string val) : ConfigVariableBase (str), value (val) {}
std::string get() const {
return value;
}
std::string get_as_string () const {
return value;
}
virtual bool set (std::string val) {
if (val == value) {
miss ();
return false;
}
value = val;
notify ();
return true;
}
virtual void set_from_string (std::string const & s) {
value = s;
}
protected:
virtual std::string get_for_save() { return value; }
std::string value;
};
template<> template<>
class ConfigVariable<bool> : public ConfigVariableBase class ConfigVariable<bool> : public ConfigVariableBase
{ {