-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preset names lost when applying style #15805
Comments
Most probably because the name is not hand-edited (0 in |
Indeed, |
Right, confusing but that's the way presets are matched (i.e. checking iop_params and blend_params). The only way to get stable naming is to hand-edit the name, so in your case create your own presets an create the style based on it. This was discussed and we don't want to be using the preset name if hand-edited is not set, it was too disturbing for some people. |
The style includes the preset name. So if there is no match by iop_params and blend_params, maybe fall back to the stored name, even if multi_name_hand_edited is not set? Otherwise, there is no point in storing multi_name in the style, unless multi_name_hand_edited = 1 (since it will never be used). If multi_name were only stored when hand-edited, multi_name_hand_edited could be removed, as multi_name != null would imply hand_edited. |
No that was the scenario that was discussed and discarded as disturbing.
There is a point, if the params & blend_params matches then the multi-name will be used. At the time the preset was created it was true. In the case at hand the blend_params has changed, so the actual style entry does not match the stored preset anymore. You can refresh your style if you want to see the stored multi-name again. |
I'll try to summarise the current situation, which is very complicated and, I think, contradictory. I'll get back later, probably not today. |
OK, here is what I have found. I think it is no wonder people are confused.
One can create a preset from the current state of the module. When applying a preset, the module instance it is applied to may or may not have a manually edited name.
In short, once a manually set name is applied, it is cast in stone, not even resetting the module can remove it. One can delete the manually set name, though, to remove it. It is also possible to simply edit the settings of a module so that they happen to match a preset. If and only if the module instance has no manually set name, and the current module params match those stored in a preset:
Now, one can also create a style. In the style, one can save a module, whose settings may or may not match one (or more) of the presets; the preset itself may contain a manually set module instance name, and the module instance may have a manually set name.
|
I think the word you're looking for is incomprehensible. |
If you say so. I did offer a few suggestions to make it less confusing, but IMO it was just getting worse as the discussion continued, so I gave up in the knowledge that I could switch it off. I still haven't documented it in the manual yet though because it's hard to describe beyond a simple sentence "the module label might get automatically updated to something unless you disable the preference". It's not even possible to examine the properties of the preset to work out what will happen, since some of the behaviour is dependent on hidden db fields. |
Let's start step-by-step and number the paragraph for easier reference.
This is good, right?
This is also good, right? |
That could be seen as good or not. A module can be named not according to what it does but the part of the image it act on. For example That's the explanation, if a module has been named explicitly we don't overwrite it. What's your take on this? Ok? Not ok? |
My opinion remains that the autonaming should be entirely controllable from within the preset dialog and then any behaviour can be understood just by looking at the preset.
Any manually added label always takes precedence. |
I'd prefer to concentrate first on the problem than proposing solutions. The problem may be clear to you but not to me. That's why I'm trying to get OK or NOT OK on the statement listed by @kofa73. When we'll have a clear idea of what is wrong or annoying then we will try to find a solution. Having new ticks and field is maybe not the best solution GUI wise. |
The problem for me is that there's nowhere on the UI that I can find out what will happen when I add a preset, and nowhere that I can set/change it on a per-preset basis. That makes it hard if not impossible to document what will happen as it may well depend on something I did inadvertently (changed the label) when creating the preset. The only way to fix that is to drop the preset and create a new one (or manually edit the db). I guess this issue impacts all three points
The reason I jump to the solution is that it's easier to get my head round than trying to describe the issues with the current solution. I hope this has clarified things. From an implementation point-of-view, I'd say that the cleanest thing is to only store manually edited names against the module instance, otherwise (if the manual name is empty) look up the name that's stored against the preset (and in my suggested implementation that will only ever come from a single user-exposed field, that may or may not be the same as the preset name).
Please don't close off this option without discussion. You may not like making the dialog bigger but the alternative is confusing functionality, and IMO this is much worse. Edit: Perhaps my second suggested tick box is unnecessary |
If we're really looking for a clean UI I can't really see much point to the "only show this preset" tickbox or the "description" field so we could remove them? |
I think hand-edited names should not be saved to presets:
|
Sorry about the slow response. I consider 1 as 'good', 2 as 'bad' (see my post above regarding contexts), 3 as 'bad' (but I see your point, so I'm no longer so convinced). I think there's no universal solution, and thorough documentation with an explanation (like yours for 3). |
For me, point 2 is good: it is particularly useful for auto-apply presets (that is the only way to define a manually set name that will stay consistent between images, to later copy-paste parameters easily), see initial discussion in #13982. I agree that the way to edit the label that will be save is: |
Describe the bug
I have a preset that contains 2 instances of diffuse or sharpen, both built-in ones:
Previously, when I applied the style, the two instances were shown accordingly. Now, they are shown as:

The style contains:
Steps to reproduce
Apply the attached style to a photo.
Expected behavior
Display the module instance names
Logfile | Screenshot | Screencast
No response
Commit
No response
Where did you obtain darktable from?
self compiled
darktable version
4.5.0+1391~g0a39901aa5-dirty (because of the tone-eq experiment from #15743 (comment))
What OS are you using?
Linux
What is the version of your OS?
Ubuntu 23.10
Describe your system?
No response
Are you using OpenCL GPU in darktable?
Yes
If yes, what is the GPU card and driver?
not relevant
Please provide additional context if applicable. You can attach files too, but might need to rename to .txt or .zip
000-sigmoid standard.dtstyle.txt
The text was updated successfully, but these errors were encountered: