add setting : create end to end meetings and group calls
This commit is contained in:
parent
1c23fc44ff
commit
21ee3a5414
5 changed files with 75 additions and 18 deletions
|
|
@ -68,6 +68,7 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) {
|
|||
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultMediaEncryption()));
|
||||
|
||||
mMediaEncryptionMandatory = settingsModel->getMediaEncryptionMandatory();
|
||||
mCreateEndToEndEncryptedMeetingsAndGroupCalls = settingsModel->getCreateEndToEndEncryptedMeetingsAndGroupCalls();
|
||||
|
||||
mCaptureGain = settingsModel->getCaptureGain();
|
||||
mPlaybackGain = settingsModel->getPlaybackGain();
|
||||
|
|
@ -129,6 +130,7 @@ SettingsCore::SettingsCore(const SettingsCore &settingsCore) {
|
|||
mMediaEncryptions = settingsCore.mMediaEncryptions;
|
||||
mMediaEncryption = settingsCore.mMediaEncryption;
|
||||
mMediaEncryptionMandatory = settingsCore.mMediaEncryptionMandatory;
|
||||
mCreateEndToEndEncryptedMeetingsAndGroupCalls = settingsCore.mCreateEndToEndEncryptedMeetingsAndGroupCalls;
|
||||
|
||||
// Call
|
||||
mVideoEnabled = settingsCore.mVideoEnabled;
|
||||
|
|
@ -323,6 +325,13 @@ void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
|
|||
mSettingsModelConnection->invokeToCore([this, mandatory]() { setMediaEncryptionMandatory(mandatory); });
|
||||
});
|
||||
|
||||
mSettingsModelConnection->makeConnectToModel(&SettingsModel::createEndToEndEncryptedMeetingsAndGroupCallsChanged,
|
||||
[this](bool endtoend) {
|
||||
mSettingsModelConnection->invokeToCore([this, endtoend]() {
|
||||
setCreateEndToEndEncryptedMeetingsAndGroupCalls(endtoend);
|
||||
});
|
||||
});
|
||||
|
||||
mSettingsModelConnection->makeConnectToModel(
|
||||
&SettingsModel::videoDevicesChanged, [this](const QStringList devices) {
|
||||
mSettingsModelConnection->invokeToCore([this, devices]() { setVideoDevices(devices); });
|
||||
|
|
@ -413,15 +422,15 @@ void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
|
|||
}
|
||||
});
|
||||
});
|
||||
coreModelConnection->makeConnectToModel(&CoreModel::defaultAccountChanged, [this] (const std::shared_ptr<linphone::Core> &core,
|
||||
const std::shared_ptr<linphone::Account> &account) {
|
||||
coreModelConnection->makeConnectToModel(
|
||||
&CoreModel::defaultAccountChanged,
|
||||
[this](const std::shared_ptr<linphone::Core> &core, const std::shared_ptr<linphone::Account> &account) {
|
||||
QString accountDomain;
|
||||
if (account) {
|
||||
accountDomain = Utils::coreStringToAppString(account->getParams()->getDomain());
|
||||
}
|
||||
mSettingsModelConnection->invokeToCore([this, accountDomain]() {
|
||||
setShowAccountDevices(accountDomain == mDefaultDomain);
|
||||
});
|
||||
mSettingsModelConnection->invokeToCore(
|
||||
[this, accountDomain]() { setShowAccountDevices(accountDomain == mDefaultDomain); });
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -448,6 +457,7 @@ void SettingsCore::reset(const SettingsCore &settingsCore) {
|
|||
setMediaEncryption(settingsCore.mMediaEncryption);
|
||||
|
||||
setMediaEncryptionMandatory(settingsCore.mMediaEncryptionMandatory);
|
||||
setCreateEndToEndEncryptedMeetingsAndGroupCalls(settingsCore.mCreateEndToEndEncryptedMeetingsAndGroupCalls);
|
||||
|
||||
setCaptureGain(settingsCore.mCaptureGain);
|
||||
setPlaybackGain(settingsCore.mPlaybackGain);
|
||||
|
|
@ -592,6 +602,18 @@ void SettingsCore::setMediaEncryptionMandatory(bool mandatory) {
|
|||
}
|
||||
}
|
||||
|
||||
bool SettingsCore::getCreateEndToEndEncryptedMeetingsAndGroupCalls() const {
|
||||
return mCreateEndToEndEncryptedMeetingsAndGroupCalls;
|
||||
}
|
||||
|
||||
void SettingsCore::setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend) {
|
||||
if (mCreateEndToEndEncryptedMeetingsAndGroupCalls != endtoend) {
|
||||
mCreateEndToEndEncryptedMeetingsAndGroupCalls = endtoend;
|
||||
emit createEndToEndEncryptedMeetingsAndGroupCallsChanged(endtoend);
|
||||
setIsSaved(false);
|
||||
}
|
||||
}
|
||||
|
||||
bool SettingsCore::isSaved() const {
|
||||
return mIsSaved;
|
||||
}
|
||||
|
|
@ -911,6 +933,7 @@ void SettingsCore::writeIntoModel(std::shared_ptr<SettingsModel> model) const {
|
|||
LinphoneEnums::toLinphone(LinphoneEnums::MediaEncryption(mMediaEncryption["id"].toInt())));
|
||||
|
||||
model->setMediaEncryptionMandatory(mMediaEncryptionMandatory);
|
||||
model->setCreateEndToEndEncryptedMeetingsAndGroupCalls(mCreateEndToEndEncryptedMeetingsAndGroupCalls);
|
||||
|
||||
model->setCaptureGain(mCaptureGain);
|
||||
model->setPlaybackGain(mPlaybackGain);
|
||||
|
|
@ -973,6 +996,7 @@ void SettingsCore::writeFromModel(const std::shared_ptr<SettingsModel> &model) {
|
|||
mMediaEncryption = LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(model->getDefaultMediaEncryption()));
|
||||
|
||||
mMediaEncryptionMandatory = model->getMediaEncryptionMandatory();
|
||||
mCreateEndToEndEncryptedMeetingsAndGroupCalls = model->getCreateEndToEndEncryptedMeetingsAndGroupCalls();
|
||||
|
||||
mCaptureGain = model->getCaptureGain();
|
||||
mPlaybackGain = model->getPlaybackGain();
|
||||
|
|
|
|||
|
|
@ -66,6 +66,9 @@ public:
|
|||
QVariantMap mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged)
|
||||
Q_PROPERTY(bool mediaEncryptionMandatory READ isMediaEncryptionMandatory WRITE setMediaEncryptionMandatory NOTIFY
|
||||
mediaEncryptionMandatoryChanged)
|
||||
Q_PROPERTY(
|
||||
bool createEndToEndEncryptedMeetingsAndGroupCalls READ getCreateEndToEndEncryptedMeetingsAndGroupCalls WRITE
|
||||
setCreateEndToEndEncryptedMeetingsAndGroupCalls NOTIFY createEndToEndEncryptedMeetingsAndGroupCallsChanged)
|
||||
|
||||
Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged)
|
||||
Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged)
|
||||
|
|
@ -80,7 +83,8 @@ public:
|
|||
Q_PROPERTY(bool dnd READ dndEnabled WRITE lEnableDnd NOTIFY dndChanged)
|
||||
Q_PROPERTY(bool isSaved READ isSaved WRITE setIsSaved NOTIFY isSavedChanged)
|
||||
|
||||
Q_PROPERTY(bool showAccountDevices READ showAccountDevices WRITE setShowAccountDevices NOTIFY showAccountDevicesChanged)
|
||||
Q_PROPERTY(
|
||||
bool showAccountDevices READ showAccountDevices WRITE setShowAccountDevices NOTIFY showAccountDevicesChanged)
|
||||
|
||||
static QSharedPointer<SettingsCore> create();
|
||||
SettingsCore(QObject *parent = Q_NULLPTR);
|
||||
|
|
@ -154,6 +158,8 @@ public:
|
|||
void setMediaEncryption(QVariantMap encryption);
|
||||
bool isMediaEncryptionMandatory() const;
|
||||
void setMediaEncryptionMandatory(bool mandatory);
|
||||
bool getCreateEndToEndEncryptedMeetingsAndGroupCalls() const;
|
||||
void setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend);
|
||||
bool isSaved() const;
|
||||
void setIsSaved(bool saved);
|
||||
|
||||
|
|
@ -259,6 +265,8 @@ signals:
|
|||
|
||||
void mediaEncryptionMandatoryChanged(bool mandatory);
|
||||
|
||||
void createEndToEndEncryptedMeetingsAndGroupCallsChanged(bool endtoend);
|
||||
|
||||
void isSavedChanged();
|
||||
|
||||
void lSetPlaybackDevice(QVariantMap device);
|
||||
|
|
@ -305,6 +313,7 @@ private:
|
|||
QVariantList mMediaEncryptions;
|
||||
QVariantMap mMediaEncryption;
|
||||
bool mMediaEncryptionMandatory;
|
||||
bool mCreateEndToEndEncryptedMeetingsAndGroupCalls;
|
||||
|
||||
// Call
|
||||
bool mVideoEnabled;
|
||||
|
|
|
|||
|
|
@ -63,7 +63,8 @@ SettingsModel::SettingsModel() {
|
|||
notifyConfigReady();
|
||||
}
|
||||
});
|
||||
QObject::connect(CoreModel::getInstance().get(), &CoreModel::defaultAccountChanged, this,
|
||||
QObject::connect(
|
||||
CoreModel::getInstance().get(), &CoreModel::defaultAccountChanged, this,
|
||||
[this](const std::shared_ptr<linphone::Core> &core, const std::shared_ptr<linphone::Account> account) {
|
||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||
setDisableMeetingsFeature(account && !account->getParams()->getAudioVideoConferenceFactoryAddress());
|
||||
|
|
@ -350,6 +351,17 @@ void SettingsModel::setMediaEncryptionMandatory(bool mandatory) {
|
|||
emit mediaEncryptionMandatoryChanged();
|
||||
}
|
||||
|
||||
bool SettingsModel::getCreateEndToEndEncryptedMeetingsAndGroupCalls() const {
|
||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||
return !!mConfig->getBool(SettingsModel::AppSection, "create_e2e_encrypted_conferences", false);
|
||||
}
|
||||
|
||||
void SettingsModel::setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend) {
|
||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||
mConfig->setBool(SettingsModel::AppSection, "create_e2e_encrypted_conferences", endtoend);
|
||||
emit createEndToEndEncryptedMeetingsAndGroupCallsChanged(endtoend);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
QVariantMap SettingsModel::getPlaybackDevice() const {
|
||||
|
|
@ -690,7 +702,8 @@ void SettingsModel::setShortcuts(QVariantList data) {
|
|||
}
|
||||
|
||||
QString SettingsModel::getDefaultDomain() const {
|
||||
return Utils::coreStringToAppString(mConfig->getString(SettingsModel::AppSection, "default_domain", "sip.linphone.org"));
|
||||
return Utils::coreStringToAppString(
|
||||
mConfig->getString(SettingsModel::AppSection, "default_domain", "sip.linphone.org"));
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
|
|
|
|||
|
|
@ -103,6 +103,9 @@ public:
|
|||
bool getMediaEncryptionMandatory() const;
|
||||
void setMediaEncryptionMandatory(bool mandatory);
|
||||
|
||||
bool getCreateEndToEndEncryptedMeetingsAndGroupCalls() const;
|
||||
void setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend);
|
||||
|
||||
QVariantMap getRingerDevice() const;
|
||||
void setRingerDevice(QVariantMap device);
|
||||
|
||||
|
|
@ -209,6 +212,7 @@ signals:
|
|||
void conferenceLayoutChanged();
|
||||
void mediaEncryptionChanged();
|
||||
void mediaEncryptionMandatoryChanged();
|
||||
void createEndToEndEncryptedMeetingsAndGroupCallsChanged(bool endtoend);
|
||||
|
||||
void echoCancellationEnabledChanged(bool enabled);
|
||||
void automaticallyRecordCallsEnabledChanged(bool enabled);
|
||||
|
|
|
|||
|
|
@ -133,6 +133,13 @@ AbstractSettingsLayout {
|
|||
propertyName: "mediaEncryptionMandatory"
|
||||
propertyOwner: SettingsCpp
|
||||
}
|
||||
SwitchSetting {
|
||||
Layout.fillWidth: true
|
||||
//: Create end to end encrypted meetings and group calls
|
||||
titleText: qsTr("settings_advanced_create_endtoend_encrypted_meetings_title")
|
||||
propertyName: "createEndToEndEncryptedMeetingsAndGroupCalls"
|
||||
propertyOwner: SettingsCpp
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue