added ui scaling

This commit is contained in:
fourtf
2018-06-11 15:04:54 +02:00
parent 9b26fce781
commit ea9f9e7f18
27 changed files with 488 additions and 271 deletions
@@ -56,6 +56,7 @@ AppearancePage::AppearancePage()
form->addRow("Theme:", theme);
// form->addRow("Theme color:", this->createThemeColorChanger());
form->addRow("UI Scaling:", this->createUiScaleSlider());
form->addRow("Font:", this->createFontChanger());
form->addRow("Tabs:", this->createCheckBox(TAB_X, app->settings->showTabCloseButton));
@@ -240,6 +241,33 @@ QLayout *AppearancePage::createFontChanger()
return layout;
}
QLayout *AppearancePage::createUiScaleSlider()
{
auto layout = new QHBoxLayout();
auto slider = new QSlider(Qt::Horizontal);
auto label = new QLabel();
layout->addWidget(slider);
layout->addWidget(label);
slider->setMinimum(singletons::WindowManager::uiScaleMin);
slider->setMaximum(singletons::WindowManager::uiScaleMax);
slider->setValue(
singletons::WindowManager::clampUiScale(getApp()->settings->uiScale.getValue()));
label->setMinimumWidth(100);
QObject::connect(slider, &QSlider::valueChanged,
[](auto value) { getApp()->settings->uiScale.setValue(value); });
getApp()->settings->uiScale.connect(
[label](auto, auto) {
label->setText(QString::number(singletons::WindowManager::getUiScaleValue()));
},
this->connections_);
return layout;
}
} // namespace settingspages
} // namespace widgets
} // namespace chatterino
@@ -3,6 +3,7 @@
#include "widgets/settingspages/settingspage.hpp"
#include <QScrollArea>
#include <pajlada/signals/signalholder.hpp>
namespace chatterino {
namespace widgets {
@@ -15,6 +16,9 @@ public:
QLayout *createThemeColorChanger();
QLayout *createFontChanger();
QLayout *createUiScaleSlider();
std::vector<pajlada::Signals::ScopedConnection> connections_;
};
} // namespace settingspages