[PythonCAD] New stuff at repo

Art Haas ahaas at airmail.net
Fri Dec 3 23:22:46 CET 2004


Hi.

The latest code changes in the repo include a number of significant
changes to the undo/redo code. Each release of PythonCAD since the
introduction of undo/redo abilities has enhanced this feature, but
the storage of the data indicating which object in the drawing can
have an undo or redo operation on it has been confusing. Objects within
layers (segments, circles, etc) that had a change would store this
change in their log, but the Image containing these entities would
record the change as a modification to the layer holding that changed
entity. This is no longer the case - the Image instance stores this
information now - anytime a Layer sends a 'modified' message out
it means the layer itself was changed, not an entity within the layer.
Look at the 'image.py' file for the objectChanged() method, and look at
the undo() method to see how an undo operation is now handled. There
is still the old undo() code in the file - it is now called old_undo()
and will disappear shortly. When I'm making changes I'll often rename
a method to keep the code around until I'm satisfied with the enhanced
one, then the old one gets deleted.

A number of bugs were squished, such as the reconstruction of a deleted
construction circle, and various other fixes and enhancements are
present as well.

I'm still targetting late December as the time for the next release.
The current batch of changes are definite improvements in undo/redo
handling, but there are still more changes to be made, as well as
hopfully catching any latent or new bugs these changes have either
exposed or added.

Art
-- 
Man once surrendering his reason, has no remaining guard against absurdities
the most monstrous, and like a ship without rudder, is the sport of every wind.

-Thomas Jefferson to James Smith, 1822


More information about the PythonCAD mailing list