diff options
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); } |