Repository navigation
masks: redesign the mask panel header - #22655
Conversation
TurboGit
left a comment
There was a problem hiding this comment.
I like it, I'll let some time before merging if some other devs want to report about their feeling.
🤣 By default, the mask panel is placed at the top when it's moved to the utility panel, where it looks less awkward. Another consideration is that moving the panel in the utility panel is optional, so if someone chooses to move it and keep it there probably they are not too disconcerted. But I agree that it does not blend (pun intended) well in the utilities panel. We could also keep the actual header with the icons below the expander. The downside is that all the actions would only be available when the panel is expanded. If you think that this is a reasonable compromise, I am happy to implement that. |
|
I would say put it at the bottom and just call it masking. That way everyone familiar with mask manager will look in the right place for it. I tried separate mask module with not restricting darkroom to one module open at a time to see how the mask module handles it. It appears to go to the last "selected" module. I had 2 modules open, then scrolled to the first module I opened. I clicked on the mask module and the latest module that I had opened scrolled back into focus. I always use one module open at a time, so there wouldn't be any confusion about which module the mask module would apply to, but if you have multiple modules open in darkroom should we somehow show which module the mask module thinks is the target module? |
It was like that before this change. The main issue with that is that to do it properly the header would need two rows, one for the title and one for the controls. Otherwise, the label is generally unreadable, and therefore it only adds clutter and little value. Or, the controls need to move below the header, as I suggested before. Also in this case, if the "masking" label is to be there, then two rows would be needed for the header. Furthermore, as I explained in the OP, I think that it is a responsibility of the darkroom to make it inequivocabile which module, if any, has the focus. Currently it fails short of that. Themes can help with that (e.g., focused border options), and layout changes could further improve it. This is not just about the mask panel. There are many actions that rely on a focused module, so ensuring that the UI is very clear about it should be a UI core principle. |
|
Indeed when on the left panel it looks awkward. Maybe just add "masking" or "mask" in the module name in this case? |
|
The masking icon in the header is a great change. I think that if docked to the left panel it needs a written out name, too. Having just the icons as the header looks awkward in the left panel. When embedded with the module I think the module header does need some visual separation from the module itself. Be it a fine line above or - similarily to the styling of the current masking setup - a slightly brighter tone. Incidentally: Will there be another "styling"-pass? You asked for feedback on pixls some time ago but I just wanted to ask at which point you are in that specific loop; whether it makes sense to give feedback on the general styling at this point. |
2b53b1e to
3d580cd
Compare
|
@TurboGit @wpferguson PTAL, now it's like this when hosted in the utility module:
I moved all the action buttons on a separate row. Only the on/off toggle stays, and replaces the hamburger menu. The module is automatically collapsed and disabled if no module has focus. |
Rework the header to make more space for the icons and to provide a more distinctive look to the mask panel. Removed the module name. It was there to ensure that users are aware of which mask they are editing, but then it's not the mask panel's responsibility to ensure that the focused module is obvious. Toggle. The on/off switch uses the same 'domino' icon used for the toolbar, and shares the same language (filled and accented: on, outlined and dimmed: off). Layout (embedded or docked): single-row layout, consistent regardless of where the panel is hosted and left-right symmetric. When embedded, the header now blends into the module background (so that it is clear that it is related to the module) and provides a more clear visual separation with modules below it, like the classic mask-type selector did. Layout (utility): Look more like a utility module. Wire the "reset" button to "reset mask", and replace the hamburger menu with the "domino" icon for on/off toggle. All other controls are moved to a separate row below the header. Buttons. "edit on canvas" and "solo edit" stay on the header without shapes, greyed out, instead of appearing with the first shape. While the module is off, the overlay and the eye are greyed out, and their shortcuts refuse with a message, since the center view does not render the module. Mask display. The overlay button only displays the mask: the shift+click "color channel" view is gone, as parametric channels are visualized through a different code path now.
3d580cd to
b6450a0
Compare
|
@anoderay Added a separator to the embedded panel as you suggested, using the same color used for section headings
Sure, there are no passes really, if you have suggestions for improvement go ahead. Also, since the code is in master now, feel free to propose PRs. |



Summary
Rework the header to make more space for the icons and to provide a more distinctive look to the mask panel.
Utility module:
Docked on canvas (left and right)
Embedded, expanded
Embedded, collapsed (on and off)
Removed the module name. It was there to ensure that users are aware of which mask they are editing, but then it's not the mask panel's responsibility to ensure that the focused module is obvious.
Single-row layout, consistent regardless of where the panel is hosted and left-right symmetric. When embedded, the header now blends into the module background (so that it is clear that it is related to the module) and provides a more clear visual separation with modules below it, like the classic mask-type selector did.
Replaced on/off switch icon. The on/off switch uses the same 'domino' icon used for the toolbar, and shares the same language (filled and accented: on, outlined and dimmed: off).
Buttons behavior. "edit on canvas" and "solo edit" stay on the header without shapes, greyed out, instead of appearing with the first shape. While the module is off, the overlay and the eye are greyed out, and their shortcuts refuse with a message, since the center view does not render the module.
Code cleanup. The overlay button only displays the mask: the shift+click "color channel" view is gone, as parametric channels are visualized through a different code path now.
Referenced issue
N/A
Checklist
src/tests/integration/where the pixelpipe is touched, ordarktable-clias a headless smoke test._(), new preferences are registered indata/darktableconfig.xml.in.RELEASE_NOTES.mdentry was added (only needed if fixing an issue in a release). Do not reference GitHub issues.AI assistance
Co-authored with Claude.