* Stéphane Gourichon <[email protected]> [11-09-14 06:34]: > Le 09/11/2014 04:17, Patrick Shanahan a écrit : > > > >> 'Start Again' is simply achieved by using the module reset button. > >> 'Eliminate the Module entirely' by stepping back in the History list and > >> then > >> compressing the stack. > > Yes, I really understand this but very time consuming, mouse clicking, > > looking for modules and cancels everything you have done withing the > > module rather than just the *last* change. > > > > tks, > > Hello all, > > There is a little room for improvement here IMHO. > The history stack is more powerful than a simple undo (and preserved > across sessions, that's uncommon). > Yet for use as an undo it's sometimes too coarse-grained because it > creates a new history entry only on using different modules. > > ## The history stack > > Patrick, I read that you don't want to remember and manually > apply/unapply settings back and forth. > > One can notice that the history stack feels very much like an undo > stack: it remembers the past, allows to walk towards past and back to > present, but if you step in between and change something, the top of the > stack up to the present is forgotten.
Therein lies mis-understanding or mis-communication :^( I do not want to wander thru history and make changes but *only* the *last* change, as: if I add brightness, to return to the previous brightness level and not to the *default* brightness level, or making blacklevel changes or midlevel or .... > There could be a technically simple solution that is very similar to > what actually happens in the undo of many programs: create an item in > history stack whenever anything is changed in any module. > Trouble is: recording every little change will bloat the stack a lot, > making it irrelevant. Only maintain the changes for the *current* module and compress them upon leaving that module > So there may exist a solution that could hint the stack to remember > relevant changes, so that the history remains lean and useful, and the > user can easily undo/redo at a suitable granularity. That is much broader than my intention! > ## A quick experiment > > Before diving into code, may I suggest to try a trick we can try without > changing any code. It can be a step towards a future improvement: > > * Suppose you are working on module A and you like to record a state, to > be able to undo it. > * The temporary trick is there: just enable or disable another module > that by default does nothing and that *currently* does nothing. There > are many, it's just a hack at this point: "channel mixer", "color > contrast", "color correction", "tone curve", "zone system", "levels", > "contrast brightness saturation", even "exposure". Doing that will > create another entry in the history stack. > * Now you can try other settings for module A. They will be recorded > into a new history entry. > * You can undo/redo your changes in module A by clicking in the history > stack in the last entries labelled with name of module A. > * You can extend that to any number of changes in module A. > > ## Experiment cost and benefit > > All in all, the trick costs *one click* on the "enable/disable" button > of any of the modules named above. It works because it triggers the > creation of a history entry. > > We know the small cost, is there benefit ? > > If the trick offers no benefit, then I have not understood your need, > can you refine ? > > If this trick offers a benefit, it is unnatural, there may be simple > changes to do in code. That seems pausable but involved compared to <ctrl><z>. My intention is to improve or make more effecient the work flow rather than more convoluted. > ## How to implement > > * in history panel, add a toggle button. That button could be labelled > "Keep this state" or something better. It would mean to the code "on > next operation, when trying to figure out if we need to create a new > history entry, just create a new history entry, like if next operation > was on a module different from the last". Button state would be reset > after performing operation. > * map some keystrokes to "keep this state", "move to previous history > entry", "move to next history entry". > > ## New state > > Then user workflow would be: > * work until you have something interesting > * press ctrl-"keep this state" > * make adjustments to another variant > * press ctrl-"move to previous history entry", and ctrl-"move to next > history entry" to walk back and forth. > * continue if needed with several variants, or just select one and > compress the stack. > > All in all, something quick and easy, that feels like an undo, without > bloat to the history stack. > > What do you think ? That appears much closer to my thoughts. I am really *only* interested in stepping back the single *last* change rather than creating a map or history to travel further back. I hope I have made my request much more clear. tks, -- (paka)Patrick Shanahan Plainfield, Indiana, USA @ptilopteri http://en.opensuse.org openSUSE Community Member facebook/ptilopteri http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://linuxcounter.net ------------------------------------------------------------------------------ _______________________________________________ Darktable-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/darktable-users
