diff --git a/src/constant/JamiStrings.qml b/src/constant/JamiStrings.qml index e52dba51a626d891ca496ed407850aeeecec7180..e08372c31345ceae7aab57faf9a82e390fd1ef65 100644 --- a/src/constant/JamiStrings.qml +++ b/src/constant/JamiStrings.qml @@ -419,6 +419,7 @@ Item { property string conferenceModeration: qsTr("Conference moderation") property string defaultModerators: qsTr("Default moderators") property string enableLocalModerators: qsTr("Enable local moderators") + property string enableAllModerators: qsTr("Make all participants moderators") property string addDefaultModerator: qsTr("Add default moderator") property string removeDefaultModerator: qsTr("Remove default moderator") diff --git a/src/settingsadapter.cpp b/src/settingsadapter.cpp index ab7b57503ce40d7f083f954838e5f2cf7cf1706d..55429b7db47ce6b9a3c6cddef957a956790b8441 100644 --- a/src/settingsadapter.cpp +++ b/src/settingsadapter.cpp @@ -1014,7 +1014,13 @@ SettingsAdapter::setDefaultModerator(const QString& accountId, const QString& peerURI, const bool& state) { - return lrcInstance_->accountModel().setDefaultModerator(accountId, peerURI, state); + lrcInstance_->accountModel().setDefaultModerator(accountId, peerURI, state); +} + +void +SettingsAdapter::setAllModeratorsEnabled(const QString& accountId, bool enabled) +{ + lrcInstance_->accountModel().setAllModerators(accountId, enabled); } QStringList @@ -1026,7 +1032,7 @@ SettingsAdapter::getDefaultModerators(const QString& accountId) void SettingsAdapter::enableLocalModerators(const QString& accountId, const bool& isModEnabled) { - return lrcInstance_->accountModel().enableLocalModerators(accountId, isModEnabled); + lrcInstance_->accountModel().enableLocalModerators(accountId, isModEnabled); } bool @@ -1034,3 +1040,9 @@ SettingsAdapter::isLocalModeratorsEnabled(const QString& accountId) { return lrcInstance_->accountModel().isLocalModeratorsEnabled(accountId); } + +bool +SettingsAdapter::isAllModeratorsEnabled(const QString& accountId) +{ + return lrcInstance_->accountModel().isAllModerators(accountId); +} diff --git a/src/settingsadapter.h b/src/settingsadapter.h index 25063b445b7ecf54c82862786a545ac822829bee..e712cb7d8b2c5cf2ab540bbdb665f84249319a17 100644 --- a/src/settingsadapter.h +++ b/src/settingsadapter.h @@ -220,8 +220,10 @@ public: Q_INVOKABLE void setDefaultModerator(const QString& accountID, const QString& peerURI, const bool& state); + Q_INVOKABLE void setAllModeratorsEnabled(const QString& accountId, bool enabled); Q_INVOKABLE QStringList getDefaultModerators(const QString& accId); Q_INVOKABLE void enableLocalModerators(const QString& accountID, const bool& isModEnabled); Q_INVOKABLE bool isLocalModeratorsEnabled(const QString& accountId); + Q_INVOKABLE bool isAllModeratorsEnabled(const QString& accountId); }; Q_DECLARE_METATYPE(SettingsAdapter*) diff --git a/src/settingsview/components/AdvancedCallSettings.qml b/src/settingsview/components/AdvancedCallSettings.qml index d7436af4dbb265630ce75c48d2db45bb1ccf703e..d3032e45af16768daa5baf39db074c41567a23a2 100644 --- a/src/settingsview/components/AdvancedCallSettings.qml +++ b/src/settingsview/components/AdvancedCallSettings.qml @@ -43,6 +43,7 @@ ColumnLayout { checkBoxRdv.checked = SettingsAdapter.getAccountConfig_RendezVous() checkBoxAutoAnswer.checked = SettingsAdapter.getAccountConfig_AutoAnswer() checkBoxCustomRingtone.checked = SettingsAdapter.getAccountConfig_Ringtone_RingtoneEnabled() + checkboxAllModerators.checked = SettingsAdapter.isAllModeratorsEnabled(AccountAdapter.currentAccountId) btnRingtone.setEnabled(SettingsAdapter.getAccountConfig_Ringtone_RingtoneEnabled()) btnRingtone.setText(UtilsAdapter.toFileInfoName(SettingsAdapter.getAccountConfig_Ringtone_RingtonePath())) @@ -236,5 +237,15 @@ ColumnLayout { ContactPickerCreation.openContactPicker() } } + + ToggleSwitch { + id: checkboxAllModerators + + labelText: JamiStrings.enableAllModerators + fontPointSize: JamiTheme.settingsFontSize + + onSwitchToggled: SettingsAdapter.setAllModeratorsEnabled( + AccountAdapter.currentAccountId, checked) + } } }