From cdcf43cc6a610a37b4bdf5ac960b4f0391fded66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Thu, 23 Jul 2020 14:51:47 -0400 Subject: [PATCH] settings: add rendez-vous option Change-Id: Ifa2a4502d9eae2cd700de47ae0561d6728ba7a50 --- src/calladapter.cpp | 11 +++++------ src/settingsadaptor.cpp | 15 +++++++++++++++ src/settingsadaptor.h | 2 ++ .../components/AdvancedSettingsView.qml | 12 ++++++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/calladapter.cpp b/src/calladapter.cpp index 26ec8c09f..a7980fdff 100644 --- a/src/calladapter.cpp +++ b/src/calladapter.cpp @@ -150,7 +150,10 @@ CallAdapter::slotShowIncomingCallView(const QString &accountId, const conversati /* * Show incoming call page only. */ - emit showIncomingCallPage(accountId, convInfo.uid); + auto accountProperties = LRCInstance::accountModel().getAccountConfig(accountId); + if (!accountProperties.autoAnswer && !accountProperties.isRendezVous) { + emit showIncomingCallPage(accountId, convInfo.uid); + } return; } @@ -165,11 +168,7 @@ CallAdapter::slotShowIncomingCallView(const QString &accountId, const conversati } else { auto selectedAccountId = LRCInstance::getCurrentAccountInfo().id; auto accountProperties = LRCInstance::accountModel().getAccountConfig(selectedAccountId); - if (accountProperties.autoAnswer) { - /* - * TODO: Auto answer - */ - } else { + if (!accountProperties.autoAnswer && !accountProperties.isRendezVous) { emit showIncomingCallPage(accountId, convInfo.uid); } } diff --git a/src/settingsadaptor.cpp b/src/settingsadaptor.cpp index 471b25f59..f8aa28261 100644 --- a/src/settingsadaptor.cpp +++ b/src/settingsadaptor.cpp @@ -380,6 +380,12 @@ SettingsAdaptor::getAccountConfig_DHT_PublicInCalls() return getAccountConfig().DHT.PublicInCalls; } +bool +SettingsAdaptor::getAccountConfig_RendezVous() +{ + return getAccountConfig().isRendezVous; +} + bool SettingsAdaptor::getAccountConfig_AutoAnswer() { @@ -656,6 +662,15 @@ SettingsAdaptor::setCallsUntrusted(bool state) LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps); } +void +SettingsAdaptor::setIsRendezVous(bool state) +{ + auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId()); + confProps.isRendezVous = state; + LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps); +} + + void SettingsAdaptor::setAutoAnswerCalls(bool state) { diff --git a/src/settingsadaptor.h b/src/settingsadaptor.h index eec7784d3..38a655f54 100644 --- a/src/settingsadaptor.h +++ b/src/settingsadaptor.h @@ -121,6 +121,7 @@ public: Q_INVOKABLE bool getAccountConfig_PeerDiscovery(); Q_INVOKABLE bool getAccountConfig_DHT_PublicInCalls(); + Q_INVOKABLE bool getAccountConfig_RendezVous(); Q_INVOKABLE bool getAccountConfig_AutoAnswer(); Q_INVOKABLE QString getAccountConfig_RingNS_Uri(); @@ -177,6 +178,7 @@ public: Q_INVOKABLE void setAutoConnectOnLocalNetwork(bool state); Q_INVOKABLE void setCallsUntrusted(bool state); + Q_INVOKABLE void setIsRendezVous(bool state); Q_INVOKABLE void setAutoAnswerCalls(bool state); Q_INVOKABLE void setEnableRingtone(bool state); Q_INVOKABLE void setEnableProxy(bool state); diff --git a/src/settingsview/components/AdvancedSettingsView.qml b/src/settingsview/components/AdvancedSettingsView.qml index 0510145d0..93beddbe3 100644 --- a/src/settingsview/components/AdvancedSettingsView.qml +++ b/src/settingsview/components/AdvancedSettingsView.qml @@ -34,6 +34,7 @@ ColumnLayout { //Call Settings checkAutoConnectOnLocalNetwork.checked = ClientWrapper.settingsAdaptor.getAccountConfig_PeerDiscovery() checkBoxUntrusted.checked = ClientWrapper.settingsAdaptor.getAccountConfig_DHT_PublicInCalls() + checkBoxRdv.checked = ClientWrapper.settingsAdaptor.getAccountConfig_RendezVous() checkBoxAutoAnswer.checked = ClientWrapper.settingsAdaptor.getAccountConfig_AutoAnswer() checkBoxCustomRingtone.checked = ClientWrapper.settingsAdaptor.getAccountConfig_Ringtone_RingtoneEnabled() @@ -380,6 +381,17 @@ ColumnLayout { } } } + + ToggleSwitch { + id: checkBoxRdv + + labelText: qsTr("(Experimental) Rendez-vous: turn your account into a conference room") + fontPointSize: 10 + + onSwitchToggled: { + ClientWrapper.settingsAdaptor.setIsRendezVous(checked) + } + } } } -- GitLab