diff options
author | Richard Maudsley <richard.maudsley@isode.com> | 2014-04-09 07:53:12 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2014-04-22 21:12:21 (GMT) |
commit | a7fb55381ab4a5c470bf891b31ac6e201611a2c1 (patch) | |
tree | 475b3b7fc0142946863580506b00aa250ef8ca14 /Swift/QtUI/UserSearch/ContactListModel.h | |
parent | 4444aeb255f8d1712b794c31166f362bb3ec335a (diff) | |
download | swift-contrib-a7fb55381ab4a5c470bf891b31ac6e201611a2c1.zip swift-contrib-a7fb55381ab4a5c470bf891b31ac6e201611a2c1.tar.bz2 |
Fix crash in QtUserSearchWindow.
Avoid storing pointers to items in vectors. Using shared_ptr for Contact items.
Change-Id: I3baa05fc058011b2beca14dc620ab794988a2b37
Diffstat (limited to 'Swift/QtUI/UserSearch/ContactListModel.h')
-rw-r--r-- | Swift/QtUI/UserSearch/ContactListModel.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/Swift/QtUI/UserSearch/ContactListModel.h b/Swift/QtUI/UserSearch/ContactListModel.h index 6ca505e..e582ac4 100644 --- a/Swift/QtUI/UserSearch/ContactListModel.h +++ b/Swift/QtUI/UserSearch/ContactListModel.h @@ -36,8 +36,9 @@ namespace Swift { public: ContactListModel(bool editable); - void setList(const std::vector<Contact>& list); - const std::vector<Contact>& getList() const; + void setList(const std::vector<Contact::ref>& list); + const std::vector<Contact::ref>& getList() const; + Contact::ref getContact(const size_t i) const; Qt::ItemFlags flags(const QModelIndex& index) const; int columnCount(const QModelIndex& parent = QModelIndex()) const; @@ -48,16 +49,16 @@ namespace Swift { bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()); private: - QVariant dataForContact(const Contact& contact, int role) const; - QIcon getPresenceIconForContact(const Contact& contact) const; + QVariant dataForContact(const Contact::ref& contact, int role) const; + QIcon getPresenceIconForContact(const Contact::ref& contact) const; signals: - void onListChanged(std::vector<Contact> list); + void onListChanged(std::vector<Contact::ref> list); void onJIDsDropped(const std::vector<JID>& contact); private: bool editable_; - std::vector<Contact> contacts_; + std::vector<Contact::ref> contacts_; }; } |