From 6a46aab83d046505af8c280e77831b084553a572 Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Wed, 8 Jan 2025 14:43:08 +0100 Subject: [PATCH] fix --- Linphone/core/conference/ConferenceInfoCore.cpp | 2 +- Linphone/core/conference/ConferenceInfoCore.hpp | 2 +- Linphone/core/conference/ConferenceInfoList.cpp | 2 +- Linphone/core/conference/ConferenceInfoProxy.cpp | 12 +++++++++--- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Linphone/core/conference/ConferenceInfoCore.cpp b/Linphone/core/conference/ConferenceInfoCore.cpp index 32546238..e2c5435c 100644 --- a/Linphone/core/conference/ConferenceInfoCore.cpp +++ b/Linphone/core/conference/ConferenceInfoCore.cpp @@ -570,7 +570,7 @@ void ConferenceInfoCore::save() { mConferenceInfoModel->updateConferenceInfo(); mConfInfoModelConnection->invokeToCore([this] { undo(); // Reset new values because some values can be invalid and not changed. - emit dataChanged(); + emit dataSaved(); }); }); } else { diff --git a/Linphone/core/conference/ConferenceInfoCore.hpp b/Linphone/core/conference/ConferenceInfoCore.hpp index dce0136d..2b0f5bcd 100644 --- a/Linphone/core/conference/ConferenceInfoCore.hpp +++ b/Linphone/core/conference/ConferenceInfoCore.hpp @@ -153,7 +153,7 @@ signals: void timeZoneModelChanged(); void saveFailed(); - void dataChanged(); + void dataSaved(); void invitationsSent(); void removed(ConferenceInfoCore *confInfo); diff --git a/Linphone/core/conference/ConferenceInfoList.cpp b/Linphone/core/conference/ConferenceInfoList.cpp index 2349bd9b..457be092 100644 --- a/Linphone/core/conference/ConferenceInfoList.cpp +++ b/Linphone/core/conference/ConferenceInfoList.cpp @@ -223,7 +223,7 @@ void ConferenceInfoList::connectItem(QSharedPointer confInfo remove(confInfo); updateHaveCurrentDate(); }); - connect(confInfoCore.get(), &ConferenceInfoCore::dataChanged, this, [this, confInfoCore]() { + connect(confInfoCore.get(), &ConferenceInfoCore::dataSaved, this, [this, confInfoCore]() { int i = -1; get(confInfoCore.get(), &i); if (i != -1) { diff --git a/Linphone/core/conference/ConferenceInfoProxy.cpp b/Linphone/core/conference/ConferenceInfoProxy.cpp index bde27c18..38a99c76 100644 --- a/Linphone/core/conference/ConferenceInfoProxy.cpp +++ b/Linphone/core/conference/ConferenceInfoProxy.cpp @@ -42,14 +42,20 @@ ConferenceInfoProxy::ConferenceInfoProxy(QObject *parent) : LimitProxy(parent) { [this](QSharedPointer data) { auto sortModel = dynamic_cast(sourceModel()); sortModel->invalidate(); // New conf => sort change. Filter can change if on current date. - emit conferenceInfoCreated(new ConferenceInfoGui(data)); + static const QMetaMethod confInfoCreatedSignal = + QMetaMethod::fromSignal(&ConferenceInfoProxy::conferenceInfoCreated); + if (isSignalConnected(confInfoCreatedSignal)) emit conferenceInfoCreated(new ConferenceInfoGui(data)); }, Qt::QueuedConnection); // When the date of a conference is being modified, it can be moved at another index, - // so we need to find this new index to select the right coference info + // so we need to find this new index to select the right conference info connect( mList.get(), &ConferenceInfoList::confInfoUpdated, this, - [this](QSharedPointer data) { emit conferenceInfoUpdated(new ConferenceInfoGui(data)); }, + [this](QSharedPointer data) { + static const QMetaMethod confInfoUpdatedSignal = + QMetaMethod::fromSignal(&ConferenceInfoProxy::conferenceInfoUpdated); + if (isSignalConnected(confInfoUpdatedSignal)) emit conferenceInfoUpdated(new ConferenceInfoGui(data)); + }, Qt::QueuedConnection); connect(mList.get(), &ConferenceInfoList::initialized, this, &ConferenceInfoProxy::initialized); }