From 13ec7906486fa9442349ad0dd03fc80aa8ddfb8d Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Wed, 10 Dec 2025 09:52:32 +0100 Subject: [PATCH] Fix - when accessing and existing settings making no changes do not show Save? popup --- Linphone/core/setting/SettingsCore.cpp | 18 ++++++++++++++++-- Linphone/core/setting/SettingsCore.hpp | 2 ++ .../view/Page/Form/Settings/SettingsPage.qml | 4 ++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Linphone/core/setting/SettingsCore.cpp b/Linphone/core/setting/SettingsCore.cpp index 1044387d2..21eb515e6 100644 --- a/Linphone/core/setting/SettingsCore.cpp +++ b/Linphone/core/setting/SettingsCore.cpp @@ -304,7 +304,7 @@ void SettingsCore::setSelf(QSharedPointer me) { }); }); mSettingsModelConnection->makeConnectToModel(&SettingsModel::playbackGainChanged, [this](const float value) { - mSettingsModelConnection->invokeToCore([this, value]() { setPlaybackGain(value); }); + mSettingsModelConnection->invokeToCore([this, value]() { setPlaybackGainFromModel(value); }); }); mSettingsModelConnection->makeConnectToCore(&SettingsCore::lSetCaptureGain, [this](const float value) { @@ -314,7 +314,7 @@ void SettingsCore::setSelf(QSharedPointer me) { }); }); mSettingsModelConnection->makeConnectToModel(&SettingsModel::captureGainChanged, [this](const float value) { - mSettingsModelConnection->invokeToCore([this, value]() { setCaptureGain(value); }); + mSettingsModelConnection->invokeToCore([this, value]() { setCaptureGainFromModel(value); }); }); mSettingsModelConnection->makeConnectToModel(&SettingsModel::micVolumeChanged, [this](const float value) { @@ -767,6 +767,13 @@ void SettingsCore::setCaptureGain(float gain) { } } +void SettingsCore::setCaptureGainFromModel(float gain) { + if (mCaptureGain != gain) { + mCaptureGain = gain; + emit captureGainChanged(gain); + } +} + QVariantMap SettingsCore::getConferenceLayout() const { return mConferenceLayout; } @@ -811,6 +818,13 @@ void SettingsCore::setPlaybackGain(float gain) { } } +void SettingsCore::setPlaybackGainFromModel(float gain) { + if (mPlaybackGain != gain) { + mPlaybackGain = gain; + emit playbackGainChanged(gain); + } +} + QVariantMap SettingsCore::getCaptureDevice() const { return mCaptureDevice; } diff --git a/Linphone/core/setting/SettingsCore.hpp b/Linphone/core/setting/SettingsCore.hpp index ec8851b1d..b7f8d1a82 100644 --- a/Linphone/core/setting/SettingsCore.hpp +++ b/Linphone/core/setting/SettingsCore.hpp @@ -144,9 +144,11 @@ public: float getPlaybackGain() const; void setPlaybackGain(float gain); + void setPlaybackGainFromModel(float gain); float getCaptureGain() const; void setCaptureGain(float gain); + void setCaptureGainFromModel(float gain); QVariantList getCaptureDevices() const; void setCaptureDevices(QVariantList devices); diff --git a/Linphone/view/Page/Form/Settings/SettingsPage.qml b/Linphone/view/Page/Form/Settings/SettingsPage.qml index 8ad2444b3..ac3f6b5c6 100644 --- a/Linphone/view/Page/Form/Settings/SettingsPage.qml +++ b/Linphone/view/Page/Form/Settings/SettingsPage.qml @@ -50,4 +50,8 @@ AbstractSettingsMenu { qsTr("contact_editor_dialog_abort_confirmation_save") ) } else {mainItem.goBack()} + + Component.onCompleted: { + SettingsCpp.isSaved = true + } }