1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 19:58:11 +00:00

FontEditor: Propagate errors when loading GML

This commit is contained in:
thankyouverycool 2023-05-10 17:00:23 -04:00 committed by Andreas Kling
parent 1a30439b11
commit 5ec9654477
2 changed files with 19 additions and 12 deletions

View file

@ -59,6 +59,18 @@ static constexpr Array pangrams = {
"<fox color=\"brown\" speed=\"quick\" jumps=\"over\">lazy dog</fox>"sv
};
ErrorOr<NonnullRefPtr<MainWidget>> MainWidget::try_create()
{
auto main_widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) MainWidget()));
TRY(main_widget->create_widgets());
TRY(main_widget->create_actions());
TRY(main_widget->create_models());
TRY(main_widget->create_toolbars());
TRY(main_widget->create_undo_stack());
return main_widget;
}
ErrorOr<RefPtr<GUI::Window>> MainWidget::create_preview_window()
{
auto window = TRY(GUI::Window::try_create(this));
@ -433,9 +445,9 @@ ErrorOr<void> MainWidget::create_undo_stack()
return {};
}
MainWidget::MainWidget()
ErrorOr<void> MainWidget::create_widgets()
{
load_from_gml(font_editor_window_gml).release_value_but_fixme_should_propagate_errors();
TRY(load_from_gml(font_editor_window_gml));
m_font_metadata_groupbox = find_descendant_of_type_named<GUI::GroupBox>("font_metadata_groupbox");
m_unicode_block_container = find_descendant_of_type_named<GUI::Widget>("unicode_block_container");
@ -603,6 +615,8 @@ MainWidget::MainWidget()
GUI::Application::the()->on_action_leave = [this](GUI::Action&) {
m_statusbar->set_override_text({});
};
return {};
}
ErrorOr<void> MainWidget::initialize(StringView path, RefPtr<Gfx::BitmapFont>&& edited_font)

View file

@ -22,15 +22,7 @@ class GlyphEditorWidget;
class MainWidget final : public GUI::Widget {
C_OBJECT(MainWidget)
public:
static ErrorOr<NonnullRefPtr<MainWidget>> try_create()
{
NonnullRefPtr<MainWidget> font_editor = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) MainWidget()));
TRY(font_editor->create_actions());
TRY(font_editor->create_models());
TRY(font_editor->create_toolbars());
TRY(font_editor->create_undo_stack());
return font_editor;
}
static ErrorOr<NonnullRefPtr<MainWidget>> try_create();
virtual ~MainWidget() override = default;
@ -58,8 +50,9 @@ public:
void set_show_system_emoji(bool);
private:
MainWidget();
MainWidget() = default;
ErrorOr<void> create_widgets();
ErrorOr<void> create_actions();
ErrorOr<void> create_models();
ErrorOr<void> create_toolbars();