浏览代码

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.
Andreas Oppebøen 2 年之前
父节点
当前提交
8cca9e94a2
共有 2 个文件被更改,包括 4 次插入0 次删除
  1. 1 0
      Userland/Applications/PixelPaint/ImageEditor.cpp
  2. 3 0
      Userland/Applications/PixelPaint/MainWidget.cpp

+ 1 - 0
Userland/Applications/PixelPaint/ImageEditor.cpp

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

+ 3 - 0
Userland/Applications/PixelPaint/MainWidget.cpp

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