From 69f6683a472f092370e052ee4c08ddf2ea403b19 Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Fri, 15 Nov 2024 09:03:50 +0100 Subject: [PATCH] Fix Ldap & Carddav adding --- Linphone/core/address-books/carddav/CarddavGui.cpp | 8 ++++++++ Linphone/core/address-books/carddav/CarddavGui.hpp | 1 + Linphone/core/address-books/carddav/CarddavList.cpp | 6 ++++-- Linphone/core/address-books/ldap/LdapGui.cpp | 8 ++++++++ Linphone/core/address-books/ldap/LdapGui.hpp | 1 + .../Layout/Settings/ContactsSettingsProviderLayout.qml | 3 ++- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Linphone/core/address-books/carddav/CarddavGui.cpp b/Linphone/core/address-books/carddav/CarddavGui.cpp index 28e0e8624..1c5e166f0 100644 --- a/Linphone/core/address-books/carddav/CarddavGui.cpp +++ b/Linphone/core/address-books/carddav/CarddavGui.cpp @@ -29,6 +29,14 @@ CarddavGui::CarddavGui(QSharedPointer core) { if (isInLinphoneThread()) moveToThread(App::getInstance()->thread()); } +CarddavGui::CarddavGui(QObject *parent) : QObject(parent) { + mustBeInMainThread(log().arg(Q_FUNC_INFO)); + App::postModelSync([this]() { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + mCore = CarddavCore::create(nullptr); + }); +} + CarddavGui::~CarddavGui() { mustBeInMainThread("~" + getClassName()); } diff --git a/Linphone/core/address-books/carddav/CarddavGui.hpp b/Linphone/core/address-books/carddav/CarddavGui.hpp index a18ad9f11..90616996a 100644 --- a/Linphone/core/address-books/carddav/CarddavGui.hpp +++ b/Linphone/core/address-books/carddav/CarddavGui.hpp @@ -32,6 +32,7 @@ class CarddavGui : public QObject, public AbstractObject { public: CarddavGui(QSharedPointer core); + CarddavGui(QObject *parent = nullptr); ~CarddavGui(); CarddavCore *getCore() const; QSharedPointer mCore; diff --git a/Linphone/core/address-books/carddav/CarddavList.cpp b/Linphone/core/address-books/carddav/CarddavList.cpp index cad9790ec..051c3bb07 100644 --- a/Linphone/core/address-books/carddav/CarddavList.cpp +++ b/Linphone/core/address-books/carddav/CarddavList.cpp @@ -72,12 +72,14 @@ void CarddavList::setSelf(QSharedPointer me) { }); }); }); - QObject::connect( - CoreModel::getInstance().get(), &CoreModel::friendListRemoved, this, + + mModelConnection->makeConnectToModel( + &CoreModel::friendListRemoved, [this](const std::shared_ptr &core, const std::shared_ptr &friendList) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); emit lUpdate(); }); + emit lUpdate(); } diff --git a/Linphone/core/address-books/ldap/LdapGui.cpp b/Linphone/core/address-books/ldap/LdapGui.cpp index 40827ff10..08ae309f9 100644 --- a/Linphone/core/address-books/ldap/LdapGui.cpp +++ b/Linphone/core/address-books/ldap/LdapGui.cpp @@ -29,6 +29,14 @@ LdapGui::LdapGui(QSharedPointer core) { if (isInLinphoneThread()) moveToThread(App::getInstance()->thread()); } +LdapGui::LdapGui(QObject *parent) : QObject(parent) { + mustBeInMainThread(getClassName()); + App::postModelSync([this]() { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + mCore = LdapCore::create(nullptr); + }); +} + LdapGui::~LdapGui() { mustBeInMainThread("~" + getClassName()); } diff --git a/Linphone/core/address-books/ldap/LdapGui.hpp b/Linphone/core/address-books/ldap/LdapGui.hpp index 819c93f41..17a420980 100644 --- a/Linphone/core/address-books/ldap/LdapGui.hpp +++ b/Linphone/core/address-books/ldap/LdapGui.hpp @@ -32,6 +32,7 @@ class LdapGui : public QObject, public AbstractObject { public: LdapGui(QSharedPointer core); + LdapGui(QObject *parent = nullptr); ~LdapGui(); LdapCore *getCore() const; QSharedPointer mCore; diff --git a/Linphone/view/Page/Layout/Settings/ContactsSettingsProviderLayout.qml b/Linphone/view/Page/Layout/Settings/ContactsSettingsProviderLayout.qml index d4157ceac..ab8f25467 100644 --- a/Linphone/view/Page/Layout/Settings/ContactsSettingsProviderLayout.qml +++ b/Linphone/view/Page/Layout/Settings/ContactsSettingsProviderLayout.qml @@ -76,7 +76,8 @@ RowLayout { } } onVisibleChanged: { - proxyModel.updateView() + if (visible) + proxyModel.updateView() } Component.onCompleted: { proxyModel.updateView()