aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/ClientModel.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-01-13 07:49:49 +0000
committerDavid Robillard <d@drobilla.net>2013-01-13 07:49:49 +0000
commit67a8adbc93991acfb688f378f52392995a272fac (patch)
treea4e629bd9c0d7da4cc5c7cb644b3352ca6f0dc78 /src/client/ClientModel.cpp
parent33aa54fa98783d1da2a322ee136c17df7f9c98a5 (diff)
downloadmachina-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.cpp9
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);
}