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

PixelPaint: Make ImageEditor::m_undo_stack a regular value member

This commit is contained in:
Andreas Kling 2022-01-04 17:58:40 +01:00
parent 490d385d01
commit 1a54ac262a
2 changed files with 10 additions and 12 deletions

View file

@ -23,12 +23,10 @@ namespace PixelPaint {
ImageEditor::ImageEditor(NonnullRefPtr<Image> image) ImageEditor::ImageEditor(NonnullRefPtr<Image> image)
: m_image(move(image)) : m_image(move(image))
, m_undo_stack(make<GUI::UndoStack>())
, m_selection(*this) , m_selection(*this)
{ {
set_focus_policy(GUI::FocusPolicy::StrongFocus); set_focus_policy(GUI::FocusPolicy::StrongFocus);
m_undo_stack = make<GUI::UndoStack>(); m_undo_stack.push(make<ImageUndoCommand>(*m_image));
m_undo_stack->push(make<ImageUndoCommand>(*m_image));
m_image->add_client(*this); m_image->add_client(*this);
m_pixel_grid_threshold = (float)Config::read_i32("PixelPaint", "PixelGrid", "Threshold", 15); m_pixel_grid_threshold = (float)Config::read_i32("PixelPaint", "PixelGrid", "Threshold", 15);
@ -45,12 +43,12 @@ ImageEditor::~ImageEditor()
void ImageEditor::did_complete_action() void ImageEditor::did_complete_action()
{ {
m_undo_stack->push(make<ImageUndoCommand>(*m_image)); m_undo_stack.push(make<ImageUndoCommand>(*m_image));
} }
bool ImageEditor::undo() bool ImageEditor::undo()
{ {
if (!m_undo_stack->can_undo()) if (!m_undo_stack.can_undo())
return false; return false;
/* Without this you need to undo twice to actually start undoing stuff. /* Without this you need to undo twice to actually start undoing stuff.
@ -63,19 +61,19 @@ bool ImageEditor::undo()
* This works because UndoStack::undo first decrements the stack pointer and then restores the snapshot, * This works because UndoStack::undo first decrements the stack pointer and then restores the snapshot,
* while UndoStack::redo first restores the snapshot and then increments the stack pointer. * while UndoStack::redo first restores the snapshot and then increments the stack pointer.
*/ */
m_undo_stack->undo(); m_undo_stack.undo();
m_undo_stack->undo(); m_undo_stack.undo();
m_undo_stack->redo(); m_undo_stack.redo();
layers_did_change(); layers_did_change();
return true; return true;
} }
bool ImageEditor::redo() bool ImageEditor::redo()
{ {
if (!m_undo_stack->can_redo()) if (!m_undo_stack.can_redo())
return false; return false;
m_undo_stack->redo(); m_undo_stack.redo();
layers_did_change(); layers_did_change();
return true; return true;
} }

View file

@ -43,7 +43,7 @@ public:
bool undo(); bool undo();
bool redo(); bool redo();
auto& undo_stack() { return *m_undo_stack; } auto& undo_stack() { return m_undo_stack; }
void add_guide(NonnullRefPtr<Guide> guide) { m_guides.append(guide); } void add_guide(NonnullRefPtr<Guide> guide) { m_guides.append(guide); }
void remove_guide(Guide const& guide) void remove_guide(Guide const& guide)
@ -153,7 +153,7 @@ private:
NonnullRefPtr<Image> m_image; NonnullRefPtr<Image> m_image;
RefPtr<Layer> m_active_layer; RefPtr<Layer> m_active_layer;
OwnPtr<GUI::UndoStack> m_undo_stack; GUI::UndoStack m_undo_stack;
NonnullRefPtrVector<Guide> m_guides; NonnullRefPtrVector<Guide> m_guides;
bool m_show_guides { true }; bool m_show_guides { true };