diff options
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/ClientModel.cpp | 9 | ||||
-rw-r--r-- | src/client/ClientObject.cpp | 2 | ||||
-rw-r--r-- | src/client/ClientObject.hpp | 16 |
3 files changed, 15 insertions, 12 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); } diff --git a/src/client/ClientObject.cpp b/src/client/ClientObject.cpp index 9b7c319..199cf90 100644 --- a/src/client/ClientObject.cpp +++ b/src/client/ClientObject.cpp @@ -24,10 +24,12 @@ namespace client { ClientObject::ClientObject(uint64_t id) : _id(id) + , _view(NULL) {} ClientObject::ClientObject(const ClientObject& copy, uint64_t id) : _id(id) + , _view(NULL) , _properties(copy._properties) {} diff --git a/src/client/ClientObject.hpp b/src/client/ClientObject.hpp index c9469ed..e823a64 100644 --- a/src/client/ClientObject.hpp +++ b/src/client/ClientObject.hpp @@ -51,22 +51,20 @@ public: typedef std::map<URIInt, Raul::Atom> Properties; const Properties& properties() { return _properties; } - SPtr<View> view() const { return _view; } - void set_view(SPtr<View> view) { _view = view; } + View* view() const { return _view; } + void set_view(View* view) { _view = view; } private: - uint64_t _id; - SPtr<View> _view; + uint64_t _id; + View* _view; Properties _properties; }; -class ClientObjectKey - : public ClientObject +/** Stub client object to use as a search key. */ +struct ClientObjectKey : public ClientObject { -public: - ClientObjectKey(uint64_t id) - : ClientObject(id) {} + ClientObjectKey(uint64_t id) : ClientObject(id) {} }; } |