* 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

Reply via email to