diff --git a/Linphone/model/address-books/ldap/LdapModel.cpp b/Linphone/model/address-books/ldap/LdapModel.cpp index 6ec3788f6..1fc66ccef 100644 --- a/Linphone/model/address-books/ldap/LdapModel.cpp +++ b/Linphone/model/address-books/ldap/LdapModel.cpp @@ -47,6 +47,7 @@ LdapModel::~LdapModel() { void LdapModel::save() { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + auto core = CoreModel::getInstance()->getCore(); int oldTimeout = 5; int oldLimit = 50; int oldMinChars = 0; @@ -54,16 +55,19 @@ void LdapModel::save() { oldTimeout = mLdap->getTimeout(); oldLimit = mLdap->getLimit(); oldMinChars = mLdap->getMinCharacters(); - CoreModel::getInstance()->getCore()->removeRemoteContactDirectory( + core->removeRemoteContactDirectory( mLdap); // Need to do remove/add when updating, as setParams on existing one also adds it to core. } - mLdap = CoreModel::getInstance()->getCore()->createLdapRemoteContactDirectory(mLdapParamsClone); + mLdap = core->createLdapRemoteContactDirectory(mLdapParamsClone); mLdap->setTimeout(oldTimeout); mLdap->setLimit(oldLimit); mLdap->setMinCharacters(oldMinChars); - CoreModel::getInstance()->getCore()->addRemoteContactDirectory(mLdap); + core->addRemoteContactDirectory(mLdap); lDebug() << log().arg("LDAP Server saved"); mLdapParamsClone = mLdap->getLdapParams(); + // Clean cache to take account new searches + auto ldapFriendList = core->getFriendListByName("ldap_friends"); + if (ldapFriendList) core->removeFriendList(ldapFriendList); emit saved(); } diff --git a/Linphone/model/core/CoreModel.cpp b/Linphone/model/core/CoreModel.cpp index 117caa611..6d3615dbc 100644 --- a/Linphone/model/core/CoreModel.cpp +++ b/Linphone/model/core/CoreModel.cpp @@ -96,6 +96,10 @@ void CoreModel::start() { mCore->setUserAgent(Utils::appStringToCoreString(userAgent), LINPHONESDK_VERSION); mCore->start(); setPathAfterStart(); + // Remove ldap friends cache list. If not, old stored friends will take priority on merge and will not be updated + // from new LDAP requests.. + auto ldapFriendList = mCore->getFriendListByName("ldap_friends"); + if (ldapFriendList) mCore->removeFriendList(ldapFriendList); mCore->enableFriendListSubscription(true); // TODO : get this from settings auto videoPolicy = mCore->getVideoActivationPolicy()->clone(); diff --git a/Linphone/view/Page/Main/Meeting/MeetingPage.qml b/Linphone/view/Page/Main/Meeting/MeetingPage.qml index 5e1a1015a..b3bfd2ccf 100644 --- a/Linphone/view/Page/Main/Meeting/MeetingPage.qml +++ b/Linphone/view/Page/Main/Meeting/MeetingPage.qml @@ -578,7 +578,7 @@ AbstractMainPage { } Text { Layout.fillWidth: true - text: mainItem.selectedConference ? mainItem.selectedConference.core?.subject : "" + text: mainItem.selectedConference && mainItem.selectedConference.core? mainItem.selectedConference.core.subject : "" maximumLineCount: 1 font { pixelSize: 20 * DefaultStyle.dp @@ -669,7 +669,7 @@ AbstractMainPage { id: linkButton Layout.fillWidth: true font.bold: shadowEnabled - text: mainItem.selectedConference ? mainItem.selectedConference.core?.uri : "" + text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.uri : "" textSize: 14 * DefaultStyle.dp textWeight: 400 * DefaultStyle.dp underline: true @@ -717,11 +717,11 @@ AbstractMainPage { source: AppIcons.clock } Text { - text: mainItem.selectedConference - ? UtilsCpp.toDateString(mainItem.selectedConference.core?.dateTime) - + " | " + UtilsCpp.toDateHourString(mainItem.selectedConference.core?.dateTime) + text: mainItem.selectedConference && mainItem.selectedConference.core + ? UtilsCpp.toDateString(mainItem.selectedConference.core.dateTime) + + " | " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.dateTime) + " - " - + UtilsCpp.toDateHourString(mainItem.selectedConference.core?.endDateTime) + + UtilsCpp.toDateHourString(mainItem.selectedConference.core.endDateTime) : '' font { pixelSize: 14 * DefaultStyle.dp @@ -737,7 +737,7 @@ AbstractMainPage { source: AppIcons.globe } Text { - text: qsTr("Time zone: ") + (mainItem.selectedConference ? (mainItem.selectedConference.core?.timeZoneModel.displayName + ", " + mainItem.selectedConference.core.timeZoneModel.countryName) : "") + text: qsTr("Time zone: ") + (mainItem.selectedConference && mainItem.selectedConference.core ? (mainItem.selectedConference.core.timeZoneModel.displayName + ", " + mainItem.selectedConference.core.timeZoneModel.countryName) : "") font { pixelSize: 14 * DefaultStyle.dp capitalization: Font.Capitalize @@ -757,7 +757,7 @@ AbstractMainPage { colorizationColor: DefaultStyle.main2_600 } Text { - text: mainItem.selectedConference ? mainItem.selectedConference.core?.description : "" + text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.description : "" Layout.fillWidth: true font { pixelSize: 14 * DefaultStyle.dp @@ -778,10 +778,10 @@ AbstractMainPage { Avatar { Layout.preferredWidth: 45 * DefaultStyle.dp Layout.preferredHeight: 45 * DefaultStyle.dp - _address: mainItem.selectedConference ? mainItem.selectedConference.core?.organizerAddress : "" + _address: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerAddress : "" } Text { - text: mainItem.selectedConference ? mainItem.selectedConference.core?.organizerName : "" + text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerName : "" font { pixelSize: 14 * DefaultStyle.dp capitalization: Font.Capitalize @@ -806,7 +806,7 @@ AbstractMainPage { id: participantList Layout.preferredHeight: Math.min(184 * DefaultStyle.dp, contentHeight) Layout.fillWidth: true - model: mainItem.selectedConference ? mainItem.selectedConference.core?.participants : [] + model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : [] clip: true delegate: RowLayout { height: 56 * DefaultStyle.dp