diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp
index 4278180b..53539407 100644
--- a/src/UserSettingsPage.cpp
+++ b/src/UserSettingsPage.cpp
@@ -36,6 +36,7 @@
#include <QString>
#include <QTextStream>
#include <QtQml>
+#include <QCoreApplication>
#include "Cache.h"
#include "Config.h"
@@ -75,6 +76,7 @@ UserSettings::load()
decryptSidebar_ = settings.value("user/decrypt_sidebar", true).toBool();
shareKeysWithTrustedUsers_ =
settings.value("user/share_keys_with_trusted_users", true).toBool();
+ mobileMode_ = settings.value("user/mobile_mode", false).toBool();
emojiFont_ = settings.value("user/emoji_font_family", "default").toString();
baseFontSize_ = settings.value("user/font_size", QFont().pointSizeF()).toDouble();
presence_ =
@@ -124,6 +126,16 @@ UserSettings::setStartInTray(bool state)
}
void
+UserSettings::setMobileMode(bool state)
+{
+ if (state == mobileMode_)
+ return;
+ mobileMode_ = state;
+ emit mobileModeChanged(state);
+ save();
+}
+
+void
UserSettings::setGroupView(bool state)
{
if (groupView_ != state)
@@ -299,6 +311,7 @@ UserSettings::setShareKeysWithTrustedUsers(bool shareKeys)
{
if (shareKeys == shareKeysWithTrustedUsers_)
return;
+
shareKeysWithTrustedUsers_ = shareKeys;
emit shareKeysWithTrustedUsersChanged(shareKeys);
save();
@@ -388,6 +401,7 @@ UserSettings::save()
settings.setValue("avatar_circles", avatarCircles_);
settings.setValue("decrypt_sidebar", decryptSidebar_);
settings.setValue("share_keys_with_trusted_users", shareKeysWithTrustedUsers_);
+ settings.setValue("mobile_mode", mobileMode_);
settings.setValue("font_size", baseFontSize_);
settings.setValue("typing_notifications", typingNotifications_);
settings.setValue("minor_events", sortByImportance_);
@@ -433,6 +447,8 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
font.setPointSizeF(font.pointSizeF() * 1.1);
auto versionInfo = new QLabel(QString("%1 | %2").arg(nheko::version).arg(nheko::build_os));
+ if (QCoreApplication::applicationName() != "nheko")
+ versionInfo->setText(versionInfo->text() + " | " + tr("profile: %1").arg(QCoreApplication::applicationName()));
versionInfo->setTextInteractionFlags(Qt::TextBrowserInteraction);
topBarLayout_ = new QHBoxLayout;
@@ -469,6 +485,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
desktopNotifications_ = new Toggle{this};
alertOnNotification_ = new Toggle{this};
useStunServer_ = new Toggle{this};
+ mobileMode_ = new Toggle{this};
scaleFactorCombo_ = new QComboBox{this};
fontSizeCombo_ = new QComboBox{this};
fontSelectionCombo_ = new QFontComboBox{this};
@@ -636,6 +653,9 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
formLayout_->addRow(uiLabel_);
formLayout_->addRow(new HorizontalLine{this});
+ boxWrap(tr("Mobile mode"),
+ mobileMode_,
+ tr("Will prevent text selection in the timeline to make scrolling easier."));
#if !defined(Q_OS_MAC)
boxWrap(tr("Scale factor"),
scaleFactorCombo_,
@@ -727,6 +747,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
settings_->setStartInTray(!disabled);
});
+ connect(mobileMode_, &Toggle::toggled, this, [this](bool disabled) {
+ settings_->setMobileMode(!disabled);
+ });
+
connect(groupViewToggle_, &Toggle::toggled, this, [this](bool disabled) {
settings_->setGroupView(!disabled);
});
@@ -736,6 +760,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
emit decryptSidebarChanged();
});
+ connect(shareKeysWithTrustedUsers_, &Toggle::toggled, this, [this](bool disabled) {
+ settings_->setShareKeysWithTrustedUsers(!disabled);
+ });
+
connect(avatarCircles_, &Toggle::toggled, this, [this](bool disabled) {
settings_->setAvatarCircles(!disabled);
});
@@ -810,10 +838,12 @@ UserSettingsPage::showEvent(QShowEvent *)
startInTrayToggle_->setState(!settings_->startInTray());
groupViewToggle_->setState(!settings_->groupView());
decryptSidebar_->setState(!settings_->decryptSidebar());
+ shareKeysWithTrustedUsers_->setState(!settings_->shareKeysWithTrustedUsers());
avatarCircles_->setState(!settings_->avatarCircles());
typingNotifications_->setState(!settings_->typingNotifications());
sortByImportance_->setState(!settings_->sortByImportance());
timelineButtonsToggle_->setState(!settings_->buttonsInTimeline());
+ mobileMode_->setState(!settings_->mobileMode());
readReceipts_->setState(!settings_->readReceipts());
markdown_->setState(!settings_->markdown());
desktopNotifications_->setState(!settings_->hasDesktopNotifications());
|