1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:57:35 +00:00

FontEditor: Include file basename in error messages when available

And write messages in the [action] failed: [error] format to match
common error message formatting elsewhere in Userland.
This commit is contained in:
thankyouverycool 2022-08-15 07:20:20 -04:00 committed by Andreas Kling
parent 9725fd162f
commit 92a75ccaed
3 changed files with 24 additions and 22 deletions

View file

@ -101,9 +101,9 @@ ErrorOr<void> MainWidget::create_actions()
new_font_wizard->hide();
auto maybe_font = new_font_wizard->create_font();
if (maybe_font.is_error())
return show_error("Failed to create new font"sv, maybe_font.error());
return show_error(maybe_font.error(), "Creating new font failed"sv);
if (auto result = initialize({}, move(maybe_font.value())); result.is_error())
show_error("Failed to initialize font"sv, result.error());
show_error(result.error(), "Initializing new font failed"sv);
});
m_new_action->set_status_tip("Create a new font");
@ -114,14 +114,14 @@ ErrorOr<void> MainWidget::create_actions()
if (!open_path.has_value())
return;
if (auto result = open_file(open_path.value()); result.is_error())
show_error("Failed to open font"sv, result.error());
show_error(result.error(), "Opening"sv, LexicalPath { open_path.value() }.basename());
});
m_save_action = GUI::CommonActions::make_save_action([&](auto&) {
if (m_path.is_empty())
return m_save_as_action->activate();
if (auto result = save_file(m_path); result.is_error())
show_error("Failed to save font"sv, result.error());
show_error(result.error(), "Saving"sv, LexicalPath { m_path }.basename());
});
m_save_as_action = GUI::CommonActions::make_save_as_action([&](auto&) {
@ -130,17 +130,17 @@ ErrorOr<void> MainWidget::create_actions()
if (!save_path.has_value())
return;
if (auto result = save_file(save_path.value()); result.is_error())
show_error("Failed to save font"sv, result.error());
show_error(result.error(), "Saving"sv, lexical_path.basename());
});
m_cut_action = GUI::CommonActions::make_cut_action([&](auto&) {
if (auto result = cut_selected_glyphs(); result.is_error())
show_error("Failed to cut selection"sv, result.error());
show_error(result.error(), "Cutting selection failed"sv);
});
m_copy_action = GUI::CommonActions::make_copy_action([&](auto&) {
if (auto result = copy_selected_glyphs(); result.is_error())
show_error("Failed to copy selection"sv, result.error());
show_error(result.error(), "Copying selection failed"sv);
});
m_paste_action = GUI::CommonActions::make_paste_action([&](auto&) {
@ -177,7 +177,7 @@ ErrorOr<void> MainWidget::create_actions()
m_open_preview_action = GUI::Action::create("&Preview Font", { Mod_Ctrl, Key_P }, TRY(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/find.png"sv)), [&](auto&) {
if (!m_font_preview_window) {
if (auto maybe_window = create_preview_window(); maybe_window.is_error())
show_error("Failed to create preview window"sv, maybe_window.error());
show_error(maybe_window.error(), "Creating preview window failed"sv);
else
m_font_preview_window = maybe_window.release_value();
}
@ -775,12 +775,12 @@ void MainWidget::push_undo()
{
auto maybe_state = m_undo_selection->save_state();
if (maybe_state.is_error())
return show_error("Failed to save undo state"sv, maybe_state.error());
return show_error(maybe_state.error(), "Saving undo state failed"sv);
auto maybe_command = try_make<SelectionUndoCommand>(*m_undo_selection, move(maybe_state.value()));
if (maybe_command.is_error())
return show_error("Failed to make undo command"sv, maybe_command.error());
return show_error(maybe_command.error(), "Making undo command failed"sv);
if (auto maybe_push = m_undo_stack->try_push(move(maybe_command.value())); maybe_push.is_error())
show_error("Failed to push undo stack"sv, maybe_push.error());
show_error(maybe_push.error(), "Pushing undo stack failed"sv);
}
void MainWidget::reset_selection_and_push_undo()
@ -950,7 +950,7 @@ void MainWidget::drop_event(GUI::DropEvent& event)
return;
if (auto result = open_file(urls.first().path()); result.is_error())
show_error("Failed to load font"sv, result.error());
show_error(result.error(), "Opening"sv, LexicalPath { urls.first().path() }.basename());
}
}
@ -1056,9 +1056,13 @@ void MainWidget::delete_selected_glyphs()
update_statusbar();
}
void MainWidget::show_error(StringView preface, Error error)
void MainWidget::show_error(Error error, StringView preface, StringView basename)
{
auto formatted_error = String::formatted("{}: {}", preface, error);
String formatted_error;
if (basename.is_empty())
formatted_error = String::formatted("{}: {}", preface, error);
else
formatted_error = String::formatted("{} \"{}\" failed: {}", preface, basename, error);
GUI::MessageBox::show_error(window(), formatted_error);
warnln(formatted_error);
}