diff --git a/src/dialogs/RoomSettings.cpp b/src/dialogs/RoomSettings.cpp
index 30da0eac..e6c9c58c 100644
--- a/src/dialogs/RoomSettings.cpp
+++ b/src/dialogs/RoomSettings.cpp
@@ -1,3 +1,4 @@
+#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);
});
|