mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-13 04:52:23 +00:00
FontSettingsWidget: Reduce duplication in Label setup code
Pull out the Label updating code into its own function. Ideally, we should probably transform this code to use its own widget rather than doing this all in-line. I.e., having a `FontSettingWidget` that that ties the FontPicker, Label and Button into its own little widget, so that we can stay extendible in the main widget and reduce duplication some more!
This commit is contained in:
parent
a1f8c10fe5
commit
7dfc804d7d
Notes:
sideshowbarker
2024-07-18 17:28:19 +09:00
Author: https://github.com/winfr34k
Commit: 7dfc804d7d
Pull-request: https://github.com/SerenityOS/serenity/pull/7417
Reviewed-by: https://github.com/linusg
1 changed files with 13 additions and 8 deletions
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2021, Thomas Keppler <winfr34k@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -13,35 +14,33 @@
|
|||
|
||||
namespace DisplaySettings {
|
||||
|
||||
static void update_label_with_font(GUI::Label&, Gfx::Font const&);
|
||||
|
||||
FontSettingsWidget::FontSettingsWidget()
|
||||
{
|
||||
load_from_gml(font_settings_gml);
|
||||
|
||||
auto& default_font = Gfx::FontDatabase::default_font();
|
||||
m_default_font_label = *find_descendant_of_type_named<GUI::Label>("default_font_label");
|
||||
m_default_font_label->set_font(default_font);
|
||||
m_default_font_label->set_text(default_font.qualified_name());
|
||||
update_label_with_font(*m_default_font_label, default_font);
|
||||
|
||||
auto& default_font_button = *find_descendant_of_type_named<GUI::Button>("default_font_button");
|
||||
default_font_button.on_click = [this] {
|
||||
auto font_picker = GUI::FontPicker::construct(window(), &m_default_font_label->font(), false);
|
||||
if (font_picker->exec() == GUI::Dialog::ExecOK) {
|
||||
m_default_font_label->set_font(font_picker->font());
|
||||
m_default_font_label->set_text(font_picker->font()->qualified_name());
|
||||
update_label_with_font(*m_default_font_label, *font_picker->font());
|
||||
}
|
||||
};
|
||||
|
||||
auto& default_fixed_width_font = Gfx::FontDatabase::default_fixed_width_font();
|
||||
m_fixed_width_font_label = *find_descendant_of_type_named<GUI::Label>("fixed_width_font_label");
|
||||
m_fixed_width_font_label->set_font(default_fixed_width_font);
|
||||
m_fixed_width_font_label->set_text(default_fixed_width_font.qualified_name());
|
||||
update_label_with_font(*m_fixed_width_font_label, default_fixed_width_font);
|
||||
|
||||
auto& fixed_width_font_button = *find_descendant_of_type_named<GUI::Button>("fixed_width_font_button");
|
||||
fixed_width_font_button.on_click = [this] {
|
||||
auto font_picker = GUI::FontPicker::construct(window(), &m_fixed_width_font_label->font(), true);
|
||||
if (font_picker->exec() == GUI::Dialog::ExecOK) {
|
||||
m_fixed_width_font_label->set_font(font_picker->font());
|
||||
m_fixed_width_font_label->set_text(font_picker->font()->qualified_name());
|
||||
update_label_with_font(*m_fixed_width_font_label, *font_picker->font());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -50,6 +49,12 @@ FontSettingsWidget::~FontSettingsWidget()
|
|||
{
|
||||
}
|
||||
|
||||
static void update_label_with_font(GUI::Label& label, Gfx::Font const& font)
|
||||
{
|
||||
label.set_text(font.qualified_name());
|
||||
label.set_font(font);
|
||||
}
|
||||
|
||||
void FontSettingsWidget::apply_settings()
|
||||
{
|
||||
GUI::WindowServerConnection::the().set_system_fonts(m_default_font_label->text(), m_fixed_width_font_label->text());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue