From 2440a2f83f0d5e7a30ed21ba0819435a455f5700 Mon Sep 17 00:00:00 2001 From: "Mr.UNIX" Date: Thu, 18 Jan 2024 15:07:55 +0100 Subject: [PATCH] TerminalSettings: Port to GML Compiler --- .../TerminalSettings/CMakeLists.txt | 11 ++++------ .../TerminalSettings/MainWidget.cpp | 21 +++++++++---------- .../TerminalSettings/MainWidget.h | 9 +++++--- .../TerminalSettings/TerminalSettingsMain.gml | 2 +- .../TerminalSettings/TerminalSettingsView.gml | 5 ++--- .../TerminalSettings/ViewWidget.cpp | 17 +++++++-------- .../TerminalSettings/ViewWidget.h | 9 +++++--- .../Applications/TerminalSettings/main.cpp | 4 ++-- 8 files changed, 39 insertions(+), 39 deletions(-) diff --git a/Userland/Applications/TerminalSettings/CMakeLists.txt b/Userland/Applications/TerminalSettings/CMakeLists.txt index 24786b7056..b8dd06bf6f 100644 --- a/Userland/Applications/TerminalSettings/CMakeLists.txt +++ b/Userland/Applications/TerminalSettings/CMakeLists.txt @@ -4,19 +4,16 @@ serenity_component( TARGETS TerminalSettings ) -stringify_gml(TerminalSettingsMain.gml TerminalSettingsMainGML.h terminal_settings_main_gml) -stringify_gml(TerminalSettingsView.gml TerminalSettingsViewGML.h terminal_settings_view_gml) +compile_gml(TerminalSettingsMain.gml TerminalSettingsMainGML.cpp) +compile_gml(TerminalSettingsView.gml TerminalSettingsViewGML.cpp) set(SOURCES + TerminalSettingsMainGML.cpp + TerminalSettingsViewGML.cpp MainWidget.cpp ViewWidget.cpp main.cpp ) -set(GENERATED_SOURCES - TerminalSettingsMainGML.h - TerminalSettingsViewGML.h -) - serenity_app(TerminalSettings ICON app-terminal) target_link_libraries(TerminalSettings PRIVATE LibCore LibGfx LibGUI LibConfig LibMain LibVT) diff --git a/Userland/Applications/TerminalSettings/MainWidget.cpp b/Userland/Applications/TerminalSettings/MainWidget.cpp index 878c76e34c..6b4d96d173 100644 --- a/Userland/Applications/TerminalSettings/MainWidget.cpp +++ b/Userland/Applications/TerminalSettings/MainWidget.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -28,17 +27,16 @@ #include #include -ErrorOr> TerminalSettingsMainWidget::try_create() +namespace TerminalSettings { +ErrorOr> MainWidget::create() { - auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) TerminalSettingsMainWidget())); + auto widget = MainWidget::try_create().release_value_but_fixme_should_propagate_errors(); TRY(widget->setup()); return widget; } -ErrorOr TerminalSettingsMainWidget::setup() +ErrorOr MainWidget::setup() { - TRY(load_from_gml(terminal_settings_main_gml)); - auto& beep_bell_radio = *find_descendant_of_type_named("beep_bell_radio"); auto& visual_bell_radio = *find_descendant_of_type_named("visual_bell_radio"); auto& no_bell_radio = *find_descendant_of_type_named("no_bell_radio"); @@ -86,7 +84,7 @@ ErrorOr TerminalSettingsMainWidget::setup() return {}; } -VT::TerminalWidget::BellMode TerminalSettingsMainWidget::parse_bell(StringView bell_string) +VT::TerminalWidget::BellMode MainWidget::parse_bell(StringView bell_string) { if (bell_string == "AudibleBeep") return VT::TerminalWidget::BellMode::AudibleBeep; @@ -97,7 +95,7 @@ VT::TerminalWidget::BellMode TerminalSettingsMainWidget::parse_bell(StringView b VERIFY_NOT_REACHED(); } -ByteString TerminalSettingsMainWidget::stringify_bell(VT::TerminalWidget::BellMode bell_mode) +ByteString MainWidget::stringify_bell(VT::TerminalWidget::BellMode bell_mode) { if (bell_mode == VT::TerminalWidget::BellMode::AudibleBeep) return "AudibleBeep"; @@ -108,19 +106,20 @@ ByteString TerminalSettingsMainWidget::stringify_bell(VT::TerminalWidget::BellMo VERIFY_NOT_REACHED(); } -void TerminalSettingsMainWidget::apply_settings() +void MainWidget::apply_settings() { m_original_bell_mode = m_bell_mode; m_orignal_confirm_close = m_confirm_close; write_back_settings(); } -void TerminalSettingsMainWidget::write_back_settings() const +void MainWidget::write_back_settings() const { Config::write_bool("Terminal"sv, "Terminal"sv, "ConfirmClose"sv, m_orignal_confirm_close); Config::write_string("Terminal"sv, "Window"sv, "Bell"sv, stringify_bell(m_original_bell_mode)); } -void TerminalSettingsMainWidget::cancel_settings() +void MainWidget::cancel_settings() { write_back_settings(); } +} diff --git a/Userland/Applications/TerminalSettings/MainWidget.h b/Userland/Applications/TerminalSettings/MainWidget.h index 5f8f25acea..416c67f9ba 100644 --- a/Userland/Applications/TerminalSettings/MainWidget.h +++ b/Userland/Applications/TerminalSettings/MainWidget.h @@ -13,16 +13,18 @@ #include #include -class TerminalSettingsMainWidget final : public GUI::SettingsWindow::Tab { +namespace TerminalSettings { +class MainWidget final : public GUI::SettingsWindow::Tab { C_OBJECT_ABSTRACT(TerminalSettingsMainWidget) public: - static ErrorOr> try_create(); + static ErrorOr> create(); virtual void apply_settings() override; virtual void cancel_settings() override; private: - TerminalSettingsMainWidget() = default; + static ErrorOr> try_create(); + MainWidget() = default; ErrorOr setup(); void write_back_settings() const; @@ -35,3 +37,4 @@ private: VT::TerminalWidget::BellMode m_original_bell_mode; bool m_orignal_confirm_close { true }; }; +} diff --git a/Userland/Applications/TerminalSettings/TerminalSettingsMain.gml b/Userland/Applications/TerminalSettings/TerminalSettingsMain.gml index e9b11c4220..3fb72e1e2b 100644 --- a/Userland/Applications/TerminalSettings/TerminalSettingsMain.gml +++ b/Userland/Applications/TerminalSettings/TerminalSettingsMain.gml @@ -1,4 +1,4 @@ -@GUI::Widget { +@TerminalSettings::MainWidget { fill_with_background_color: true layout: @GUI::VerticalBoxLayout { margins: [10] diff --git a/Userland/Applications/TerminalSettings/TerminalSettingsView.gml b/Userland/Applications/TerminalSettings/TerminalSettingsView.gml index a46f271dda..15f3772349 100644 --- a/Userland/Applications/TerminalSettings/TerminalSettingsView.gml +++ b/Userland/Applications/TerminalSettings/TerminalSettingsView.gml @@ -1,4 +1,4 @@ -@GUI::Widget { +@TerminalSettings::ViewWidget { fill_with_background_color: true layout: @GUI::VerticalBoxLayout { margins: [10] @@ -27,7 +27,7 @@ @GUI::Label { background_role: "Base" - style: "SunkenContainer" + frame_style: "SunkenContainer" fill_with_background_color: true name: "terminal_font_label" } @@ -111,7 +111,6 @@ name: "history_size_spinbox" min: 0 max: 40960 - orientation: "Horizontal" preferred_width: 100 } diff --git a/Userland/Applications/TerminalSettings/ViewWidget.cpp b/Userland/Applications/TerminalSettings/ViewWidget.cpp index 63f526f122..c107bafce2 100644 --- a/Userland/Applications/TerminalSettings/ViewWidget.cpp +++ b/Userland/Applications/TerminalSettings/ViewWidget.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -28,17 +27,16 @@ #include #include -ErrorOr> TerminalSettingsViewWidget::try_create() +namespace TerminalSettings { +ErrorOr> ViewWidget::create() { - auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) TerminalSettingsViewWidget())); + auto widget = TRY(ViewWidget::try_create()); TRY(widget->setup()); return widget; } -ErrorOr TerminalSettingsViewWidget::setup() +ErrorOr ViewWidget::setup() { - TRY(load_from_gml(terminal_settings_view_gml)); - auto& slider = *find_descendant_of_type_named("background_opacity_slider"); m_opacity = Config::read_i32("Terminal"sv, "Window"sv, "Opacity"sv); m_original_opacity = m_opacity; @@ -166,7 +164,7 @@ ErrorOr TerminalSettingsViewWidget::setup() return {}; } -void TerminalSettingsViewWidget::apply_settings() +void ViewWidget::apply_settings() { m_original_opacity = m_opacity; m_original_font = m_font; @@ -177,7 +175,7 @@ void TerminalSettingsViewWidget::apply_settings() write_back_settings(); } -void TerminalSettingsViewWidget::write_back_settings() const +void ViewWidget::write_back_settings() const { Config::write_i32("Terminal"sv, "Window"sv, "Opacity"sv, static_cast(m_original_opacity)); Config::write_string("Terminal"sv, "Text"sv, "Font"sv, m_original_font->qualified_name()); @@ -187,7 +185,8 @@ void TerminalSettingsViewWidget::write_back_settings() const Config::write_bool("Terminal"sv, "Terminal"sv, "ShowScrollBar"sv, m_original_show_scrollbar); } -void TerminalSettingsViewWidget::cancel_settings() +void ViewWidget::cancel_settings() { write_back_settings(); } +} diff --git a/Userland/Applications/TerminalSettings/ViewWidget.h b/Userland/Applications/TerminalSettings/ViewWidget.h index 651fdfb0a8..e35845ba27 100644 --- a/Userland/Applications/TerminalSettings/ViewWidget.h +++ b/Userland/Applications/TerminalSettings/ViewWidget.h @@ -13,16 +13,18 @@ #include #include -class TerminalSettingsViewWidget final : public GUI::SettingsWindow::Tab { +namespace TerminalSettings { +class ViewWidget final : public GUI::SettingsWindow::Tab { C_OBJECT_ABSTRACT(TerminalSettingsViewWidget) public: - static ErrorOr> try_create(); + static ErrorOr> try_create(); + static ErrorOr> create(); virtual void apply_settings() override; virtual void cancel_settings() override; private: - TerminalSettingsViewWidget() = default; + ViewWidget() = default; ErrorOr setup(); void write_back_settings() const; @@ -42,3 +44,4 @@ private: size_t m_original_max_history_size; bool m_original_show_scrollbar { true }; }; +} diff --git a/Userland/Applications/TerminalSettings/main.cpp b/Userland/Applications/TerminalSettings/main.cpp index 819ec4e4cf..38bc80a2dc 100644 --- a/Userland/Applications/TerminalSettings/main.cpp +++ b/Userland/Applications/TerminalSettings/main.cpp @@ -33,8 +33,8 @@ ErrorOr serenity_main(Main::Arguments arguments) auto window = TRY(GUI::SettingsWindow::create("Terminal Settings")); window->set_icon(app_icon.bitmap_for_size(16)); - (void)TRY(window->add_tab("View"_string, "view"sv)); - (void)TRY(window->add_tab("Terminal"_string, "terminal"sv)); + (void)TRY(window->add_tab(TRY(TerminalSettings::ViewWidget::create()), "View"_string, "view"sv)); + (void)TRY(window->add_tab(TRY(TerminalSettings::MainWidget::create()), "Terminal"_string, "terminal"sv)); window->set_active_tab(selected_tab); window->show();