* new file : HistoryManager.js
* can undo (ctrl-z) and redo (ctrl-y) changes performed through the
tools
* history states are recorded per frame
* a new state is recorder each time a tool is released (introduced
TOOL_RELEASED event for this purpose)
* a duplicated frame doesn't inherit the history states of the original
frame
* there is no limit to the number of states that can be stored per frame
* actions such as creating/duplicating/deleting a frame are not
concerned by this update
- Adding default value in empty frames to avoid artifact when paint
bucketing (you may have issues with previously stored model before this
commit, no migration plan for papybrossette :D)
- Fix issue: Model does not show up when loading a remote GAE model
- Removing FRAMESHEET_UPDATED events (remains of history manager
implementation)
Partial cleanup of piskel:
new events and constant
move palette and color picker in ToolSelector
create Notifcation.js and move user message in it
create LocalStorageService and move LS stuff in it
Migration to a Domain object (currently a FrameSheetModel, feel free to
change its name). The model is being used by the slideshow (drawing
each tiles), animation preview (drawing animation) and drawing (update
model and redraw current tile).
Now the rendering information are not stored in a canvas element that
you paste from canvas to canvas but centralize in this model. The frame
is described as an array of array: that will allow different rendering
using the dpi constants and more flexibility (e.g. drawing a grid,
serializing the data).
Some minor modifications:
- cleaning markup
- adding background image to highlight transparent area
Basic features :
Can create frames
Can edit frames (black and white only)
Can select the frame to edit
Animated preview
And that's it.
Really tired and code is extremely ugly, just needed to do something
that _works_