From 6dc74f8c871752b05eb7def894bd44e38d76c3f4 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 11 Jul 2011 20:32:33 +0000 Subject: clean up GUIObjectState API, and use bools when setting "visible" property rather than string (not that it matters); don't unconditionally set visible to true unless a non-hidden track/bus has no visibility property already git-svn-id: svn://localhost/ardour2/branches/3.0@9843 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/gui_object.h | 50 +++++++++--------------------------------------- 1 file changed, 9 insertions(+), 41 deletions(-) (limited to 'gtk2_ardour/gui_object.h') diff --git a/gtk2_ardour/gui_object.h b/gtk2_ardour/gui_object.h index a109e625ae..025be30fab 100644 --- a/gtk2_ardour/gui_object.h +++ b/gtk2_ardour/gui_object.h @@ -29,6 +29,11 @@ #include "pbd/id.h" class GUIObjectState { + private: + typedef boost::variant Variant; + typedef std::map PropertyMap; + typedef std::map StringPropertyMap; + public: GUIObjectState() {} ~GUIObjectState(); @@ -41,59 +46,22 @@ class GUIObjectState { GUIObjectState& operator= (const GUIObjectState& other); - private: - typedef boost::variant Variant; - typedef std::map PropertyMap; - typedef std::map StringPropertyMap; - - StringPropertyMap _property_maps; - - template T get (const std::string& id, const std::string& prop_name, const T& type_determination_placeholder, bool* empty = 0) { - StringPropertyMap::iterator i = _property_maps.find (id); - - if (i == _property_maps.end()) { - if (empty) { - *empty = true; - } - return T(); - } - - const PropertyMap& pmap (i->second); - PropertyMap::const_iterator p = pmap.find (prop_name); - - if (p == pmap.end()) { - return T(); - } - - return boost::get (p->second); - } - - void clear_maps (); - - public: - int get_int (const std::string& id, const std::string& prop_name) { - int i = 0; - return get (id, prop_name, i); - } - - std::string get_string (const std::string& id, const std::string& prop_name) { - std::string s; - return get (id, prop_name, s); - } + std::string get_string (const std::string& id, const std::string& prop_name, bool* empty = 0); template void set (const std::string& id, const std::string& prop_name, const T& val) { StringPropertyMap::iterator i = _property_maps.find (id); if (i != _property_maps.end()) { i->second[prop_name] = val; - // std::cerr << id << " REset " << prop_name << " = [" << val << "]\n"; } else { _property_maps[id] = PropertyMap(); _property_maps[id][prop_name] = val; - // std::cerr << id << " set " << prop_name << " = [" << val << "]\n"; } } + private: + StringPropertyMap _property_maps; + void clear_maps (); }; -- cgit v1.2.3