richsmith / sexytopo

The SexyTopo cave surveying app for Android
GNU General Public License v3.0
30 stars 13 forks source link

Implement undo redo for linking of surveys and toggle left/right #133

Open CaverBruce opened 4 years ago

CaverBruce commented 4 years ago

Undo redo is not implemented for toggling elevation drawing of legs left and right. Sometimes I find this can be difficult to choose the right station for the purposes of backing out of a bad choice. Adding left/right to the set of actions tracked and managed by undo redo should solve this problem.

Similarly, undo redo does not track or work for linking of surveys. The user could not figure out how to edit the station linked to (edit the 'equate statement' in Therion speak). They wanted to be able to tap undo to back out of what they had done. (The user could not figure out how to unlink them, but on tinkering I see that tapping the linked station gives that option. So this gives an effective workaround to not being able to edit the linked station.)

richsmith commented 4 years ago

I'm not sure about this. Currently the undo/redo buttons are just for sketch manipulation. Adding data changes (e.g. LR switchbacks) into the mix would be a big change. Would you then expect undo/redo to work for data changes? Leg readings? Station renamings? Maybe it should for all those, but it would take a fair bit of work.

CaverBruce commented 4 years ago

I think the intuitive paradigm would be a single undo redo stack that incorporated every possible user initiated edit. This may well be problematic as one may want to isolate sketch edit actions from all other data edits. I would prefer the latter. I think PocketTopo does it something like the latter, but at least some of (or most of??) the data edits are not tracked.

I don't think undo redo of incoming disto data should be allowed, but undo redo of manual data table input and edits should/could be. Appreciate it is likely to be a challenge, and maybe therefore not high priority. The main thing is that the help file reflect accurately what is tracked by undo redo and what is not. That way users can be forewarned about what actions are not tracked, and save before taking those actions, thus giving them a 'manual failsafe undo option'.