From c31def74feddd1c38f24fbec14b4c3f35117059e Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Fri, 12 Dec 2025 15:27:18 +0100 Subject: [PATCH] auto select current conference when model reset (conf scheduler send Ready signal then conferenceInfoReceived makes conf info list update) fix crash --- Linphone/core/participant/ParticipantDeviceProxy.cpp | 4 ++-- Linphone/data/languages/de.ts | 6 +++--- Linphone/data/languages/en.ts | 6 +++--- Linphone/data/languages/fr.ts | 6 +++--- Linphone/view/Control/Display/Meeting/MeetingListView.qml | 5 ++++- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Linphone/core/participant/ParticipantDeviceProxy.cpp b/Linphone/core/participant/ParticipantDeviceProxy.cpp index a5ffcb81f..8562e28fd 100644 --- a/Linphone/core/participant/ParticipantDeviceProxy.cpp +++ b/Linphone/core/participant/ParticipantDeviceProxy.cpp @@ -63,8 +63,8 @@ void ParticipantDeviceProxy::setCurrentCall(CallGui *call) { mCurrentCall = call; if (mCurrentCall) callCore = mCurrentCall->getCore(); if (callCore) { - connect(callCore, &CallCore::conferenceChanged, mParticipants.get(), [this]() { - auto conference = mCurrentCall->getCore()->getConferenceCore(); + connect(callCore, &CallCore::conferenceChanged, mParticipants.get(), [this, callCore]() { + auto conference = callCore->getConferenceCore(); lDebug() << log().arg("Set conference") << this << " => " << conference; mParticipants->setConferenceModel(conference ? conference->getModel() : nullptr); }); diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index dd5e9b217..4582f5779 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -4625,19 +4625,19 @@ Ablauf: %1 MeetingListView - + meeting_info_cancelled "Réunion annulée" Besprechung abgesagt - + meetings_list_no_meeting_for_today "Aucune réunion aujourd'hui" Heute keine Besprechungen - + meeting_info_delete "Supprimer la réunion" Besprechung löschen diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index 122867c4b..c0a9c5862 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -4523,19 +4523,19 @@ Expiration : %1 MeetingListView - + meeting_info_cancelled "Réunion annulée" Meeting canceled - + meetings_list_no_meeting_for_today "Aucune réunion aujourd'hui" No meeting for today - + meeting_info_delete "Supprimer la réunion" Delete meeting diff --git a/Linphone/data/languages/fr.ts b/Linphone/data/languages/fr.ts index 6ac7cc196..1547e51ee 100644 --- a/Linphone/data/languages/fr.ts +++ b/Linphone/data/languages/fr.ts @@ -4523,19 +4523,19 @@ Expiration : %1 MeetingListView - + meeting_info_cancelled "Réunion annulée" Réunion annulée - + meetings_list_no_meeting_for_today "Aucune réunion aujourd'hui" Aucune réunion aujourd'hui - + meeting_info_delete "Supprimer la réunion" Supprimer la réunion diff --git a/Linphone/view/Control/Display/Meeting/MeetingListView.qml b/Linphone/view/Control/Display/Meeting/MeetingListView.qml index d47c619b6..9a87bc5ec 100644 --- a/Linphone/view/Control/Display/Meeting/MeetingListView.qml +++ b/Linphone/view/Control/Display/Meeting/MeetingListView.qml @@ -16,6 +16,7 @@ ListView { property bool hoverEnabled: true property var delegateButtons property ConferenceInfoGui selectedConference + property ConferenceInfoGui confToBeSelected: null property bool _moveToIndex: false property bool loading: false property real busyIndicatorSize: Utils.getSizeWithScreenRatio(60) @@ -102,11 +103,13 @@ ListView { initialDisplayItems: Math.max(20, Math.round(2 * mainItem.height / Utils.getSizeWithScreenRatio(63))) displayItemsStep: initialDisplayItems/2 onModelAboutToBeReset: { + mainItem.confToBeSelected = mainItem.selectedConference mainItem.loading = true } onModelReset: { mainItem.loading = false - selectData(getCurrentDateConfInfo()) + if (mainItem.confToBeSelected) selectData(mainItem.confToBeSelected) + else selectData(getCurrentDateConfInfo()) } function selectData(confInfoGui){ mainItem.currentIndex = loadUntil(confInfoGui)