add "Use system font" setting (#2)
This commit is contained in:
parent
d8e9a66d08
commit
2ae674dee1
8 changed files with 40 additions and 4 deletions
|
|
@ -2325,6 +2325,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
"ktg_fonts_semibold" = "Semibold font";
|
"ktg_fonts_semibold" = "Semibold font";
|
||||||
"ktg_fonts_semibold_is_bold" = "Make semibold bold";
|
"ktg_fonts_semibold_is_bold" = "Make semibold bold";
|
||||||
"ktg_fonts_monospaced" = "Monospaced font";
|
"ktg_fonts_monospaced" = "Monospaced font";
|
||||||
|
"ktg_fonts_use_system_font" = "Use system font";
|
||||||
|
|
||||||
"ktg_fonts_restart_new_fonts" = "You will need to restart app to apply new fonts.\n\nRestart now?";
|
"ktg_fonts_restart_new_fonts" = "You will need to restart app to apply new fonts.\n\nRestart now?";
|
||||||
"ktg_fonts_restart_reset" = "You will need to restart app to reset fonts to default.\n\nRestart now?";
|
"ktg_fonts_restart_reset" = "You will need to restart app to reset fonts to default.\n\nRestart now?";
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@
|
||||||
"ktg_fonts_semibold": "Полужирный шрифт",
|
"ktg_fonts_semibold": "Полужирный шрифт",
|
||||||
"ktg_fonts_semibold_is_bold": "Сделать полужирный жирным",
|
"ktg_fonts_semibold_is_bold": "Сделать полужирный жирным",
|
||||||
"ktg_fonts_monospaced": "Моноширинный шрифт",
|
"ktg_fonts_monospaced": "Моноширинный шрифт",
|
||||||
|
"ktg_fonts_use_system_font": "Использовать системный шрифт",
|
||||||
"ktg_fonts_restart_new_fonts": "Для применения новых шрифтов требуется перезапуск.\n\nПерезапустить сейчас?",
|
"ktg_fonts_restart_new_fonts": "Для применения новых шрифтов требуется перезапуск.\n\nПерезапустить сейчас?",
|
||||||
"ktg_fonts_restart_reset": "Для сброса шрифтов к стандартным требуется перезапуск.\n\nПерезапустить сейчас?",
|
"ktg_fonts_restart_reset": "Для сброса шрифтов к стандартным требуется перезапуск.\n\nПерезапустить сейчас?",
|
||||||
"ktg_fonts_restart": "Перезапустить",
|
"ktg_fonts_restart": "Перезапустить",
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@ https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL
|
||||||
#include "app.h"
|
#include "app.h"
|
||||||
|
|
||||||
FontsBox::FontsBox(QWidget* parent)
|
FontsBox::FontsBox(QWidget* parent)
|
||||||
: _mainFontName(this, st::defaultInputField, tr::ktg_fonts_main())
|
: _useSystemFont(this, tr::ktg_fonts_use_system_font(tr::now), cUseSystemFont())
|
||||||
|
, _mainFontName(this, st::defaultInputField, tr::ktg_fonts_main())
|
||||||
, _semiboldFontName(this, st::defaultInputField, tr::ktg_fonts_semibold())
|
, _semiboldFontName(this, st::defaultInputField, tr::ktg_fonts_semibold())
|
||||||
, _semiboldIsBold(this, tr::ktg_fonts_semibold_is_bold(tr::now), cSemiboldFontIsBold())
|
, _semiboldIsBold(this, tr::ktg_fonts_semibold_is_bold(tr::now), cSemiboldFontIsBold())
|
||||||
, _monospacedFontName(this, st::defaultInputField, tr::ktg_fonts_monospaced())
|
, _monospacedFontName(this, st::defaultInputField, tr::ktg_fonts_monospaced())
|
||||||
|
|
@ -49,7 +50,13 @@ void FontsBox::prepare() {
|
||||||
_about.setText(st::fontsBoxTextStyle, tr::ktg_fonts_about(tr::now));
|
_about.setText(st::fontsBoxTextStyle, tr::ktg_fonts_about(tr::now));
|
||||||
_aboutHeight = _about.countHeight(st::boxWidth - st::boxPadding.left() * 1.5);
|
_aboutHeight = _about.countHeight(st::boxWidth - st::boxPadding.left() * 1.5);
|
||||||
|
|
||||||
setDimensions(st::boxWidth, _mainFontName->height() + _semiboldFontName->height() + _semiboldIsBold->height() + _monospacedFontName->height() + _aboutHeight + st::boxLittleSkip * 2);
|
setDimensions(st::boxWidth, _useSystemFont->height()
|
||||||
|
+ _mainFontName->height()
|
||||||
|
+ _semiboldFontName->height()
|
||||||
|
+ _semiboldIsBold->height()
|
||||||
|
+ _monospacedFontName->height()
|
||||||
|
+ _aboutHeight
|
||||||
|
+ st::boxLittleSkip * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -58,7 +65,12 @@ void FontsBox::paintEvent(QPaintEvent *e) {
|
||||||
|
|
||||||
Painter p(this);
|
Painter p(this);
|
||||||
int32 w = st::boxWidth - st::boxPadding.left() * 1.5;
|
int32 w = st::boxWidth - st::boxPadding.left() * 1.5;
|
||||||
int32 abouty = _mainFontName->height() + _semiboldFontName->height() + _semiboldIsBold->height() + _monospacedFontName->height() + st::boxLittleSkip * 2;
|
int32 abouty = _useSystemFont->height()
|
||||||
|
+ _mainFontName->height()
|
||||||
|
+ _semiboldFontName->height()
|
||||||
|
+ _semiboldIsBold->height()
|
||||||
|
+ _monospacedFontName->height()
|
||||||
|
+ st::boxLittleSkip * 2;
|
||||||
p.setPen(st::windowSubTextFg);
|
p.setPen(st::windowSubTextFg);
|
||||||
_about.drawLeft(p, st::boxPadding.left(), abouty, w, width());
|
_about.drawLeft(p, st::boxPadding.left(), abouty, w, width());
|
||||||
|
|
||||||
|
|
@ -68,8 +80,10 @@ void FontsBox::resizeEvent(QResizeEvent *e) {
|
||||||
BoxContent::resizeEvent(e);
|
BoxContent::resizeEvent(e);
|
||||||
|
|
||||||
int32 w = st::boxWidth - st::boxPadding.left() - st::boxPadding.right();
|
int32 w = st::boxWidth - st::boxPadding.left() - st::boxPadding.right();
|
||||||
|
_useSystemFont->resize(w, _useSystemFont->height());
|
||||||
|
_useSystemFont->moveToLeft(st::boxPadding.left(), 0);
|
||||||
_mainFontName->resize(w, _mainFontName->height());
|
_mainFontName->resize(w, _mainFontName->height());
|
||||||
_mainFontName->moveToLeft(st::boxPadding.left(), 0);
|
_mainFontName->moveToLeft(st::boxPadding.left(), _useSystemFont->y() + _useSystemFont->height() + st::boxLittleSkip);
|
||||||
_semiboldFontName->resize(w, _semiboldFontName->height());
|
_semiboldFontName->resize(w, _semiboldFontName->height());
|
||||||
_semiboldFontName->moveToLeft(st::boxPadding.left(), _mainFontName->y() + _mainFontName->height());
|
_semiboldFontName->moveToLeft(st::boxPadding.left(), _mainFontName->y() + _mainFontName->height());
|
||||||
_semiboldIsBold->resize(w, _semiboldIsBold->height());
|
_semiboldIsBold->resize(w, _semiboldIsBold->height());
|
||||||
|
|
@ -83,12 +97,14 @@ void FontsBox::setInnerFocus() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FontsBox::save() {
|
void FontsBox::save() {
|
||||||
|
const auto useSystemFont = _useSystemFont->checked();
|
||||||
const auto mainFont = _mainFontName->getLastText().trimmed();
|
const auto mainFont = _mainFontName->getLastText().trimmed();
|
||||||
const auto semiboldFont = _semiboldFontName->getLastText().trimmed();
|
const auto semiboldFont = _semiboldFontName->getLastText().trimmed();
|
||||||
const auto semiboldIsBold = _semiboldIsBold->checked();
|
const auto semiboldIsBold = _semiboldIsBold->checked();
|
||||||
const auto monospacedFont = _monospacedFontName->getLastText().trimmed();
|
const auto monospacedFont = _monospacedFontName->getLastText().trimmed();
|
||||||
|
|
||||||
const auto changeFonts = [=] {
|
const auto changeFonts = [=] {
|
||||||
|
cSetUseSystemFont(useSystemFont);
|
||||||
cSetMainFont(mainFont);
|
cSetMainFont(mainFont);
|
||||||
cSetSemiboldFont(semiboldFont);
|
cSetSemiboldFont(semiboldFont);
|
||||||
cSetSemiboldFontIsBold(semiboldIsBold);
|
cSetSemiboldFontIsBold(semiboldIsBold);
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ private:
|
||||||
void save();
|
void save();
|
||||||
void resetToDefault();
|
void resetToDefault();
|
||||||
|
|
||||||
|
object_ptr<Ui::Checkbox> _useSystemFont = { nullptr };
|
||||||
object_ptr<Ui::InputField> _mainFontName = { nullptr };
|
object_ptr<Ui::InputField> _mainFontName = { nullptr };
|
||||||
object_ptr<Ui::InputField> _semiboldFontName = { nullptr };
|
object_ptr<Ui::InputField> _semiboldFontName = { nullptr };
|
||||||
object_ptr<Ui::Checkbox> _semiboldIsBold = { nullptr };
|
object_ptr<Ui::Checkbox> _semiboldIsBold = { nullptr };
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,9 @@ void Application::run() {
|
||||||
if (!cMonospaceFont().isEmpty()) {
|
if (!cMonospaceFont().isEmpty()) {
|
||||||
style::internal::SetMonospaceFont(cMonospaceFont());
|
style::internal::SetMonospaceFont(cMonospaceFont());
|
||||||
}
|
}
|
||||||
|
if (cUseSystemFont()) {
|
||||||
|
style::internal::SetUseSystemFont(cUseSystemFont());
|
||||||
|
}
|
||||||
style::internal::StartFonts();
|
style::internal::StartFonts();
|
||||||
|
|
||||||
ThirdParty::start();
|
ThirdParty::start();
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,11 @@ bool Manager::readCustomFile() {
|
||||||
if (settingsFontsMonospace != settingsFonts.constEnd() && (*settingsFontsMonospace).isString()) {
|
if (settingsFontsMonospace != settingsFonts.constEnd() && (*settingsFontsMonospace).isString()) {
|
||||||
cSetMonospaceFont((*settingsFontsMonospace).toString());
|
cSetMonospaceFont((*settingsFontsMonospace).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto settingsFontsUseSystemFont = settingsFonts.constFind(qsl("use_system_font"));
|
||||||
|
if (settingsFontsUseSystemFont != settingsFonts.constEnd() && (*settingsFontsUseSystemFont).isBool()) {
|
||||||
|
cSetUseSystemFont((*settingsFontsUseSystemFont).toBool());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto settingsStickerHeightIt = settings.constFind(qsl("sticker_height"));
|
const auto settingsStickerHeightIt = settings.constFind(qsl("sticker_height"));
|
||||||
|
|
@ -277,6 +282,7 @@ void Manager::writeDefaultFile() {
|
||||||
settingsFonts.insert(qsl("semibold"), qsl("Open Sans Semibold"));
|
settingsFonts.insert(qsl("semibold"), qsl("Open Sans Semibold"));
|
||||||
settingsFonts.insert(qsl("semibold_is_bold"), false);
|
settingsFonts.insert(qsl("semibold_is_bold"), false);
|
||||||
settingsFonts.insert(qsl("monospaced"), qsl("Consolas"));
|
settingsFonts.insert(qsl("monospaced"), qsl("Consolas"));
|
||||||
|
settingsFonts.insert(qsl("use_system_font"), cUseSystemFont());
|
||||||
|
|
||||||
settings.insert(qsl("fonts"), settingsFonts);
|
settings.insert(qsl("fonts"), settingsFonts);
|
||||||
|
|
||||||
|
|
@ -334,6 +340,7 @@ void Manager::writeCurrentSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsFonts.insert(qsl("semibold_is_bold"), cSemiboldFontIsBold());
|
settingsFonts.insert(qsl("semibold_is_bold"), cSemiboldFontIsBold());
|
||||||
|
settingsFonts.insert(qsl("use_system_font"), cUseSystemFont());
|
||||||
|
|
||||||
settings.insert(qsl("fonts"), settingsFonts);
|
settings.insert(qsl("fonts"), settingsFonts);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -210,6 +210,12 @@ rpl::producer<> UpdatedRecentEmoji() {
|
||||||
QString gMainFont, gSemiboldFont, gMonospaceFont;
|
QString gMainFont, gSemiboldFont, gMonospaceFont;
|
||||||
bool gSemiboldFontIsBold = false;
|
bool gSemiboldFontIsBold = false;
|
||||||
|
|
||||||
|
#ifdef DESKTOP_APP_USE_PACKAGED_FONTS
|
||||||
|
bool gUseSystemFont = true;
|
||||||
|
#else
|
||||||
|
bool gUseSystemFont = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
rpl::variable<int> gStickerHeight = 128;
|
rpl::variable<int> gStickerHeight = 128;
|
||||||
void SetStickerHeight(int height) {
|
void SetStickerHeight(int height) {
|
||||||
gStickerHeight = height;
|
gStickerHeight = height;
|
||||||
|
|
|
||||||
|
|
@ -183,6 +183,7 @@ DeclareSetting(QString, MainFont);
|
||||||
DeclareSetting(QString, SemiboldFont);
|
DeclareSetting(QString, SemiboldFont);
|
||||||
DeclareSetting(bool, SemiboldFontIsBold);
|
DeclareSetting(bool, SemiboldFontIsBold);
|
||||||
DeclareSetting(QString, MonospaceFont);
|
DeclareSetting(QString, MonospaceFont);
|
||||||
|
DeclareSetting(bool, UseSystemFont);
|
||||||
|
|
||||||
void SetBigEmojiOutline(bool enabled);
|
void SetBigEmojiOutline(bool enabled);
|
||||||
[[nodiscard]] bool BigEmojiOutline();
|
[[nodiscard]] bool BigEmojiOutline();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue