/* * Copyright (c) 2022, Maciej * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace NetworkSettings { class NetworkSettingsWidget : public GUI::SettingsWindow::Tab { C_OBJECT_ABSTRACT(NetworkSettingsWidget) public: static ErrorOr> try_create(); ErrorOr initialize(); virtual void apply_settings() override; void switch_adapter(ByteString const& adapter); private: NetworkSettingsWidget() = default; struct NetworkAdapterData { bool enabled = false; bool dhcp = false; ByteString ip_address; int cidr = 0; ByteString default_gateway; }; void on_switch_adapter(ByteString const& adapter); void on_switch_enabled_or_dhcp(); ErrorOr apply_settings_impl(); ErrorOr> create_settings_object(); HashMap m_network_adapters; Vector m_adapter_names; NetworkAdapterData* m_current_adapter_data = nullptr; RefPtr m_enabled_checkbox; RefPtr m_dhcp_checkbox; RefPtr m_adapters_combobox; RefPtr m_ip_address_textbox; RefPtr m_cidr_spinbox; RefPtr m_default_gateway_textbox; }; }