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:
parent
87d57a1de9
commit
c09f2eedf2
@ -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
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user