From d2e193ff78c491f7108476b00340aea97f4feed3 Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Fri, 25 Dec 2020 09:14:00 -0500 Subject: Add jdenticon support --- src/UserSettingsPage.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/UserSettingsPage.cpp') diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index af32344c..bfe5232b 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -86,6 +86,7 @@ UserSettings::load(std::optional profile) theme_ = settings.value("user/theme", defaultTheme_).toString(); font_ = settings.value("user/font_family", "default").toString(); avatarCircles_ = settings.value("user/avatar_circles", true).toBool(); + useIdenticon_ = settings.value("user/use_identicon", true).toBool(); decryptSidebar_ = settings.value("user/decrypt_sidebar", true).toBool(); privacyScreen_ = settings.value("user/privacy_screen", false).toBool(); privacyScreenTimeout_ = settings.value("user/privacy_screen_timeout", 0).toInt(); @@ -596,6 +597,15 @@ UserSettings::setDisableCertificateValidation(bool disabled) disableCertificateValidation_ = disabled; http::client()->verify_certificates(!disabled); emit disableCertificateValidationChanged(disabled); +} + +void +UserSettings::setUseIdenticon(bool state) +{ + if (state == useIdenticon_) + return; + useIdenticon_ = state; + emit useIdenticonChanged(useIdenticon_); save(); } @@ -674,6 +684,7 @@ UserSettings::save() settings.setValue("screen_share_hide_cursor", screenShareHideCursor_); settings.setValue("use_stun_server", useStunServer_); settings.setValue("currentProfile", profile_); + settings.setValue("use_identicon", useIdenticon_); settings.endGroup(); // user @@ -746,6 +757,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge trayToggle_ = new Toggle{this}; startInTrayToggle_ = new Toggle{this}; avatarCircles_ = new Toggle{this}; + useIdenticon_ = new Toggle{this}; decryptSidebar_ = new Toggle(this); privacyScreen_ = new Toggle{this}; onlyShareKeysWithVerifiedUsers_ = new Toggle(this); @@ -779,6 +791,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge trayToggle_->setChecked(settings_->tray()); startInTrayToggle_->setChecked(settings_->startInTray()); avatarCircles_->setChecked(settings_->avatarCircles()); + useIdenticon_->setChecked(settings_->useIdenticon()); decryptSidebar_->setChecked(settings_->decryptSidebar()); privacyScreen_->setChecked(settings_->privacyScreen()); onlyShareKeysWithVerifiedUsers_->setChecked(settings_->onlyShareKeysWithVerifiedUsers()); @@ -941,6 +954,12 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge boxWrap(tr("Circular Avatars"), avatarCircles_, tr("Change the appearance of user avatars in chats.\nOFF - square, ON - Circle.")); + if (JdenticonProvider::isAvailable()) + boxWrap( + tr("Use identicons"), + useIdenticon_, + tr( + "Display an identicon instead of a letter when a user has not set an avatar.")); boxWrap(tr("Group's sidebar"), groupViewToggle_, tr("Show a column containing groups and tags next to the room list.")); @@ -1263,6 +1282,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge settings_->setAvatarCircles(enabled); }); + connect(useIdenticon_, &Toggle::toggled, this, [this](bool enabled) { + settings_->setUseIdenticon(enabled); + }); + connect(markdown_, &Toggle::toggled, this, [this](bool enabled) { settings_->setMarkdown(enabled); }); -- cgit 1.5.1 From 069115ba5fd03798e80166c115c55f8c4b3d17b7 Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Fri, 26 Mar 2021 19:15:22 -0400 Subject: Don't add toggle for jdenticon if the plugin can't be found --- src/UserSettingsPage.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/UserSettingsPage.cpp') diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index bfe5232b..7df9d55d 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -757,7 +757,6 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge trayToggle_ = new Toggle{this}; startInTrayToggle_ = new Toggle{this}; avatarCircles_ = new Toggle{this}; - useIdenticon_ = new Toggle{this}; decryptSidebar_ = new Toggle(this); privacyScreen_ = new Toggle{this}; onlyShareKeysWithVerifiedUsers_ = new Toggle(this); @@ -791,7 +790,6 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge trayToggle_->setChecked(settings_->tray()); startInTrayToggle_->setChecked(settings_->startInTray()); avatarCircles_->setChecked(settings_->avatarCircles()); - useIdenticon_->setChecked(settings_->useIdenticon()); decryptSidebar_->setChecked(settings_->decryptSidebar()); privacyScreen_->setChecked(settings_->privacyScreen()); onlyShareKeysWithVerifiedUsers_->setChecked(settings_->onlyShareKeysWithVerifiedUsers()); @@ -811,6 +809,11 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge useStunServer_->setChecked(settings_->useStunServer()); mobileMode_->setChecked(settings_->mobileMode()); + if (JdenticonProvider::isAvailable()) { + useIdenticon_ = new Toggle{this}; + useIdenticon_->setChecked(settings_->useIdenticon()); + } + if (!settings_->tray()) { startInTrayToggle_->setState(false); startInTrayToggle_->setDisabled(true); @@ -1282,9 +1285,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge settings_->setAvatarCircles(enabled); }); - connect(useIdenticon_, &Toggle::toggled, this, [this](bool enabled) { - settings_->setUseIdenticon(enabled); - }); + if (JdenticonProvider::isAvailable()) + connect(useIdenticon_, &Toggle::toggled, this, [this](bool enabled) { + settings_->setUseIdenticon(enabled); + }); connect(markdown_, &Toggle::toggled, this, [this](bool enabled) { settings_->setMarkdown(enabled); -- cgit 1.5.1 From c991f20284620ca0483b00b828c3ae574a14a2ef Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Mon, 30 Aug 2021 08:00:35 -0400 Subject: Make sure jdenticon toggle is always initialized --- src/UserSettingsPage.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/UserSettingsPage.cpp') diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 7df9d55d..60ba18aa 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -813,6 +813,8 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge useIdenticon_ = new Toggle{this}; useIdenticon_->setChecked(settings_->useIdenticon()); } + else + useIdenticon_ = nullptr; if (!settings_->tray()) { startInTrayToggle_->setState(false); -- cgit 1.5.1 From a23c586cde75ebaa7583017f96a73e5cf9e7d348 Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Tue, 31 Aug 2021 17:58:00 -0400 Subject: make lint --- src/UserSettingsPage.cpp | 5 ++--- src/timeline/TimelineModel.cpp | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'src/UserSettingsPage.cpp') diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index 60ba18aa..d79cadbe 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -812,9 +812,8 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge if (JdenticonProvider::isAvailable()) { useIdenticon_ = new Toggle{this}; useIdenticon_->setChecked(settings_->useIdenticon()); - } - else - useIdenticon_ = nullptr; + } else + useIdenticon_ = nullptr; if (!settings_->tray()) { startInTrayToggle_->setState(false); diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index 0e1e8f5d..d5c39bbe 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -818,10 +818,9 @@ TimelineModel::syncState(const mtx::responses::State &s) emit roomNameChanged(); emit roomMemberCountChanged(); - if (roomMemberCount() <= 2) - { - emit isDirectChanged(); - emit directChatAvatarMxidChanged(); + if (roomMemberCount() <= 2) { + emit isDirectChanged(); + emit directChatAvatarMxidChanged(); } } else if (std::holds_alternative>(e)) { this->isEncrypted_ = cache::isRoomEncrypted(room_id_.toStdString()); -- cgit 1.5.1 From f14762e6a550e9b5c92e7a2e8348fff20fd12ea0 Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Mon, 6 Sep 2021 21:10:08 -0400 Subject: Always show jdenticon toggle (disable if no plugin) --- src/UserSettingsPage.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'src/UserSettingsPage.cpp') diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp index d79cadbe..7b01b0b8 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp @@ -757,6 +757,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge trayToggle_ = new Toggle{this}; startInTrayToggle_ = new Toggle{this}; avatarCircles_ = new Toggle{this}; + useIdenticon_ = new Toggle{this}; decryptSidebar_ = new Toggle(this); privacyScreen_ = new Toggle{this}; onlyShareKeysWithVerifiedUsers_ = new Toggle(this); @@ -790,6 +791,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge trayToggle_->setChecked(settings_->tray()); startInTrayToggle_->setChecked(settings_->startInTray()); avatarCircles_->setChecked(settings_->avatarCircles()); + useIdenticon_->setChecked(settings_->useIdenticon()); decryptSidebar_->setChecked(settings_->decryptSidebar()); privacyScreen_->setChecked(settings_->privacyScreen()); onlyShareKeysWithVerifiedUsers_->setChecked(settings_->onlyShareKeysWithVerifiedUsers()); @@ -809,12 +811,6 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge useStunServer_->setChecked(settings_->useStunServer()); mobileMode_->setChecked(settings_->mobileMode()); - if (JdenticonProvider::isAvailable()) { - useIdenticon_ = new Toggle{this}; - useIdenticon_->setChecked(settings_->useIdenticon()); - } else - useIdenticon_ = nullptr; - if (!settings_->tray()) { startInTrayToggle_->setState(false); startInTrayToggle_->setDisabled(true); @@ -958,12 +954,9 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge boxWrap(tr("Circular Avatars"), avatarCircles_, tr("Change the appearance of user avatars in chats.\nOFF - square, ON - Circle.")); - if (JdenticonProvider::isAvailable()) - boxWrap( - tr("Use identicons"), - useIdenticon_, - tr( - "Display an identicon instead of a letter when a user has not set an avatar.")); + boxWrap(tr("Use identicons"), + useIdenticon_, + tr("Display an identicon instead of a letter when a user has not set an avatar.")); boxWrap(tr("Group's sidebar"), groupViewToggle_, tr("Show a column containing groups and tags next to the room list.")); @@ -1290,6 +1283,8 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge connect(useIdenticon_, &Toggle::toggled, this, [this](bool enabled) { settings_->setUseIdenticon(enabled); }); + else + useIdenticon_->setDisabled(true); connect(markdown_, &Toggle::toggled, this, [this](bool enabled) { settings_->setMarkdown(enabled); -- cgit 1.5.1