diff --git a/Userland/Applications/NetworkSettings/CMakeLists.txt b/Userland/Applications/NetworkSettings/CMakeLists.txt index e4e9bc1674..7e52a6c15a 100644 --- a/Userland/Applications/NetworkSettings/CMakeLists.txt +++ b/Userland/Applications/NetworkSettings/CMakeLists.txt @@ -4,16 +4,13 @@ serenity_component( TARGETS NetworkSettings ) -stringify_gml(NetworkSettings.gml NetworkSettingsGML.h network_settings_gml) +compile_gml(NetworkSettings.gml NetworkSettingsGML.cpp) set(SOURCES NetworkSettingsWidget.cpp + NetworkSettingsGML.cpp main.cpp ) -set(GENERATED_SOURCES - NetworkSettingsGML.h -) - serenity_app(NetworkSettings ICON network) target_link_libraries(NetworkSettings PRIVATE LibCore LibGfx LibGUI LibMain) diff --git a/Userland/Applications/NetworkSettings/NetworkSettings.gml b/Userland/Applications/NetworkSettings/NetworkSettings.gml index 2877c9a23f..5824ecd447 100644 --- a/Userland/Applications/NetworkSettings/NetworkSettings.gml +++ b/Userland/Applications/NetworkSettings/NetworkSettings.gml @@ -1,4 +1,4 @@ -@GUI::Frame { +@NetworkSettings::NetworkSettingsWidget { fill_with_background_color: true layout: @GUI::VerticalBoxLayout { margins: [10] @@ -24,7 +24,6 @@ } @GUI::ComboBox { - model_only: true name: "adapters_combobox" } } diff --git a/Userland/Applications/NetworkSettings/NetworkSettingsWidget.cpp b/Userland/Applications/NetworkSettings/NetworkSettingsWidget.cpp index da47f1035d..e67b1a5470 100644 --- a/Userland/Applications/NetworkSettings/NetworkSettingsWidget.cpp +++ b/Userland/Applications/NetworkSettings/NetworkSettingsWidget.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -30,17 +29,15 @@ static int netmask_to_cidr(IPv4Address const& address) return 32 - count_trailing_zeroes_safe(address_in_host_representation); } -ErrorOr> NetworkSettingsWidget::try_create() +ErrorOr> NetworkSettingsWidget::create() { - auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) NetworkSettingsWidget())); + auto widget = TRY(try_create()); TRY(widget->setup()); return widget; } ErrorOr NetworkSettingsWidget::setup() { - TRY(load_from_gml(network_settings_gml)); - m_adapters_combobox = *find_descendant_of_type_named("adapters_combobox"); m_enabled_checkbox = *find_descendant_of_type_named("enabled_checkbox"); m_enabled_checkbox->on_checked = [&](bool value) { diff --git a/Userland/Applications/NetworkSettings/NetworkSettingsWidget.h b/Userland/Applications/NetworkSettings/NetworkSettingsWidget.h index ac8f202452..8123741dcb 100644 --- a/Userland/Applications/NetworkSettings/NetworkSettingsWidget.h +++ b/Userland/Applications/NetworkSettings/NetworkSettingsWidget.h @@ -16,11 +16,14 @@ class NetworkSettingsWidget : public GUI::SettingsWindow::Tab { C_OBJECT_ABSTRACT(NetworkSettingsWidget) public: - static ErrorOr> try_create(); + static ErrorOr> create(); virtual void apply_settings() override; void switch_adapter(DeprecatedString const& adapter); +protected: + static ErrorOr> try_create(); + private: NetworkSettingsWidget() = default; ErrorOr setup(); diff --git a/Userland/Applications/NetworkSettings/main.cpp b/Userland/Applications/NetworkSettings/main.cpp index e963ea41dd..889dd8e38d 100644 --- a/Userland/Applications/NetworkSettings/main.cpp +++ b/Userland/Applications/NetworkSettings/main.cpp @@ -36,7 +36,9 @@ ErrorOr serenity_main(Main::Arguments args) auto app_icon = GUI::Icon::default_icon("network"sv); auto window = TRY(GUI::SettingsWindow::create("Network Settings", GUI::SettingsWindow::ShowDefaultsButton::No)); - auto network_settings_widget = TRY(window->add_tab("Network"_string, "network"sv)); + + auto network_settings_widget = TRY(NetworkSettings::NetworkSettingsWidget::create()); + TRY(window->add_tab(network_settings_widget, "Network"_string, "network"sv)); if (!adapter.is_null()) { network_settings_widget->switch_adapter(adapter); }