summaryrefslogtreecommitdiffstats
path: root/src/client/ObjectModel.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-02-19 05:10:29 +0000
committerDavid Robillard <d@drobilla.net>2011-02-19 05:10:29 +0000
commit6b18de71d1c603255b263a64434005306f152f13 (patch)
tree09c6e87acca1fe76bc74b3b549fee7ad09751993 /src/client/ObjectModel.cpp
parent8e07e115429a0869593d4f29dc3e6cf5c8b25049 (diff)
downloadingen-6b18de71d1c603255b263a64434005306f152f13.tar.gz
ingen-6b18de71d1c603255b263a64434005306f152f13.tar.bz2
ingen-6b18de71d1c603255b263a64434005306f152f13.zip
Save/load patches as nested bundles (fix ticket #520).
Sane (context-based, ala RDF quads) approach to the problem of externally visible / internally visible properties. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2993 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/client/ObjectModel.cpp')
-rw-r--r--src/client/ObjectModel.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/client/ObjectModel.cpp b/src/client/ObjectModel.cpp
index d3726862..728d530e 100644
--- a/src/client/ObjectModel.cpp
+++ b/src/client/ObjectModel.cpp
@@ -29,7 +29,7 @@ namespace Client {
ObjectModel::ObjectModel(Shared::LV2URIMap& uris, const Raul::Path& path)
: ResourceImpl(uris, path)
- , _meta(uris, ResourceImpl::meta_uri(path))
+ , _meta(uris, Raul::URI("http://example.org/FIXME"))
, _path(path)
, _symbol((path == Path::root()) ? "root" : path.symbol())
{
@@ -62,8 +62,7 @@ ObjectModel::set_property(const Raul::URI& key, const Raul::Atom& value)
Raul::Atom&
ObjectModel::set_meta_property(const Raul::URI& key, const Raul::Atom& value)
{
- signal_property.emit(key, value);
- return _meta.set_property(key, value);
+ return set_property(key, Resource::Property(value, Resource::INTERNAL));
}
@@ -78,8 +77,9 @@ ObjectModel::add_property(const Raul::URI& key, const Raul::Atom& value)
const Atom&
ObjectModel::get_property(const Raul::URI& key) const
{
+ static const Atom null_atom;
Resource::Properties::const_iterator i = properties().find(key);
- return (i != properties().end()) ? i->second : _meta.get_property(key);
+ return (i != properties().end()) ? i->second : null_atom;
}
@@ -103,11 +103,8 @@ ObjectModel::set(SharedPtr<ObjectModel> o)
if (o->_parent)
_parent = o->_parent;
- for (Properties::const_iterator v = o->meta().properties().begin(); v != o->meta().properties().end(); ++v) {
- o->meta().set_property(v->first, v->second);
- signal_property.emit(v->first, v->second);
- }
- for (Properties::const_iterator v = o->properties().begin(); v != o->properties().end(); ++v) {
+ for (Properties::const_iterator v = o->properties().begin();
+ v != o->properties().end(); ++v) {
ResourceImpl::set_property(v->first, v->second);
signal_property.emit(v->first, v->second);
}
@@ -117,9 +114,8 @@ ObjectModel::set(SharedPtr<ObjectModel> o)
void
ObjectModel::set_path(const Raul::Path& p)
{
- _path = p;
+ _path = p;
_symbol = p.symbol();
- _meta.set_uri(ResourceImpl::meta_uri(p));
signal_moved.emit();
}