Tool Presets (was easily switch to last used tool)
This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
On bug 373060 - allow to easily switch to last used tool
I started working on "bug 373060 - allow to easily switch to last used tool" and ran into design problems, so am I taking this here. I already have a strong idea on what the feature should be https://bugzilla.gnome.org/show_bug.cgi?id=373060
At first, i tried to implement the feature like the swap_color feature inside app/core/gimpcontext.[ch], but on GimpTool. I've made a first patch implementing that straight GimpTool swapping and posted it on bugzilla (see comment #12), but I'm really not satisfied with this : it does only creates a redundant keyboard shortcut, which I really find useless.
So I crafted a new user scenario :
As a gimp user, I know existing shortcuts, I may even have rearranged them to fit better to my workflow, be more accessible on my kb layout and so on. When I want to switch to the last used tool, I really mean the last tool I found useful and actually used. Not the selection tool I switched on in the meantime to restrict the area I'm painting on, but this red grunge textured paintbrush I used before switching to a corrective tiny round with erase blending mode.
Hope you follow my thoughts.
The Idea is :
- switching to last actual GimpTool is not enough, it's not that useful
(wasting a key) and cannot track changes on the same tool's options, that is
the part where you tweak your current options to make the tiniest changes,
and cannot revert back to your previous options because you did not use
another tool.
+ So, let's make a snapshot of what the user actually uses - tool, colors,
brush, pattern, gradient, dynamics, tool options, ... - and keep it
somewhere to restore it later.
- Then it keeps track of every tool, every tiniest changes if possible to
track them, not the useful ones.
In a real painting area, that would mean switching back to your glass of
fresh diet coke instead of that big blue oiled brush, or switching to the
brush you are using with a more orthogonal tilt instead of the red one you
just used before. Stupid.
+ So we don't want to track every changes, we want to allow the user to
decide that this tool he is using right now is really useful, and that he
wants to restore it exactly as it is.
For users who owns a tablet with a stylus+eraser, this feature would just do the same as turning your pen upside down to use the other tool.
I quickly described a possible user interaction in comment #13 on bugzilla :
-------------------------------------------------------------------------
I think this feature should backup and restore a snapshot of the entire
active
GimpContext, not only the GimpTool.
User Interaction :
- Keyboard shortcut : X
- On first use, the active context is backed up but remains active.
- On next uses, the active context is backed up, and previously saved
context
is restored.
This would allow a more complete user-defined tool swapping instead of just swapping different GimpTools back and forth. --------------------------------------------------------------------------
Now I wonder how and where to implement it. The context systems seems more spread and complex than just swapping GimpTools as I did on my first attempt.
Furthermore, Mitch pointed out that gimp has had that kind of feature ages
ago, and I dug up a related commit from ChangeLog.pre-2-0 :
-------------------------------------------------------------------------
2003-02-25 Sven Neumann
* app/gui/tools-commands.[ch]: removed "Swap Contexts" functionality.
--------------------------------------------------------------------------
Sven, may you remember what was the reason of this removal ? (7 years ago)
Wise people, please advise me.
Damien.
On bug 373060 - allow to easily switch to last used tool
Furthermore, Mitch pointed out that gimp has had that kind of feature ages ago, and I dug up a related commit from ChangeLog.pre-2-0 : ------------------------------------------------------------------------- 2003-02-25 Sven Neumann
* app/gui/tools-commands.[ch]: removed "Swap Contexts" functionality.
-------------------------------------------------------------------------- Sven, may you remember what was the reason of this removal ? (7 years ago)
If I remember correctly, we discussed this change on the mailing-list back then. You might be able to find more in the archives. As far as I can see the reason to remove this feature was that no one found it useful.
Sven
On bug 373060 - allow to easily switch to last used tool
Damien wrote:
I started working on "bug 373060 - allow to easily switch to last used tool" and ran into design problems, so am I taking this here. I already have a strong idea on what the feature should be https://bugzilla.gnome.org/show_bug.cgi?id=373060
I think what needs to be filtered out of that bug is that users' need to
have a small ad-hoc arsenal of tools + tools settings + resources
(colors,
brushes, etc.) to quickly switch between to complete their current task.
the context swapping solution is both too simple with two (current/
previous)
tools + tools settings slots, and too opaque in how it works UI-wise
with only one shortcut to do two things: store and recall. so actually
two shortcuts are needed to do things. and those are only shortcuts,
where is the primary UI that it is a shortcut for?
another plan, long-term per-tool presets, are not the answer to this too, because the ad-hoc nature of the users' needs is not covered by it. it is all to static and targeted at persisting user's favourite tool settings over time.
looking at the nature of the "small ad-hoc arsenal of tools + tools settings + resources" requirement, I think that a brainstormed mix of something I proposed ages ago, 'blobs of paint' or file palette, see:
under "4. better painting tools"
and something yahvuu has been brainstorming:
so a file specific working palette where any tool+settings (one thing), resource, plugin+parameters, color can be dragged in, dragged out and recalled to be the thing to use. this would form that small ad-hoc arsenal.
--ps
founder + principal interaction architect man + machine interface works
http://mmiworks.net/blog : on interaction architecture
On bug 373060 - allow to easily switch to last used tool
On 09.01.2010 14:27, peter sikking wrote:
Damien wrote:
I started working on "bug 373060 - allow to easily switch to last used tool" and ran into design problems, so am I taking this here. I already have a strong idea on what the feature should be https://bugzilla.gnome.org/show_bug.cgi?id=373060
I think what needs to be filtered out of that bug is that users' need to have a small ad-hoc arsenal of tools + tools settings + resources (colors,
brushes, etc.) to quickly switch between to complete their current task.the context swapping solution is both too simple with two (current/ previous)
tools + tools settings slots, and too opaque in how it works UI-wise with only one shortcut to do two things: store and recall. so actually two shortcuts are needed to do things. and those are only shortcuts, where is the primary UI that it is a shortcut for?
Just an idea I had reading this:
I could imagine that a good solution would be some kind of registers,
where the actual tool and setting can be stored with a shortcut.
For example (I don't know if these shortcuts are already used by gimp, it's only to show the idea) I have my brush with the settings and store it with Strg+Shit+1 to register 1. Then I can switch to another tool (or change the settings) and store it with Strg+Shift+2 to register 2. Now I can switch with Strg+1 and Strg+2 between the both registers. So I have up to 10 registers with tools and settings that I can easily switch between.
The UI could be a register (sub)menu with store and load options for each register or even better an own dialog where all 10 (or only the used) registers are shown. Each with a small description of the tool that is stored there.
Marcel
On bug 373060 - allow to easily switch to last used tool
2010/1/9 peter sikking
looking at the nature of the "small ad-hoc arsenal of tools + tools settings + resources" requirement, I think that a brainstormed mix of something I proposed ages ago, 'blobs of paint' or file palette, see:
<
http://www.mmiworks.net/eng/publications/2007/05/lgm-top-gimp-user-requests_25.html >under "4. better painting tools"
and something yahvuu has been brainstorming:
so a file specific working palette where any tool+settings (one thing), resource, plugin+parameters, color can be dragged in, dragged out and recalled to be the thing to use. this would form that small ad-hoc arsenal.
I particularly like the idea of file specific paint blobs, though I think there can be a set of user/app-wide blobs that can share the same ui. Regarding the implementation, such a file specific set of tool presets would require to have them - gradients, brushes, palettes and fonts included - embedded in the xcf file. Is this currently possible ? If not, can this be afforded without breaking too much things ?
I would love to work on such a feature but I think I can't play it by ear. This would require a lot more work than what I did.
Damien.
On bug 373060 - allow to easily switch to last used tool
On Sat, 2010-01-09 at 15:59 +0100, Damien de Lemeny-Makedone wrote: [...]
Regarding the implementation, such a file specific set of tool presets would require to have them - gradients, brushes, palettes and fonts included - embedded in the xcf file. Is this currently possible ? If not, can this be afforded without breaking too much things ?
They could also be in an external user preferences file, or even in a per-folder file, and be more like "recent images"...
Another little usage scenario: For my part I've always wanted something like this with dodge/burn, because whenever I switch from dodge to burn on a grayscale engraving scan, I need to change the mode from highlights to shadows - the only combinations that really make much sense are dodge/highlights and burn/shadows, as otherwise you end up lightening the black stroke or leaving visible brush-strokes on the white background. I've never asked for it (Peter would say I was projecting my own really unusual workflow on other users :-) ) but the ability to save and switch between some combinations might be very useful.
Years ago you used to see people with masking tape on the top of their keyboard, so they could write down the settings they'd bound to function keys... you still do in banks or a lot of offices.
A nicer way to do this might be the ability to drag an icon from Tool Options onto the toolbox to make a "new tool" that's really a combination of default settings for an existing tool?
Liam
On bug 373060 - allow to easily switch to last used tool
hi all,
Liam R E Quin wrote:
A nicer way to do this might be the ability to drag an icon from Tool Options onto the toolbox to make a "new tool" that's really a combination of default settings for an existing tool?
in my mind, it's quite the other way round: An icon in the tool box represent a tool type and a Blob-o-Paint represents a fully setup tool.
Ennobling Blobs-o-Paint to be 'proxy' paint contexts, i.e. you can apply tools and filters to BoPs just like you do on a layer, seems to open up a host of IxD options:
- Wanna paint with saturation? Create a new BoP to specify the shape (i.e. spatial setup), then make it the current paint context and use Colors->Saturation on it. Eh voila, your 'magic paint' brush is ready.
BoPs could also be split to represent 'double action' settings - then users can build their own dodge/burn, blur/sharpen, grain merge/extract tools etc.
regards, yahvuu
On bug 373060 - allow to easily switch to last used tool
Liam wrote:
Another little usage scenario:
For my part I've always wanted something like this with dodge/burn, because whenever I switch from dodge to burn on a grayscale engraving scan, I need to change the mode from highlights to shadows - the only combinations that really make much sense are dodge/highlights and burn/shadows, as otherwise you end up lightening the black stroke or leaving visible brush-strokes on the white background. I've never asked for it (Peter would say I was projecting my own really unusual workflow on other users :-) ) but the ability to save and switch between some combinations might be very useful.
would you not be helped with 2 user presets for the dodge/burn tool, which you would choose alternating during using the tool?
so per-tool presets would be the solution for your case (and, yes, millions of other cases where users _always_ use a couple of options setups alternatingly with a single tool)
--ps
founder + principal interaction architect man + machine interface works
http://mmiworks.net/blog : on interaction architecture
On bug 373060 - allow to easily switch to last used tool
On Sat, Jan 9, 2010 at 8:21 PM, peter sikking wrote:
would you not be helped with 2 user presets for the dodge/burn tool, which you would choose alternating during using the tool?
so per-tool presets would be the solution for your case (and, yes, millions of other cases where users _always_ use a couple of options setups alternatingly with a single tool)
May it be noted that the tool presets of this nature already exist. they are just terrible to use. those little buttons and menus in tool options suck. So perhaps we could just start with making those tool presets usable?
On bug 373060 - allow to easily switch to last used tool
2010/1/9 Alexia Death
On Sat, Jan 9, 2010 at 8:21 PM, peter sikking wrote:
would you not be helped with 2 user presets for the dodge/burn tool, which you would choose alternating during using the tool?
so per-tool presets would be the solution for your case (and, yes, millions of other cases where users _always_ use a couple of options setups alternatingly with a single tool)
May it be noted that the tool presets of this nature already exist. they are just terrible to use. those little buttons and menus in tool options suck. So perhaps we could just start with making those tool presets usable?
Hah, I just didn't think about those, but you're right : they do the per-tool-presets job quite well.
Tool presets ui sucks a lot, but I'd say that all presets ui suck.
I mean : if you want to quickly switch between presets and tune them, you
have to keep a _lot_ of dockables on screen. Otherwise it is all switching
between
dockables, not to mention that you can't create a new
brush/gradient/dynamics/foo
from the foo-editor : you have to go back to the selector and click the
"new" button,
which will bring you back to the editor.
The two available options are either a waste of space or a waste of time,
that sucks.
IMO, selectors and editors should really get merged, or editors should have
a selector widget at least.
I feel I'm going way off topic, but every presets UI enhancement seems related to this bug.
Damien.
On bug 373060 - allow to easily switch to last used tool
On Sat, 2010-01-09 at 19:21 +0100, peter sikking wrote:
would you not be helped with 2 user presets for the dodge/burn tool, which you would choose alternating during using the tool?
Yes, especially if I could bind keystrokes to switch to them.
Liam
Tool Presets (was easily switch to last used tool)
On Sat, Jan 9, 2010 at 8:21 PM, peter sikking wrote:
so per-tool presets would be the solution for your case
Alexia Death writes:
May it be noted that the tool presets of this nature already exist. they are just terrible to use. those little buttons and menus in tool options suck. So perhaps we could just start with making those tool presets usable?
The biggest problem I have with the current tool preset UI is that Save and Restore look almost identical, but Save is destructive.
More than once, I've clicked on Save intending to choose (Restore) one of my presets. A menu pops up with a list of the current settings, so I choose the one I want -- and I end up overwriting that setting.
And there's no Undo, so now I have to stop what I'm doing, go figure out what those settings were, set them by hand, Save them again, and finally I can get on with editing the image.
I finally learned never to click either of those buttons without first hovering over it and waiting for the tooltip, to make sure it's absolutely positively the right button.
Without any real redesign, it would help a lot to have a heading on that menu that says "Save options" in bold -- so it's possible to tell that you're about to overwrite something before you do so.
...Akkana
Tool Presets (was easily switch to last used tool)
On Sun, Jan 10, 2010 at 8:11 PM, Akkana Peck wrote:
The biggest problem I have with the current tool preset UI is that Save and Restore look almost identical, but Save is destructive.
My biggest problem is that the items in the menus are so damn small and hard to navigate. All things that pop up are pain like that. And I would LOVE to tag them. My dream is a standard resource selector type dock for them...