From be46f8cf6cdefa188ac11b80da28f493ca6981cf Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Fri, 5 May 2017 10:23:05 +0200 Subject: [PATCH] feat(src/components/contacts/ContactsListModel): remove friend without vcard --- .../components/contacts/ContactsListModel.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/linphone-desktop/src/components/contacts/ContactsListModel.cpp b/linphone-desktop/src/components/contacts/ContactsListModel.cpp index c0cec7e7b..714adc8f9 100644 --- a/linphone-desktop/src/components/contacts/ContactsListModel.cpp +++ b/linphone-desktop/src/components/contacts/ContactsListModel.cpp @@ -35,14 +35,23 @@ using namespace std; ContactsListModel::ContactsListModel (QObject *parent) : QAbstractListModel(parent) { mLinphoneFriends = CoreManager::getInstance()->getCore()->getFriendsLists().front(); + // Clean friends. + { + list > toRemove; + for (const auto &linphoneFriend : mLinphoneFriends->getFriends()) { + if (!linphoneFriend->getVcard()) + toRemove.push_back(linphoneFriend); + } + + for (const auto &linphoneFriend : toRemove) { + qWarning() << QStringLiteral("Remove one linphone friend without vcard."); + mLinphoneFriends->removeFriend(linphoneFriend); + } + } + // Init contacts with linphone friends list. QQmlEngine *engine = App::getInstance()->getEngine(); for (const auto &linphoneFriend : mLinphoneFriends->getFriends()) { - if (!linphoneFriend->getVcard()) { - qWarning() << QStringLiteral("Ignore one linphone friend without vcard."); - continue; - } - ContactModel *contact = new ContactModel(this, linphoneFriend); // See: http://doc.qt.io/qt-5/qtqml-cppintegration-data.html#data-ownership