From 3143d60760434efb7af73805815c6d6ed192a74b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 17 Jul 2024 16:36:35 -0400
Subject: [PATCH] ConversationModel: use index in slotCallEnded

Change-Id: I2d2952007ce1c437bac9c96d35c2931816f185ac
---
 src/libclient/conversationmodel.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/libclient/conversationmodel.cpp b/src/libclient/conversationmodel.cpp
index 66eae52c..6d02abeb 100644
--- a/src/libclient/conversationmodel.cpp
+++ b/src/libclient/conversationmodel.cpp
@@ -3242,14 +3242,17 @@ ConversationModelPimpl::slotCallEnded(const QString& callId)
         addOrUpdateCallMessage(callId, call.peerUri.remove("ring:"), !call.isOutgoing, duration);
         /* Reset the callId stored in the conversation.
            Do not call selectConversation() since it is already done in slotCallStatusChanged. */
-        for (auto& conversation : conversations)
+        size_t idx = 0;
+        for (auto& conversation : conversations) {
             if (conversation.callId == callId) {
                 conversation.callId = "";
                 conversation.confId = ""; // The participant is detached
                 invalidateModel();
                 Q_EMIT linked.conversationUpdated(conversation.uid);
-                Q_EMIT linked.dataChanged(indexOf(conversation.uid));
+                Q_EMIT linked.dataChanged(idx);
             }
+            ++idx;
+        }
     } catch (std::out_of_range& e) {
         qDebug() << "ConversationModelPimpl::slotCallEnded cannot end nonexistent call.";
     }
-- 
GitLab