Move Codecs under the save scope in settings

This commit is contained in:
Christophe Deschamps 2025-12-17 15:36:34 +01:00
parent dc1ec216e8
commit c3b160ec3e
3 changed files with 48 additions and 3 deletions

View file

@ -51,8 +51,25 @@ PayloadTypeCore::~PayloadTypeCore() {
void PayloadTypeCore::setSelf(QSharedPointer<PayloadTypeCore> me) {
mPayloadTypeModelConnection = SafeConnection<PayloadTypeCore, PayloadTypeModel>::create(me, mPayloadTypeModel);
DEFINE_CORE_GETSET_CONNECT(mPayloadTypeModelConnection, PayloadTypeCore, PayloadTypeModel, mPayloadTypeModel, bool,
enabled, Enabled)
mPayloadTypeModelConnection->makeConnectToCore(&PayloadTypeCore::setEnabled, [this](bool enabled) {
if (enabled != mEnabled) {
mChanged = true;
emit changed();
}
mEnabled = enabled;
});
mPayloadTypeModelConnection->makeConnectToModel(&PayloadTypeModel::enabledChanged, [this](bool enabled) {
mPayloadTypeModelConnection->invokeToCore([this, enabled]() {
if (mEnabled != enabled) {
mEnabled = enabled;
emit enabledChanged();
}
});
});
}
void PayloadTypeCore::save() {
if (mChanged) mPayloadTypeModelConnection->invokeToModel([this]() { mPayloadTypeModel->setEnabled(mEnabled); });
}
PayloadTypeCore::Family PayloadTypeCore::getFamily() {

View file

@ -43,7 +43,7 @@ public:
const std::shared_ptr<linphone::PayloadType> &payloadType);
PayloadTypeCore(Family family, const std::shared_ptr<linphone::PayloadType> &payloadType);
PayloadTypeCore(){};
PayloadTypeCore() {};
~PayloadTypeCore();
void setSelf(QSharedPointer<PayloadTypeCore> me);
@ -51,9 +51,15 @@ public:
bool isDownloadable();
QString getMimeType();
Q_INVOKABLE void save();
signals:
void changed();
protected:
Family mFamily;
bool mDownloadable = false;
bool mChanged = false;
DECLARE_CORE_GETSET_MEMBER(bool, enabled, Enabled)
DECLARE_CORE_MEMBER(QString, mimeType, MimeType)
DECLARE_CORE_MEMBER(QString, encoderDescription, EncoderDescription)

View file

@ -167,6 +167,17 @@ AbstractSettingsLayout {
subTitleText: modelData.core.clockRate + " Hz"
propertyName: "enabled"
propertyOwnerGui: modelData
Connections {
target: modelData.core
function onChanged() { SettingsCpp.isSaved = false }
}
Connections {
target: SettingsCpp
function onIsSavedChanged(saved) {
if (saved)
modelData.core.save()
}
}
}
}
}
@ -194,6 +205,17 @@ AbstractSettingsLayout {
subTitleText: modelData.core.encoderDescription
propertyName: "enabled"
propertyOwnerGui: modelData
Connections {
target: modelData.core
function onChanged() { SettingsCpp.isSaved = false }
}
Connections {
target: SettingsCpp
function onIsSavedChanged(saved) {
if (saved)
modelData.core.save()
}
}
}
}
ListView {