diff --git a/linphone-desktop/src/components/contact/ContactModel.cpp b/linphone-desktop/src/components/contact/ContactModel.cpp index 23680b20d..13ba01fc6 100644 --- a/linphone-desktop/src/components/contact/ContactModel.cpp +++ b/linphone-desktop/src/components/contact/ContactModel.cpp @@ -30,7 +30,7 @@ using namespace std; // ============================================================================= -ContactModel::ContactModel (shared_ptr linphone_friend) { +ContactModel::ContactModel (QObject *parent, shared_ptr linphone_friend) : QObject(parent) { m_linphone_friend = linphone_friend; m_vcard = make_shared(linphone_friend->getVcard()); @@ -38,7 +38,7 @@ ContactModel::ContactModel (shared_ptr linphone_friend) { m_linphone_friend->setData("contact-model", *this); } -ContactModel::ContactModel (VcardModel *vcard) { +ContactModel::ContactModel (QObject *parent, VcardModel *vcard) : QObject(parent) { Q_ASSERT(vcard != nullptr); QQmlEngine *engine = App::getInstance()->getEngine(); diff --git a/linphone-desktop/src/components/contact/ContactModel.hpp b/linphone-desktop/src/components/contact/ContactModel.hpp index 59902be40..6d2591985 100644 --- a/linphone-desktop/src/components/contact/ContactModel.hpp +++ b/linphone-desktop/src/components/contact/ContactModel.hpp @@ -40,8 +40,8 @@ class ContactModel : public QObject { friend class SmartSearchBarModel; public: - ContactModel (std::shared_ptr linphone_friend); - ContactModel (VcardModel *vcard); + ContactModel (QObject *parent, std::shared_ptr linphone_friend); + ContactModel (QObject *parent, VcardModel *vcard); ~ContactModel () = default; std::shared_ptr getVcardModel () const { diff --git a/linphone-desktop/src/components/contacts/ContactsListModel.cpp b/linphone-desktop/src/components/contacts/ContactsListModel.cpp index a315edead..21ead4aa5 100644 --- a/linphone-desktop/src/components/contacts/ContactsListModel.cpp +++ b/linphone-desktop/src/components/contacts/ContactsListModel.cpp @@ -37,13 +37,11 @@ ContactsListModel::ContactsListModel (QObject *parent) : QAbstractListModel(pare // Init contacts with linphone friends list. for (const auto &friend_ : m_linphone_friends->getFriends()) { - ContactModel *contact = new ContactModel(friend_); + ContactModel *contact = new ContactModel(this, friend_); // See: http://doc.qt.io/qt-5/qtqml-cppintegration-data.html#data-ownership // The returned value must have a explicit parent or a QQmlEngine::CppOwnership. - App::getInstance()->getEngine()->setObjectOwnership( - contact, QQmlEngine::CppOwnership - ); + App::getInstance()->getEngine()->setObjectOwnership(contact, QQmlEngine::CppOwnership); addContact(contact); } @@ -100,7 +98,7 @@ bool ContactsListModel::removeRows (int row, int count, const QModelIndex &paren // ----------------------------------------------------------------------------- ContactModel *ContactsListModel::addContact (VcardModel *vcard) { - ContactModel *contact = new ContactModel(vcard); + ContactModel *contact = new ContactModel(this, vcard); App::getInstance()->getEngine()->setObjectOwnership(contact, QQmlEngine::CppOwnership); qInfo() << "Add contact:" << contact;