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

PixelPaint: Add Cut action

It's just the Copy action with erasing selection at the end.
This commit is contained in:
Karol Kosek 2022-03-18 23:36:17 +01:00 committed by Andreas Kling
parent 580c6080b5
commit 677e4845a7
2 changed files with 20 additions and 0 deletions

View file

@ -206,6 +206,23 @@ void MainWidget::initialize_menubar(GUI::Window& window)
m_edit_menu = window.add_menu("&Edit");
m_cut_action = GUI::CommonActions::make_cut_action([&](auto&) {
auto* editor = current_image_editor();
VERIFY(editor);
if (!editor->active_layer()) {
dbgln("Cannot cut with no active layer selected");
return;
}
auto bitmap = editor->active_layer()->try_copy_bitmap(editor->selection());
if (!bitmap) {
dbgln("try_copy_bitmap() from Layer failed");
return;
}
GUI::Clipboard::the().set_bitmap(*bitmap);
editor->active_layer()->erase_selection(editor->selection());
});
m_copy_action = GUI::CommonActions::make_copy_action([&](auto&) {
auto* editor = current_image_editor();
VERIFY(editor);
@ -270,6 +287,7 @@ void MainWidget::initialize_menubar(GUI::Window& window)
m_edit_menu->add_action(*m_undo_action);
m_edit_menu->add_action(*m_redo_action);
m_edit_menu->add_separator();
m_edit_menu->add_action(*m_cut_action);
m_edit_menu->add_action(*m_copy_action);
m_edit_menu->add_action(*m_copy_merged_action);
m_edit_menu->add_action(*m_paste_action);
@ -660,6 +678,7 @@ void MainWidget::initialize_menubar(GUI::Window& window)
toolbar.add_action(*m_open_image_action);
toolbar.add_action(*m_save_image_action);
toolbar.add_separator();
toolbar.add_action(*m_cut_action);
toolbar.add_action(*m_copy_action);
toolbar.add_action(*m_paste_action);
toolbar.add_action(*m_undo_action);