PixelPaint: Record action for all select operations to allow undo

Since selections with the select tools support undo, it makes
sense for the edit operations 'select all', 'none', 'invert' and
'clear selection' to also support undo.
This commit is contained in:
Andreas Oppebøen 2022-11-26 22:59:10 +01:00 committed by Sam Atkins
parent 427d488d7e
commit 8cca9e94a2
2 changed files with 4 additions and 0 deletions

View file

@ -426,6 +426,7 @@ void ImageEditor::keydown_event(GUI::KeyEvent& event)
if (event.key() == Key_Escape && !m_image->selection().is_empty()) {
m_image->selection().clear();
did_complete_action("Clear Selection"sv);
return;
}

View file

@ -359,18 +359,21 @@ void MainWidget::initialize_menubar(GUI::Window& window)
if (!editor->active_layer())
return;
editor->image().selection().merge(editor->active_layer()->relative_rect(), PixelPaint::Selection::MergeMode::Set);
editor->did_complete_action("Select All"sv);
}));
m_edit_menu->add_action(GUI::Action::create(
"Clear &Selection", g_icon_bag.clear_selection, [&](auto&) {
auto* editor = current_image_editor();
VERIFY(editor);
editor->image().selection().clear();
editor->did_complete_action("Clear Selection"sv);
}));
m_edit_menu->add_action(GUI::Action::create(
"&Invert Selection", g_icon_bag.invert_selection, [&](auto&) {
auto* editor = current_image_editor();
VERIFY(editor);
editor->image().selection().invert();
editor->did_complete_action("Invert Selection"sv);
}));
m_edit_menu->add_separator();