summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Maudsley <richard.maudsley@isode.com>2014-04-09 07:53:12 (GMT)
committerSwift Review <review@swift.im>2014-04-22 21:12:21 (GMT)
commita7fb55381ab4a5c470bf891b31ac6e201611a2c1 (patch)
tree475b3b7fc0142946863580506b00aa250ef8ca14 /Swift/QtUI/UserSearch/ContactListModel.h
parent4444aeb255f8d1712b794c31166f362bb3ec335a (diff)
downloadswift-a7fb55381ab4a5c470bf891b31ac6e201611a2c1.zip
swift-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.h13
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_;
};
}