From 5a3905b33720b98998c36100a07fb3a270acf47d Mon Sep 17 00:00:00 2001 From: kirillpt Date: Thu, 26 Nov 2020 23:45:44 +0300 Subject: change Toggle behavior --- src/dialogs/RoomSettings.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/dialogs/RoomSettings.cpp') diff --git a/src/dialogs/RoomSettings.cpp b/src/dialogs/RoomSettings.cpp index 5b7dc59a..30da0eac 100644 --- a/src/dialogs/RoomSettings.cpp +++ b/src/dialogs/RoomSettings.cpp @@ -406,7 +406,7 @@ 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) + if (!isOn) return; QMessageBox msgBox; @@ -421,14 +421,14 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent) switch (ret) { case QMessageBox::Ok: { - encryptionToggle_->setState(false); - encryptionToggle_->setEnabled(false); + encryptionToggle_->setState(true); + encryptionToggle_->setEnabled(true); enableEncryption(); break; } default: { - encryptionToggle_->setState(true); - encryptionToggle_->setEnabled(true); + encryptionToggle_->setState(false); + encryptionToggle_->setEnabled(false); break; } } @@ -447,7 +447,7 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent) " E2E implementation until device verification is completed.")); keyRequestsToggle_ = new Toggle(this); connect(keyRequestsToggle_, &Toggle::toggled, this, [this](bool isOn) { - utils::setKeyRequestsPreference(room_id_, !isOn); + utils::setKeyRequestsPreference(room_id_, isOn); }); auto keyRequestsLayout = new QHBoxLayout; @@ -458,12 +458,12 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent) // Disable encryption button. if (usesEncryption_) { - encryptionToggle_->setState(false); - encryptionToggle_->setEnabled(false); + encryptionToggle_->setState(true); + encryptionToggle_->setEnabled(true); - keyRequestsToggle_->setState(!utils::respondsToKeyRequests(room_id_)); + keyRequestsToggle_->setState(utils::respondsToKeyRequests(room_id_)); } else { - encryptionToggle_->setState(true); + encryptionToggle_->setState(false); keyRequestsLabel->hide(); keyRequestsToggle_->hide(); @@ -543,8 +543,8 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent) layout->addStretch(1); connect(this, &RoomSettings::enableEncryptionError, this, [this](const QString &msg) { - encryptionToggle_->setState(true); - encryptionToggle_->setEnabled(true); + encryptionToggle_->setState(false); + encryptionToggle_->setEnabled(false); emit ChatPage::instance()->showNotification(msg); }); -- cgit 1.5.1 From e6723884a7d32f5ab9b8caae25f602b705934363 Mon Sep 17 00:00:00 2001 From: kirillpt Date: Fri, 27 Nov 2020 00:55:39 +0300 Subject: fix encryption toggles --- src/dialogs/CreateRoom.cpp | 1 - src/dialogs/RoomSettings.cpp | 64 +++++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 32 deletions(-) (limited to 'src/dialogs/RoomSettings.cpp') diff --git a/src/dialogs/CreateRoom.cpp b/src/dialogs/CreateRoom.cpp index b5dc5247..459405ce 100644 --- a/src/dialogs/CreateRoom.cpp +++ b/src/dialogs/CreateRoom.cpp @@ -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); 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 #include #include @@ -15,8 +16,6 @@ #include #include #include - -#include "dialogs/RoomSettings.h" #include #include @@ -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); }); -- cgit 1.5.1