aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/ClientModel.cpp
diff options
context:
space:
mode:
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);
}