From 2d923ac663592fb1da46371a15e1f6dd9d303410 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 27 Sep 2022 15:00:49 +0200 Subject: [PATCH] Synchronize ICS on deletion. --- .../conferenceInfo/ConferenceInfoListModel.cpp | 12 +++++++++--- .../conferenceInfo/ConferenceInfoListModel.hpp | 3 ++- .../conferenceInfo/ConferenceInfoModel.cpp | 6 +++--- .../ui/modules/Linphone/Chat/ChatCalendarMessage.qml | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.cpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.cpp index 5bc97e993..1aa28f80c 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.cpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.cpp @@ -61,9 +61,11 @@ QSharedPointer ConferenceInfoListModel::build(const std::sh haveMe = (std::find_if(participants.begin(), participants.end(), [me](const std::shared_ptr& address){ return me->weakEqual(address); }) != participants.end()); - if(haveMe) - return ConferenceInfoModel::create( conferenceInfo ); - else + if(haveMe){ + auto conferenceModel = ConferenceInfoModel::create( conferenceInfo ); + connect(conferenceModel.get(), &ConferenceInfoModel::removed, this, &ConferenceInfoListModel::onRemoved); + return conferenceModel; + }else return nullptr; } @@ -115,5 +117,9 @@ void ConferenceInfoListModel::onConferenceInfoReceived(const std::shared_ptrgetUri()->asString().c_str(); } + +void ConferenceInfoListModel::onRemoved(bool byUser){ + remove(sender()); +} \ No newline at end of file diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.hpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.hpp index e10d3e7d5..c7ee051f5 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.hpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoListModel.hpp @@ -46,7 +46,8 @@ public: QSharedPointer get(std::shared_ptr conferenceInfo) const; void onConferenceInfoReceived(const std::shared_ptr & conferenceInfo); - +public slots: + void onRemoved(bool byUser); signals: void filterTypeChanged(int filterType); diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp index e820a5cf9..70bbec425 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp @@ -158,15 +158,15 @@ QDateTime ConferenceInfoModel::getEndDateTime() const{ } QString ConferenceInfoModel::getOrganizer() const{ - return QString::fromStdString(mConferenceInfo->getOrganizer()->asString()); + return Utils::coreStringToAppString(mConferenceInfo->getOrganizer()->asString()); } QString ConferenceInfoModel::getSubject() const{ - return QString::fromStdString(mConferenceInfo->getSubject()); + return Utils::coreStringToAppString(mConferenceInfo->getSubject()); } QString ConferenceInfoModel::getDescription() const{ - return QString::fromStdString(mConferenceInfo->getDescription()); + return Utils::coreStringToAppString(mConferenceInfo->getDescription()); } QString ConferenceInfoModel::displayNamesToString()const{ diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml index 4ae79f8fa..adcbd545d 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml @@ -32,7 +32,7 @@ Loader{ property int gotoButtonMode: -1 //-1: hide, 0:goto, 1:MoreInfo property bool isExpanded : false - property bool isCancelled: conferenceInfoModel.state == LinphoneEnums.ConferenceInfoStateCancelled + property bool isCancelled: conferenceInfoModel && conferenceInfoModel.state == LinphoneEnums.ConferenceInfoStateCancelled signal expandToggle() signal conferenceUriCopied()