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 _______________________________________________ PythonCAD mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/pythoncad
