arcachofo wrote:Patch applied at Rev 1859.
Your work in the Undo/Redo system is beyond excellent.
I was procastinating on this because by brain hurts just by thinking about working on it.
So I'm eternally grateful.
I made some changes for the "copy by drag" feature:
- Changed it to Ctrl+Shift because only Ctrl was interfering with other features.
- Simplified it a little bit (still some issue to solve).
Thanks.
In the attached patch (for Revision 1859):
- An extra param "undo" is added to circuit::paste(), to control save undo info or not.
- use drag/drop mechnism to handle shift+ctrl+drag operatoion, so it can be cancelled by pressing ESC.
- use the same mechnism as circuit::removeItems(), to get the copied items.
- use copy()/paste() to copy items in the drag&drop copy. But undo info are only added in the circuitView::dropEvent(), which is called after drop is done.
- minor fix: create new component by drag from left pane are not undoable.
- minor fix: prevent drag copy from starting if linking is in process.
And for the modify key, maybe we could list all the mouse operations that uses Ctrl, and check if we could keep compatible with them?