From c6cfb548f5e08fdb589335aee7afc6b8a20b67c7 Mon Sep 17 00:00:00 2001 From: apa420 <17131426+apa420@users.noreply.github.com> Date: Mon, 6 Aug 2018 16:41:27 +0200 Subject: [PATCH] added functionality of 'boldness-slider' #647 (#650) --- src/singletons/Fonts.cpp | 18 +++++++++-- src/singletons/Settings.hpp | 1 + src/widgets/settingspages/LookPage.cpp | 42 ++++++++++++++++++++++++++ src/widgets/settingspages/LookPage.hpp | 1 + 4 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/singletons/Fonts.cpp b/src/singletons/Fonts.cpp index 70aaa93b..272a2b1b 100644 --- a/src/singletons/Fonts.cpp +++ b/src/singletons/Fonts.cpp @@ -56,6 +56,19 @@ void Fonts::initialize(Application &app) } this->fontChanged.invoke(); }); + + getSettings()->boldScale.connect([this, &app](const int &, auto) { + assertInGuiThread(); + + if (app.windows) { + app.windows->incGeneration(); + } + + for (auto &map : this->fontsByType_) { + map.clear(); + } + this->fontChanged.invoke(); + }); } QFont Fonts::getFont(Fonts::Type type, float scale) @@ -99,12 +112,13 @@ Fonts::FontData Fonts::createFontData(Type type, float scale) {ChatSmall, {0.6f, false, QFont::Normal}}, {ChatMediumSmall, {0.8f, false, QFont::Normal}}, {ChatMedium, {1, false, QFont::Normal}}, - {ChatMediumBold, {1, false, QFont::Medium}}, + {ChatMediumBold, {1, false, QFont::Weight(getApp()->settings->boldScale.getValue())}}, {ChatMediumItalic, {1, true, QFont::Normal}}, {ChatLarge, {1.2f, false, QFont::Normal}}, {ChatVeryLarge, {1.4f, false, QFont::Normal}}, }; - + sizeScale[ChatMediumBold] = {1, false, + QFont::Weight(getApp()->settings->boldScale.getValue())}; auto data = sizeScale[type]; return FontData(QFont(QString::fromStdString(this->chatFontFamily.getValue()), int(this->chatFontSize.getValue() * data.scale * scale), data.weight, diff --git a/src/singletons/Settings.hpp b/src/singletons/Settings.hpp index 94690461..0bb92b96 100644 --- a/src/singletons/Settings.hpp +++ b/src/singletons/Settings.hpp @@ -36,6 +36,7 @@ public: BoolSetting alternateMessageBackground = {"/appearance/messages/alternateMessageBackground", false}; IntSetting uiScale = {"/appearance/uiScale", 0}; + IntSetting boldScale = {"/appearance/boldScale", 57}; BoolSetting windowTopMost = {"/appearance/windowAlwaysOnTop", false}; BoolSetting showTabCloseButton = {"/appearance/showTabCloseButton", true}; BoolSetting hidePreferencesButton = {"/appearance/hidePreferencesButton", false}; diff --git a/src/widgets/settingspages/LookPage.cpp b/src/widgets/settingspages/LookPage.cpp index 919b726d..ad164974 100644 --- a/src/widgets/settingspages/LookPage.cpp +++ b/src/widgets/settingspages/LookPage.cpp @@ -113,6 +113,12 @@ void LookPage::addMessageTab(LayoutCreator layout) // font layout.append(this->createFontChanger()); + // bold-slider + { + auto box = layout.emplace().withoutMargin(); + box.emplace("Boldness: "); + box.append(this->createBoldScaleSlider()); + } // -- layout.emplace(false); @@ -419,4 +425,40 @@ QLayout *LookPage::createUiScaleSlider() return layout; } +QLayout *LookPage::createBoldScaleSlider() +{ + auto layout = new QHBoxLayout(); + auto slider = new QSlider(Qt::Horizontal); + auto label = new QLabel(); + + layout->addWidget(slider); + layout->addWidget(label); + + slider->setMinimum(50); + slider->setMaximum(100); + slider->setValue(getSettings()->boldScale.getValue()); + + label->setMinimumWidth(100); + + QObject::connect(slider, &QSlider::valueChanged, + [](auto value) { getSettings()->boldScale.setValue(value); }); + // show value + // getSettings()->boldScale.connect( + // [label](auto, auto) { + // label->setText(QString::number(getSettings()->boldScale.getValue())); + // }, + // this->connections_); + + QPushButton *button = new QPushButton("Reset"); + layout->addWidget(button); + button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Policy::Fixed); + + QObject::connect(button, &QPushButton::clicked, [=]() { + getSettings()->boldScale.setValue(57); + slider->setValue(57); + }); + + return layout; +} + } // namespace chatterino diff --git a/src/widgets/settingspages/LookPage.hpp b/src/widgets/settingspages/LookPage.hpp index 0c8bd4a6..972271f6 100644 --- a/src/widgets/settingspages/LookPage.hpp +++ b/src/widgets/settingspages/LookPage.hpp @@ -28,6 +28,7 @@ private: QLayout *createThemeColorChanger(); QLayout *createFontChanger(); QLayout *createUiScaleSlider(); + QLayout *createBoldScaleSlider(); ChannelPtr createPreviewChannel();