mirror of
https://github.com/aseprite/aseprite.git
synced 2025-01-30 06:32:42 +00:00
e55865843e
Undoers were little objects to swap/revert an action. They didn't execute the action itself, they just revert its previous state. Now undoers were replaced with cmds: A cmd is an object that executes/undoes/redoes just one action. Changes: * Remove old undo library and app/objects_container_impl.cpp (now we use the doc::ObjectId directly to store undo info) * Remove all Undoers from app/undoers/ * Replace DocumentApi impl with little Cmds in app/cmd/, these cmds handle execute/undo/redo of each action at the logic layer * Remove doc::Dirty object * Remove doc::Settings: all undo configuration is in the app side * Move undo options from app:ISettings to app::Preferences * Rename UndoTransaction to Transaction * Create a CmdSequence to store a sequence of Cmds (as now the new undo library doesn't support open/close groups) * Add doc::get<T>(ObjectId) function to get any kind of object from the doc library by its ID * Add Cel::document() and Sprite::document() members * Add Sprite::cels(frame_t) to get all cels in the given frame * Add Layer::displaceFrames() member function * Move the "allow non-linear history" flag from undo2::UndoHistory to app::DocumentUndo