Hi,
Well maybe I am naive (again) but as an user I would expect that
undo/redo "follows" my actions i.e. switches between sheets as well. Of
course I see the advantages of seperate undo/redo stacks for every
single sheet but I am not really convinced that the advantages
outweights the disadvantages (i.e. the frequently killed undo/redo if
one does a global operation like annotation or exporting the netlist).
The concept of a "multiple sheet undo" has its charm but one runs again
into trouble if one has removed it from one sheet. Of course this case
will be detected and reported, but I wonder if it will help the user
experience that one more way exists to "hinder" the undo/redo mechanism.
best regards,
Christian
Am 23.12.2016 um 09:47 schrieb Dino Ghilardi:
Hello JP,
'interleaved' to the original text my comments.
Il 23/12/2016 08:56, jp charras ha scritto:
Le 23/12/2016 à 00:30, Dino Ghilardi a écrit :
...
Yes, the undo/redo on multiple sheets is very tricky, mainly because
usually you are not expecting
this command made in a given sheet changes something in an other sheet.
Your remark about synchronizing the undo/redo between all sheets
shows very well the problem.
This is the reason the clearing annotation command is not undo-able,
and some changes when
generating a netlist clears the undo/redo stack..
I am not sure this is only a matter of code (it could be fixed), but
this is a matter of usability:
Is it really possible to safely undo a "global" command from a sheet,
after a lot of other edition
commands made in other sheets.
I agree, this is the point. Also it is very useful having the undo on
operations that can be done on a lot of components (as an example you
can set the font
for all the fields at once in the component spreadsheet and a single
'undo' on this is very useful)
How to remember or accept all commands to undo/redo in other sheets?
A possible solution should be:
Push on the undo stack of every sheet a 'multiple sheet undo'
marker with an 'unique-id' for the operation.
When undoing something and this command is reached check if it is
present on top of the undo stack of every sheet
If yes, undo the operation on all the sheets (maybe adding a
dialog warning for the multiple sheet operation)
If no issue a warning and ask some user interaction to choose what
to do (skip undo, undo automatically all the operation done after the
current for other sheets, go on the sheets that have operations done
after this marker, list the things that will be undone etc...).
Remark:
From my point of view, the value of the reference field should be
*not modifiable* because:
1) changing this values usually breaks the board.
2) in complex hierarchies, this is not the value of the reference,
only the value currently
displayed on screen.
3) the ref and the unit number and closely associated in multiple
units per package components.
In the newer version of the tool I let the value of the reference
field be modified using the same code of the "edit" dialog, so the
complex hierarchy problem should be solved.
The reference ii "not deletable", but can be modified in the same way
you can change it in the 'edit' dialog.
Moreover the multiple edit of reference has a sense if you want to
un-annotate a group of components (as revert "Rxx" to "R?").
(A better solution should be having an 'unannotate selected
components' option and an 'annotate selected components', but I think
I'll leave this into my 'personal wish list' for a very long time).
Cheers,
Dino.
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help : https://help.launchpad.net/ListHelp