diff options
author | David Robillard <d@drobilla.net> | 2013-01-13 07:49:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-13 07:49:49 +0000 |
commit | 67a8adbc93991acfb688f378f52392995a272fac (patch) | |
tree | a4e629bd9c0d7da4cc5c7cb644b3352ca6f0dc78 /src/client/ClientModel.cpp | |
parent | 33aa54fa98783d1da2a322ee136c17df7f9c98a5 (diff) | |
download | machina-67a8adbc93991acfb688f378f52392995a272fac.tar.gz machina-67a8adbc93991acfb688f378f52392995a272fac.tar.bz2 machina-67a8adbc93991acfb688f378f52392995a272fac.zip |
Change model to have a single initial node.
Merge multiple recording into branches off the same initial node.
Make transport state sane with 3 distinct states.
Handle announcing objects several times correctly.
Don't send useless zero coordinates for new nodes, position in visible area.
Rewrite and clean up Machine code.
Update help.
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4954 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/client/ClientModel.cpp')
-rw-r--r-- | src/client/ClientModel.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/client/ClientModel.cpp b/src/client/ClientModel.cpp index 099d997..e033509 100644 --- a/src/client/ClientModel.cpp +++ b/src/client/ClientModel.cpp @@ -35,8 +35,11 @@ ClientModel::find(uint64_t id) void ClientModel::new_object(SPtr<ClientObject> object) { - _objects.insert(object); - signal_new_object.emit(object); + Objects::iterator i = _objects.find(object); + if (i == _objects.end()) { + _objects.insert(object); + signal_new_object.emit(object); + } } void @@ -49,7 +52,7 @@ ClientModel::erase_object(uint64_t id) } signal_erase_object.emit(*i); - (*i)->set_view(SPtr<ClientObject::View>()); + (*i)->set_view(NULL); _objects.erase(i); } |