+ Added a new attribute for each undo item (undo::Modification).
+ Each item now modifies or does not modify the document (e.g. selection
actions do not modify the document).
+ Added an asterisk in tabs when the document is modified.
+ Added "undo" library (undo namespace).
+ Moved UndoHistory to undo namespace.
+ Added Undoer and UndoersCollector interfaces.
+ Converted old UndoStream to UndoersStack class.
+ Added new "undoers" namespace and moved each Undoer implementation
(classes to undo different actions) to "undoers" directory.
+ Added IO operations to "raster" objects (image, cel, layer, palette,
mask).
obtain any kind of objects (not just GfxObj).
+ Removed GfxObjId.
+ Added ObjectsContainerImpl.
+ Use UniquePtr for each member in Document to avoid memory leaks in
Document() ctor.
+ Removed RasterModule class.
+ Moved some properties from Sprite to Document: lock/unlock/mutex,
filename, isModified flag, undo history, mask boundaries, file
format options, preferred editor settings, extra cel.
+ A Context now has an active document (instead of an active sprite).
+ Renamed all sprite wrappers to be document wrappers (as the mutex is
in the Document now).
+ Modifications to SharedPtr<> to be more like C++0x shared_ptr<>.
+ Added Filter, FilterManager, and FilterIndexedData interfaces.
+ Moved all widgets related to filters to src/commands/filters.
+ Added the filters library.
+ Added FilterWindow and one derived window for each filter.
+ Fixed critical bugs using "sprite resize" command and drawing
the current editor (fixed usage of invalid memory pointers).
It happens because the resize command is executed in a background
thread, and at the same time the user can cancel or move a progress
dialog (generating redraw events to the editor).
+ Anyway this change incorporates some other problems with effects
where they keep locked the sprite in the whole command execution,
so the effect preview cannot be visualized. This will be fixed with
a refactor of the entire effect/preview stuff.