Skip to content
Snippets Groups Projects
Commit e6723884 authored by kirillpt's avatar kirillpt
Browse files

fix encryption toggles

parent 5a3905b3
No related branches found
No related tags found
No related merge requests found
......@@ -81,7 +81,6 @@ CreateRoom::CreateRoom(QWidget *parent)
directToggle_->setActiveColor(QColor("#38A3D8"));
directToggle_->setInactiveColor(QColor("gray"));
directToggle_->setState(false);
directToggle_->setChecked(false);
auto directLayout = new QHBoxLayout;
directLayout->setContentsMargins(0, 10, 0, 10);
......
#include "dialogs/RoomSettings.h"
#include <QApplication>
#include <QComboBox>
#include <QEvent>
......@@ -15,8 +16,6 @@
#include <QStandardPaths>
#include <QStyleOption>
#include <QVBoxLayout>
#include "dialogs/RoomSettings.h"
#include <mtx/responses/common.hpp>
#include <mtx/responses/media.hpp>
......@@ -405,8 +404,31 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
auto encryptionLabel = new QLabel(tr("Encryption"), this);
encryptionToggle_ = new Toggle(this);
connect(encryptionToggle_, &Toggle::toggled, this, [this](bool isOn) {
if (!isOn)
auto encryptionOptionLayout = new QHBoxLayout;
encryptionOptionLayout->setMargin(0);
encryptionOptionLayout->addWidget(encryptionLabel, Qt::AlignBottom | Qt::AlignLeft);
encryptionOptionLayout->addWidget(encryptionToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
auto keyRequestsLabel = new QLabel(tr("Respond to key requests"), this);
keyRequestsLabel->setToolTipDuration(6000);
keyRequestsLabel->setToolTip(
tr("Whether or not the client should respond automatically with the session keys\n"
" upon request. Use with caution, this is a temporary measure to test the\n"
" E2E implementation until device verification is completed."));
keyRequestsToggle_ = new Toggle(this);
connect(keyRequestsToggle_, &Toggle::toggled, this, [this](bool isOn) {
utils::setKeyRequestsPreference(room_id_, isOn);
});
auto keyRequestsLayout = new QHBoxLayout;
keyRequestsLayout->setMargin(0);
keyRequestsLayout->setSpacing(0);
keyRequestsLayout->addWidget(keyRequestsLabel, Qt::AlignBottom | Qt::AlignLeft);
keyRequestsLayout->addWidget(keyRequestsToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
connect(encryptionToggle_, &Toggle::toggled, this, [this, keyRequestsLabel](bool isOn) {
if (!isOn || usesEncryption_)
return;
QMessageBox msgBox;
......@@ -422,44 +444,22 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
switch (ret) {
case QMessageBox::Ok: {
encryptionToggle_->setState(true);
encryptionToggle_->setEnabled(true);
encryptionToggle_->setEnabled(false);
enableEncryption();
keyRequestsToggle_->show();
keyRequestsLabel->show();
break;
}
default: {
encryptionToggle_->setState(false);
encryptionToggle_->setEnabled(false);
break;
}
}
});
auto encryptionOptionLayout = new QHBoxLayout;
encryptionOptionLayout->setMargin(0);
encryptionOptionLayout->addWidget(encryptionLabel, Qt::AlignBottom | Qt::AlignLeft);
encryptionOptionLayout->addWidget(encryptionToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
auto keyRequestsLabel = new QLabel(tr("Respond to key requests"), this);
keyRequestsLabel->setToolTipDuration(6000);
keyRequestsLabel->setToolTip(
tr("Whether or not the client should respond automatically with the session keys\n"
" upon request. Use with caution, this is a temporary measure to test the\n"
" E2E implementation until device verification is completed."));
keyRequestsToggle_ = new Toggle(this);
connect(keyRequestsToggle_, &Toggle::toggled, this, [this](bool isOn) {
utils::setKeyRequestsPreference(room_id_, isOn);
});
auto keyRequestsLayout = new QHBoxLayout;
keyRequestsLayout->setMargin(0);
keyRequestsLayout->setSpacing(0);
keyRequestsLayout->addWidget(keyRequestsLabel, Qt::AlignBottom | Qt::AlignLeft);
keyRequestsLayout->addWidget(keyRequestsToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
// Disable encryption button.
if (usesEncryption_) {
encryptionToggle_->setState(true);
encryptionToggle_->setEnabled(true);
encryptionToggle_->setEnabled(false);
keyRequestsToggle_->setState(utils::respondsToKeyRequests(room_id_));
} else {
......@@ -544,7 +544,9 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
connect(this, &RoomSettings::enableEncryptionError, this, [this](const QString &msg) {
encryptionToggle_->setState(false);
encryptionToggle_->setEnabled(false);
keyRequestsToggle_->setState(false);
keyRequestsToggle_->setEnabled(false);
keyRequestsToggle_->hide();
emit ChatPage::instance()->showNotification(msg);
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment