1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 08:17:35 +00:00

ThemeEditor: Make GUI initialization fallible

To do this, all GUI logic is moved into try_create() factory functions.
This commit is contained in:
Sam Atkins 2022-12-30 12:13:23 +00:00 committed by Tim Flynn
parent fa98034ff7
commit 59d9d1d07a
4 changed files with 78 additions and 47 deletions

View file

@ -77,9 +77,10 @@ struct PropertyTab {
};
class MainWidget final : public GUI::Widget {
C_OBJECT(MainWidget);
C_OBJECT_ABSTRACT(MainWidget);
public:
static ErrorOr<NonnullRefPtr<MainWidget>> try_create();
virtual ~MainWidget() override = default;
ErrorOr<void> initialize_menubar(GUI::Window&);
@ -88,7 +89,7 @@ public:
ErrorOr<void> load_from_file(Core::File&);
private:
MainWidget();
explicit MainWidget(NonnullRefPtr<AlignmentModel>);
void save_to_file(Core::File&);
ErrorOr<Core::AnonymousBuffer> encode();
@ -96,7 +97,7 @@ private:
void build_override_controls();
void add_property_tab(PropertyTab const&);
ErrorOr<void> add_property_tab(PropertyTab const&);
void set_alignment(Gfx::AlignmentRole, Gfx::TextAlignment);
void set_color(Gfx::ColorRole, Gfx::Color);
void set_flag(Gfx::FlagRole, bool);