diff --git a/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp b/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp index 9199faf669..b7ace31596 100644 --- a/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp +++ b/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp @@ -19,9 +19,16 @@ constexpr auto time_format_12h_seconds = "%r"sv; constexpr auto time_format_24h = "%R"sv; constexpr auto time_format_24h_seconds = "%T"sv; -ClockSettingsWidget::ClockSettingsWidget() +ErrorOr> ClockSettingsWidget::try_create() { - load_from_gml(clock_settings_widget_gml).release_value_but_fixme_should_propagate_errors(); + auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ClockSettingsWidget())); + TRY(widget->setup()); + return widget; +} + +ErrorOr ClockSettingsWidget::setup() +{ + TRY(load_from_gml(clock_settings_widget_gml)); m_24_hour_radio = *find_descendant_of_type_named("24hour_radio"); auto& twelve_hour_radio = *find_descendant_of_type_named("12hour_radio"); @@ -87,11 +94,13 @@ ClockSettingsWidget::ClockSettingsWidget() set_modified(true); }; - m_clock_preview_update_timer = Core::Timer::create_repeating(1000, [&]() { + m_clock_preview_update_timer = TRY(Core::Timer::create_repeating(1000, [&]() { update_clock_preview(); - }).release_value_but_fixme_should_propagate_errors(); + })); m_clock_preview_update_timer->start(); update_clock_preview(); + + return {}; } void ClockSettingsWidget::apply_settings() diff --git a/Userland/Applications/ClockSettings/ClockSettingsWidget.h b/Userland/Applications/ClockSettings/ClockSettingsWidget.h index 99fa5bb1a4..227e792b26 100644 --- a/Userland/Applications/ClockSettings/ClockSettingsWidget.h +++ b/Userland/Applications/ClockSettings/ClockSettingsWidget.h @@ -10,10 +10,14 @@ #include class ClockSettingsWidget final : public GUI::SettingsWindow::Tab { - C_OBJECT(ClockSettingsWidget) + C_OBJECT_ABSTRACT(ClockSettingsWidget) + +public: + static ErrorOr> try_create(); private: - ClockSettingsWidget(); + ClockSettingsWidget() = default; + ErrorOr setup(); virtual void apply_settings() override; virtual void reset_default_values() override;