From e15427c5bad6809a505de8854005295caaa14d1c Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Thu, 28 Apr 2022 17:13:48 +0100 Subject: [PATCH] ThemeEditor: Propagate failure to create AlignmentModel Also make the AlignmentValue struct private, and initialize the Vector in one go instead of empending. --- Userland/Applications/ThemeEditor/main.cpp | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Userland/Applications/ThemeEditor/main.cpp b/Userland/Applications/ThemeEditor/main.cpp index b6397862b1..a4ffde76c6 100644 --- a/Userland/Applications/ThemeEditor/main.cpp +++ b/Userland/Applications/ThemeEditor/main.cpp @@ -1,7 +1,7 @@ /* * Copyright (c) 2020, Andreas Kling * Copyright (c) 2021, Jakob-Niklas See - * Copyright (c) 2021, Sam Atkins + * Copyright (c) 2021-2022, Sam Atkins * Copyright (c) 2021, Antonio Di Stefano * Copyright (c) 2022, Filiph Sandström * @@ -58,19 +58,11 @@ private: } }; -struct AlignmentValue { - String title; - Gfx::TextAlignment setting_value; -}; - class AlignmentModel final : public GUI::Model { - public: - AlignmentModel() + static ErrorOr> try_create() { - m_alignments.empend("Center", Gfx::TextAlignment::Center); - m_alignments.empend("Left", Gfx::TextAlignment::CenterLeft); - m_alignments.empend("Right", Gfx::TextAlignment::CenterRight); + return adopt_nonnull_ref_or_enomem(new (nothrow) AlignmentModel()); } virtual ~AlignmentModel() = default; @@ -89,7 +81,17 @@ public: } private: - Vector m_alignments; + AlignmentModel() = default; + + struct AlignmentValue { + String title; + Gfx::TextAlignment setting_value; + }; + Vector m_alignments { + { "Center", Gfx::TextAlignment::Center }, + { "Left", Gfx::TextAlignment::CenterLeft }, + { "Right", Gfx::TextAlignment::CenterRight }, + }; }; ErrorOr serenity_main(Main::Arguments arguments) @@ -197,7 +199,7 @@ ErrorOr serenity_main(Main::Arguments arguments) alignment_combo_box.set_selected_index((size_t)Gfx::AlignmentRole::TitleAlignment - 1); alignment_input.set_only_allow_values_from_model(true); - alignment_input.set_model(adopt_ref(*new AlignmentModel())); + alignment_input.set_model(TRY(AlignmentModel::try_create())); alignment_input.set_selected_index((size_t)startup_preview_palette.alignment(Gfx::AlignmentRole::TitleAlignment)); alignment_input.on_change = [&](auto&, auto& index) { auto role = alignment_combo_box.model()->index(alignment_combo_box.selected_index()).data(GUI::ModelRole::Custom).to_alignment_role();