From ab5bea1001569d8382505a4e283e9d1a54cdfb4f Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Wed, 17 Mar 2021 13:16:20 -0400 Subject: [PATCH] settings: add account preference of setting all moderators mode Gitlab: #319 Change-Id: I39fe050d3b9d509f8709528e1c8fcf6acf7e7ca3 --- src/constant/JamiStrings.qml | 1 + src/settingsadapter.cpp | 16 ++++++++++++++-- src/settingsadapter.h | 2 ++ .../components/AdvancedCallSettings.qml | 11 +++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/constant/JamiStrings.qml b/src/constant/JamiStrings.qml index e52dba51a..e08372c31 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 ab7b57503..55429b7db 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 25063b445..e712cb7d8 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 d7436af4d..d3032e45a 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) + } } } -- GitLab