20 #ifndef __libpbd_property_basics_h__
21 #define __libpbd_property_basics_h__
62 insert (other.begin (), other.end ());
70 for (const_iterator x = other.begin (); x != other.end (); ++x) {
71 if (find (*x) != end ()) {
78 void add (PropertyID
id) { insert (
id); }
103 virtual bool set_value (
XMLNode const &) = 0;
112 virtual void clear_changes () = 0;
120 virtual bool changed ()
const = 0;
123 virtual void invert () = 0;
131 virtual void get_changes_as_xml (
XMLNode *)
const = 0;
139 virtual void rdiff (std::vector<Command*> &)
const {}
154 const gchar*
property_name ()
const {
return g_quark_to_string (_property_id); }
158 return _property_id == pid;
164 : _property_id (b._property_id)
bool operator==(PropertyID pid) const
LIBPBD_TEMPLATE_MEMBER_API PropertyChange operator=(const PropertyChange &other)
LIBPBD_TEMPLATE_MEMBER_API bool contains(const PropertyChange &other) const
virtual void clear_owned_changes()
PropertyBase(PropertyBase const &b)
#define LIBPBD_TEMPLATE_MEMBER_API
PropertyID property_id() const
LIBPBD_TEMPLATE_MEMBER_API ~PropertyChange()
virtual void rdiff(std::vector< Command * > &) const
LIBPBD_TEMPLATE_MEMBER_API PropertyChange(const PropertyChange &other)
#define LIBPBD_TEMPLATE_API
const gchar * property_name() const
virtual PropertyBase * clone_from_xml(const XMLNode &) const
void add(const PropertyChange &other)
PropertyDescriptor(PropertyID pid)
LIBPBD_TEMPLATE_MEMBER_API PropertyChange()
static LilvNode * get_value(LilvWorld *world, const LilvNode *subject, const LilvNode *predicate)
PropertyBase(PropertyID pid)