change Toggle behavior

This commit is contained in:
kirillpt 2020-11-26 23:45:44 +03:00
parent 633fd31edc
commit 5a3905b337
3 changed files with 18 additions and 16 deletions

View File

@ -80,7 +80,8 @@ CreateRoom::CreateRoom(QWidget *parent)
directToggle_ = new Toggle(this); directToggle_ = new Toggle(this);
directToggle_->setActiveColor(QColor("#38A3D8")); directToggle_->setActiveColor(QColor("#38A3D8"));
directToggle_->setInactiveColor(QColor("gray")); directToggle_->setInactiveColor(QColor("gray"));
directToggle_->setState(true); directToggle_->setState(false);
directToggle_->setChecked(false);
auto directLayout = new QHBoxLayout; auto directLayout = new QHBoxLayout;
directLayout->setContentsMargins(0, 10, 0, 10); directLayout->setContentsMargins(0, 10, 0, 10);
@ -133,8 +134,8 @@ CreateRoom::CreateRoom(QWidget *parent)
} }
}); });
connect(directToggle_, &Toggle::toggled, this, [this](bool isDisabled) { connect(directToggle_, &Toggle::toggled, this, [this](bool isEnabled) {
request_.is_direct = !isDisabled; request_.is_direct = isEnabled;
}); });
} }

View File

@ -406,7 +406,7 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
auto encryptionLabel = new QLabel(tr("Encryption"), this); auto encryptionLabel = new QLabel(tr("Encryption"), this);
encryptionToggle_ = new Toggle(this); encryptionToggle_ = new Toggle(this);
connect(encryptionToggle_, &Toggle::toggled, this, [this](bool isOn) { connect(encryptionToggle_, &Toggle::toggled, this, [this](bool isOn) {
if (isOn) if (!isOn)
return; return;
QMessageBox msgBox; QMessageBox msgBox;
@ -421,14 +421,14 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
switch (ret) { switch (ret) {
case QMessageBox::Ok: { case QMessageBox::Ok: {
encryptionToggle_->setState(false); encryptionToggle_->setState(true);
encryptionToggle_->setEnabled(false); encryptionToggle_->setEnabled(true);
enableEncryption(); enableEncryption();
break; break;
} }
default: { default: {
encryptionToggle_->setState(true); encryptionToggle_->setState(false);
encryptionToggle_->setEnabled(true); encryptionToggle_->setEnabled(false);
break; break;
} }
} }
@ -447,7 +447,7 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
" E2E implementation until device verification is completed.")); " E2E implementation until device verification is completed."));
keyRequestsToggle_ = new Toggle(this); keyRequestsToggle_ = new Toggle(this);
connect(keyRequestsToggle_, &Toggle::toggled, this, [this](bool isOn) { connect(keyRequestsToggle_, &Toggle::toggled, this, [this](bool isOn) {
utils::setKeyRequestsPreference(room_id_, !isOn); utils::setKeyRequestsPreference(room_id_, isOn);
}); });
auto keyRequestsLayout = new QHBoxLayout; auto keyRequestsLayout = new QHBoxLayout;
@ -458,12 +458,12 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
// Disable encryption button. // Disable encryption button.
if (usesEncryption_) { if (usesEncryption_) {
encryptionToggle_->setState(false);
encryptionToggle_->setEnabled(false);
keyRequestsToggle_->setState(!utils::respondsToKeyRequests(room_id_));
} else {
encryptionToggle_->setState(true); encryptionToggle_->setState(true);
encryptionToggle_->setEnabled(true);
keyRequestsToggle_->setState(utils::respondsToKeyRequests(room_id_));
} else {
encryptionToggle_->setState(false);
keyRequestsLabel->hide(); keyRequestsLabel->hide();
keyRequestsToggle_->hide(); keyRequestsToggle_->hide();
@ -543,8 +543,8 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
layout->addStretch(1); layout->addStretch(1);
connect(this, &RoomSettings::enableEncryptionError, this, [this](const QString &msg) { connect(this, &RoomSettings::enableEncryptionError, this, [this](const QString &msg) {
encryptionToggle_->setState(true); encryptionToggle_->setState(false);
encryptionToggle_->setEnabled(true); encryptionToggle_->setEnabled(false);
emit ChatPage::instance()->showNotification(msg); emit ChatPage::instance()->showNotification(msg);
}); });

View File

@ -22,6 +22,7 @@ Toggle::Toggle(QWidget *parent)
void void
Toggle::setState(bool isEnabled) Toggle::setState(bool isEnabled)
{ {
setChecked(isEnabled);
thumb_->setShift(isEnabled ? Position::Left : Position::Right); thumb_->setShift(isEnabled ? Position::Left : Position::Right);
setupProperties(); setupProperties();
} }