From 34ae57092832cc28b960446ca83b5032a71aa8da Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 30 Dec 2020 17:52:19 +0100 Subject: [PATCH] Terminal: Switch to using GUI::FontPicker for choosing terminal font --- Applications/Terminal/main.cpp | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp index 80bd875b98..bf82c95795 100644 --- a/Applications/Terminal/main.cpp +++ b/Applications/Terminal/main.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -44,7 +45,6 @@ #include #include #include -#include #include #include #include @@ -429,6 +429,19 @@ int main(int argc, char** argv) settings_window->move_to_front(); }); + terminal.context_menu().add_separator(); + auto pick_font_action = GUI::Action::create("Terminal font...", Gfx::Bitmap::load_from_file("/res/icons/16x16/app-font-editor.png"), + [&](auto&) { + auto picker = GUI::FontPicker::construct(window, &terminal.font(), true); + if (picker->exec() == GUI::Dialog::ExecOK) { + terminal.set_font(picker->font()); + config->write_entry("Text", "Font", picker->font()->qualified_name()); + config->sync(); + } + }); + + terminal.context_menu().add_action(pick_font_action); + terminal.context_menu().add_separator(); terminal.context_menu().add_action(open_settings_action); @@ -472,22 +485,8 @@ int main(int argc, char** argv) auto& view_menu = menubar->add_menu("View"); view_menu.add_action(terminal.clear_including_history_action()); - - GUI::ActionGroup font_action_group; - font_action_group.set_exclusive(true); - auto& font_menu = menubar->add_menu("Font"); - Gfx::FontDatabase::the().for_each_fixed_width_font([&](const Gfx::Font& font) { - auto action = GUI::Action::create_checkable(font.qualified_name(), [&](auto&) { - terminal.set_font(font); - config->write_entry("Text", "Font", font.qualified_name()); - config->sync(); - terminal.force_repaint(); - }); - font_action_group.add_action(*action); - if (terminal.font().qualified_name() == font.qualified_name()) - action->set_checked(true); - font_menu.add_action(*action); - }); + view_menu.add_separator(); + view_menu.add_action(pick_font_action); auto& help_menu = menubar->add_menu("Help"); help_menu.add_action(GUI::Action::create("About", [&](auto&) {