From effe5eb3aa4fc9b18945007b51e53c304a75853e Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Thu, 24 Feb 2022 18:05:30 +0100 Subject: [PATCH] Fix crash on smartsearchbar : internal addresses weren't match to the number of count because of self result. --- .../search/SearchSipAddressesModel.cpp | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/linphone-app/src/components/search/SearchSipAddressesModel.cpp b/linphone-app/src/components/search/SearchSipAddressesModel.cpp index 869acf771..5e06eae7b 100644 --- a/linphone-app/src/components/search/SearchSipAddressesModel.cpp +++ b/linphone-app/src/components/search/SearchSipAddressesModel.cpp @@ -62,7 +62,7 @@ SearchSipAddressesModel::~SearchSipAddressesModel(){ // ----------------------------------------------------------------------------- int SearchSipAddressesModel::rowCount (const QModelIndex &) const { - return std::max(mAddresses.count()-1,0); + return mAddresses.count(); } QHash SearchSipAddressesModel::roleNames () const { @@ -118,16 +118,10 @@ void SearchSipAddressesModel::searchReceived(std::list(linphoneFriend,address ); } -// Fix crash on Qt 5.15.2 with endResetModel (index out of range). - if(mAddresses.size() > 0){// Workaround : remove all - beginRemoveRows(QModelIndex(), 0, mAddresses.size()-1); - mAddresses.clear(); - endRemoveRows(); - } - if( addresses.size() > 0){// Workaround : add new on cleanned base - beginInsertRows(QModelIndex(),0, addresses.size()-1); - mAddresses = addresses; - endInsertRows(); - } -//-------------------------------------------------------------- + beginResetModel(); + mAddresses.clear(); + mAddresses = addresses; + if(mAddresses.size() > 0 )// remove self + mAddresses.pop_back(); + endResetModel(); }