summary refs log tree commit diff
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2020-11-26 23:05:31 +0100
committerGitHub <noreply@github.com>2020-11-26 23:05:31 +0100
commit4d2911692271abf1947546b01836fc0ffa47c063 (patch)
treecef95a50661aacdbad838aa1b1cfddb7fe1492d6
parentMerge pull request #343 from Kirillpt/fix/textFieldvalidation (diff)
parentfix encryption toggles (diff)
downloadnheko-4d2911692271abf1947546b01836fc0ffa47c063.tar.xz
Merge pull request #344 from Kirillpt/fix/togglebutton_using
Fix toggles in the remaining dialogues
-rw-r--r--src/dialogs/CreateRoom.cpp6
-rw-r--r--src/dialogs/RoomSettings.cpp70
-rw-r--r--src/ui/ToggleButton.cpp1
3 files changed, 40 insertions, 37 deletions
diff --git a/src/dialogs/CreateRoom.cpp b/src/dialogs/CreateRoom.cpp
index be5b4638..459405ce 100644
--- a/src/dialogs/CreateRoom.cpp
+++ b/src/dialogs/CreateRoom.cpp
@@ -80,7 +80,7 @@ CreateRoom::CreateRoom(QWidget *parent)
         directToggle_     = new Toggle(this);
         directToggle_->setActiveColor(QColor("#38A3D8"));
         directToggle_->setInactiveColor(QColor("gray"));
-        directToggle_->setState(true);
+        directToggle_->setState(false);
 
         auto directLayout = new QHBoxLayout;
         directLayout->setContentsMargins(0, 10, 0, 10);
@@ -133,8 +133,8 @@ CreateRoom::CreateRoom(QWidget *parent)
                         }
                 });
 
-        connect(directToggle_, &Toggle::toggled, this, [this](bool isDisabled) {
-                request_.is_direct = !isDisabled;
+        connect(directToggle_, &Toggle::toggled, this, [this](bool isEnabled) {
+                request_.is_direct = isEnabled;
         });
 }
 
diff --git a/src/dialogs/RoomSettings.cpp b/src/dialogs/RoomSettings.cpp
index 5b7dc59a..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;
@@ -421,49 +443,27 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
 
                 switch (ret) {
                 case QMessageBox::Ok: {
-                        encryptionToggle_->setState(false);
+                        encryptionToggle_->setState(true);
                         encryptionToggle_->setEnabled(false);
                         enableEncryption();
+                        keyRequestsToggle_->show();
+                        keyRequestsLabel->show();
                         break;
                 }
                 default: {
-                        encryptionToggle_->setState(true);
-                        encryptionToggle_->setEnabled(true);
                         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(false);
+                encryptionToggle_->setState(true);
                 encryptionToggle_->setEnabled(false);
 
-                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,10 @@ 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);
+                keyRequestsToggle_->setState(false);
+                keyRequestsToggle_->setEnabled(false);
+                keyRequestsToggle_->hide();
 
                 emit ChatPage::instance()->showNotification(msg);
         });
diff --git a/src/ui/ToggleButton.cpp b/src/ui/ToggleButton.cpp
index 252232a1..40ea82ac 100644
--- a/src/ui/ToggleButton.cpp
+++ b/src/ui/ToggleButton.cpp
@@ -22,6 +22,7 @@ Toggle::Toggle(QWidget *parent)
 void
 Toggle::setState(bool isEnabled)
 {
+        setChecked(isEnabled);
         thumb_->setShift(isEnabled ? Position::Left : Position::Right);
         setupProperties();
 }