diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 9b16f53d3..5d568d3c8 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -2269,4 +2269,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ktg_fonts_semibold_is_bold" = "Make semibold bold"; "ktg_fonts_monospaced" = "Monospaced font"; +"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" = "Restart"; + // Keys finished diff --git a/Telegram/Resources/langs/rewrites/ru.json b/Telegram/Resources/langs/rewrites/ru.json index 253e74ccd..5451a0ebd 100644 --- a/Telegram/Resources/langs/rewrites/ru.json +++ b/Telegram/Resources/langs/rewrites/ru.json @@ -39,5 +39,8 @@ "ktg_fonts_main": "Основной шрифт", "ktg_fonts_semibold": "Полужирный шрифт", "ktg_fonts_semibold_is_bold": "Сделать полужирный жирным", - "ktg_fonts_monospaced": "Моноширинный шрифт" + "ktg_fonts_monospaced": "Моноширинный шрифт", + "ktg_fonts_restart_new_fonts": "Для применения новых шрифтов требуется перезапуск.\n\nПерезапустить сейчас?", + "ktg_fonts_restart_reset": "Для сброса шрифтов к стандартным требуется перезапуск.\n\nПерезапустить сейчас?", + "ktg_fonts_restart": "Перезапустить" } diff --git a/Telegram/SourceFiles/boxes/fonts_box.cpp b/Telegram/SourceFiles/boxes/fonts_box.cpp index e56bce7c5..35ae91ba3 100644 --- a/Telegram/SourceFiles/boxes/fonts_box.cpp +++ b/Telegram/SourceFiles/boxes/fonts_box.cpp @@ -11,7 +11,10 @@ https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/input_fields.h" #include "styles/style_boxes.h" +#include "boxes/confirm_box.h" +#include "core/kotato_settings.h" #include "lang/lang_keys.h" +#include "app.h" FontsBox::FontsBox(QWidget* parent) : _mainFontName(this, st::defaultInputField, tr::ktg_fonts_main()) @@ -79,7 +82,42 @@ void FontsBox::setInnerFocus() { } void FontsBox::save() { + const auto mainFont = _mainFontName->getLastText().trimmed(); + const auto semiboldFont = _semiboldFontName->getLastText().trimmed(); + const auto semiboldIsBold = _semiboldIsBold->checked(); + const auto monospacedFont = _monospacedFontName->getLastText().trimmed(); + + const auto changeFonts = [=] { + cSetMainFont(mainFont); + cSetSemiboldFont(semiboldFont); + cSetSemiboldFontIsBold(semiboldIsBold); + cSetMonospaceFont(monospacedFont); + KotatoSettings::Write(); + App::restart(); + }; + + Ui::show( + Box( + tr::ktg_fonts_restart_new_fonts(tr::now), + tr::ktg_fonts_restart(tr::now), + tr::lng_cancel(tr::now), + changeFonts)); } void FontsBox::resetToDefault() { + const auto resetFonts = [=] { + cSetMainFont(QString()); + cSetSemiboldFont(QString()); + cSetSemiboldFontIsBold(false); + cSetMonospaceFont(QString()); + KotatoSettings::Write(); + App::restart(); + }; + + Ui::show( + Box( + tr::ktg_fonts_restart_reset(tr::now), + tr::ktg_fonts_restart(tr::now), + tr::lng_cancel(tr::now), + resetFonts)); } \ No newline at end of file