From 682bff4c4929e0328877809dd4cc8e94a494c2b3 Mon Sep 17 00:00:00 2001 From: implicitfield <114500360+implicitfield@users.noreply.github.com> Date: Sat, 11 Feb 2023 19:14:20 +0200 Subject: [PATCH] DisplaySettings: Propagate errors in FontSettingsWidget --- .../DisplaySettings/FontSettingsWidget.cpp | 13 +++++++++++-- .../DisplaySettings/FontSettingsWidget.h | 6 ++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Userland/Applications/DisplaySettings/FontSettingsWidget.cpp b/Userland/Applications/DisplaySettings/FontSettingsWidget.cpp index bb9063f433..d3e02499ae 100644 --- a/Userland/Applications/DisplaySettings/FontSettingsWidget.cpp +++ b/Userland/Applications/DisplaySettings/FontSettingsWidget.cpp @@ -17,9 +17,16 @@ namespace DisplaySettings { static void update_label_with_font(GUI::Label&, Gfx::Font const&); -FontSettingsWidget::FontSettingsWidget() +ErrorOr> FontSettingsWidget::try_create() { - load_from_gml(font_settings_gml).release_value_but_fixme_should_propagate_errors(); + auto font_settings_widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) FontSettingsWidget())); + TRY(font_settings_widget->setup_interface()); + return font_settings_widget; +} + +ErrorOr FontSettingsWidget::setup_interface() +{ + TRY(load_from_gml(font_settings_gml)); auto& default_font = Gfx::FontDatabase::default_font(); m_default_font_label = *find_descendant_of_type_named("default_font_label"); @@ -59,6 +66,8 @@ FontSettingsWidget::FontSettingsWidget() set_modified(true); } }; + + return {}; } static void update_label_with_font(GUI::Label& label, Gfx::Font const& font) diff --git a/Userland/Applications/DisplaySettings/FontSettingsWidget.h b/Userland/Applications/DisplaySettings/FontSettingsWidget.h index 7c3fe08ed9..506ff1094d 100644 --- a/Userland/Applications/DisplaySettings/FontSettingsWidget.h +++ b/Userland/Applications/DisplaySettings/FontSettingsWidget.h @@ -13,15 +13,17 @@ namespace DisplaySettings { class FontSettingsWidget final : public GUI::SettingsWindow::Tab { - C_OBJECT(FontSettingsWidget); + C_OBJECT_ABSTRACT(FontSettingsWidget); public: + static ErrorOr> try_create(); virtual ~FontSettingsWidget() override = default; virtual void apply_settings() override; private: - FontSettingsWidget(); + FontSettingsWidget() = default; + ErrorOr setup_interface(); RefPtr m_default_font_label; RefPtr m_window_title_font_label;