summary refs log tree commit diff
path: root/src/UserSettingsPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/UserSettingsPage.cpp')
-rw-r--r--src/UserSettingsPage.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp

index 04ce5b5d..ad5d484f 100644 --- a/src/UserSettingsPage.cpp +++ b/src/UserSettingsPage.cpp
@@ -25,6 +25,7 @@ #include "Config.h" #include "UserSettingsPage.h" +#include "Utils.h" #include "ui/FlatButton.h" #include "ui/ToggleButton.h" @@ -187,6 +188,24 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge receiptsLayout->addWidget(receiptsLabel); receiptsLayout->addWidget(readReceipts_, 0, Qt::AlignBottom | Qt::AlignRight); + auto scaleFactorOptionLayout = new QHBoxLayout; + scaleFactorOptionLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin); + auto scaleFactorLabel = new QLabel(tr("Scale factor (requires restart)"), this); + scaleFactorLabel->setFont(font); + scaleFactorCombo_ = new QComboBox(this); + scaleFactorCombo_->addItem("1"); + scaleFactorCombo_->addItem("1.25"); + scaleFactorCombo_->addItem("1.5"); + scaleFactorCombo_->addItem("1.75"); + scaleFactorCombo_->addItem("2"); + scaleFactorCombo_->addItem("2.25"); + scaleFactorCombo_->addItem("2.5"); + scaleFactorCombo_->addItem("2.75"); + scaleFactorCombo_->addItem("3"); + + scaleFactorOptionLayout->addWidget(scaleFactorLabel); + scaleFactorOptionLayout->addWidget(scaleFactorCombo_, 0, Qt::AlignBottom | Qt::AlignRight); + auto themeOptionLayout_ = new QHBoxLayout; themeOptionLayout_->setContentsMargins(0, OptionMargin, 0, OptionMargin); auto themeLabel_ = new QLabel(tr("Theme"), this); @@ -219,6 +238,15 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge mainLayout_->addLayout(typingLayout); mainLayout_->addLayout(receiptsLayout); mainLayout_->addWidget(new HorizontalLine(this)); + +#if defined(Q_OS_MAC) + scaleFactorLabel->hide(); + scaleFactorCombo_->hide(); +#else + mainLayout_->addLayout(scaleFactorOptionLayout); + mainLayout_->addWidget(new HorizontalLine(this)); +#endif + mainLayout_->addLayout(themeOptionLayout_); mainLayout_->addWidget(new HorizontalLine(this)); @@ -241,6 +269,9 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge connect(themeCombo_, static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::activated), [this](const QString &text) { settings_->setTheme(text.toLower()); }); + connect(scaleFactorCombo_, + static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::activated), + [this](const QString &factor) { utils::setScaleFactor(factor.toFloat()); }); connect(trayToggle_, &Toggle::toggled, this, [this](bool isDisabled) { settings_->setTray(!isDisabled); @@ -282,6 +313,7 @@ void UserSettingsPage::showEvent(QShowEvent *) { restoreThemeCombo(); + restoreScaleFactor(); // FIXME: Toggle treats true as "off" trayToggle_->setState(!settings_->isTrayEnabled()); @@ -312,6 +344,33 @@ UserSettingsPage::paintEvent(QPaintEvent *) } void +UserSettingsPage::restoreScaleFactor() const +{ + auto factor = utils::scaleFactor(); + + if (factor == 1) + scaleFactorCombo_->setCurrentIndex(0); + else if (factor == 1.25) + scaleFactorCombo_->setCurrentIndex(1); + else if (factor == 1.5) + scaleFactorCombo_->setCurrentIndex(2); + else if (factor == 1.75) + scaleFactorCombo_->setCurrentIndex(3); + else if (factor == 2) + scaleFactorCombo_->setCurrentIndex(4); + else if (factor == 2.25) + scaleFactorCombo_->setCurrentIndex(5); + else if (factor == 2.5) + scaleFactorCombo_->setCurrentIndex(6); + else if (factor == 2.75) + scaleFactorCombo_->setCurrentIndex(7); + else if (factor == 3) + scaleFactorCombo_->setCurrentIndex(7); + else + scaleFactorCombo_->setCurrentIndex(0); +} + +void UserSettingsPage::restoreThemeCombo() const { if (settings_->theme() == "light")