UI: Add label to sculpt symmetrize options #112915

Merged
Raul Fernandez Hernandez merged 2 commits from persun/blender:symmetrize_menu into main 2024-03-01 22:28:57 +01:00
Contributor

Add label to the sculpt symmetrize options. With no label user may confuse if other symmetry options above are related to the symmetrize operation.

Also reorder them so the actual operation button to go bottom.

Current PR
sculpt_symmetrize_current.png sculpt_symmetrize_pr.png
Add label to the sculpt symmetrize options. With no label user may confuse if other symmetry options above are related to the symmetrize operation. Also reorder them so the actual operation button to go bottom. | Current | PR | |--|--| | ![sculpt_symmetrize_current.png](attachments/a537ee10-2939-4c72-bf55-25a4bc0c4547) | ![sculpt_symmetrize_pr.png](/attachments/e2443598-67e8-44e9-9c51-d460f0584445) |
Sun Kim added 1 commit 2023-09-26 17:35:53 +02:00
d5c9a5ad60 Add label to symmetrize panel
Also reorder so the actual operation button to go bottom.
Member

Thanks for this improvement! I think it would be good to widen the popover menu too.
Then the header label would be further left and stick out from the other text.
And the "Merge Distance" would be readable in full and have more space to the left.

Look at the brush settings popover for example. There it's less cramped and labels are better distinguished from other text.

Thanks for this improvement! I think it would be good to widen the popover menu too. Then the header label would be further left and stick out from the other text. And the "Merge Distance" would be readable in full and have more space to the left. Look at the brush settings popover for example. There it's less cramped and labels are better distinguished from other text.
Julien Kaspar requested review from Julien Kaspar 2023-09-26 19:32:38 +02:00
Julien Kaspar added the
Module
Sculpt, Paint & Texture
Interest
User Interface
labels 2023-09-26 19:33:06 +02:00
Sun Kim added 1 commit 2023-09-26 20:15:56 +02:00
27c3afd109 Widen symmetry popover
Make it less cramped and readable
Author
Contributor

I think it would be good to widen the popover menu too.

Yeah, it looks more readable!

sculpt_symmetrize_pr.png

This makes sculpt mode's symmetry popover even bigger than those of vertex/weight paint modes, but I guess it's not much of a deal.

> I think it would be good to widen the popover menu too. Yeah, it looks more readable! ![sculpt_symmetrize_pr.png](/attachments/e2443598-67e8-44e9-9c51-d460f0584445) This makes sculpt mode's symmetry popover even bigger than those of vertex/weight paint modes, but I guess it's not much of a deal.
Julien Kaspar approved these changes 2023-09-27 10:51:36 +02:00
Julien Kaspar left a comment
Member

Looks fantastic! It's fine if the modes differ in size with their mirror popovers.

Looks fantastic! It's fine if the modes differ in size with their mirror popovers.
Member

Probably a good chance to get rid of the duplicate XYZ symmetry options there and in other symmetry panels:

duplicate

Perhaps also introduce a title for the popover, like others have:

title

Probably a good chance to get rid of the duplicate `XYZ` symmetry options there and in other symmetry panels: ![duplicate](/attachments/aefd9ca8-66f5-4380-b9d6-2edd83c27627) Perhaps also introduce a title for the popover, like others have: ![title](/attachments/667812d3-3ede-4815-8126-38696dabc1f0)
Member

Probably a good chance to get rid of the duplicate XYZ symmetry options there and in other symmetry panels

I'd say that's a discussion for another day. Personally I prefer that they are exposed.
But then they could even be removed from the popover? Not sure yet.

> Probably a good chance to get rid of the duplicate XYZ symmetry options there and in other symmetry panels I'd say that's a discussion for another day. Personally I prefer that they are exposed. But then they could even be removed from the popover? Not sure yet.
Author
Contributor

Speaking of doing more, how do you think about reordering the above options too?

sculpt_symmetry_reorder2.png

Speaking of doing more, how do you think about reordering the above options too? ![sculpt_symmetry_reorder2.png](/attachments/d5fead4a-a77f-483c-ac83-18313ec3bed0)
Member

@persun Doesn't look bad. Having related setting grouped together makes sense.
Feel free to make another PR for that.
Only suggestions there would be:

  • Feather should be under Mirror, since they are directly related
  • Tiling settings could also have it's own su-panel like Lock
  • We should avoid having a setting with a label of the same name
  • Tbh Lock doesn't really belong in this popover when I think about it. It doesn't share the same context as the other symmetry options. It could just as well be in the Options popover.
@persun Doesn't look bad. Having related setting grouped together makes sense. Feel free to make another PR for that. Only suggestions there would be: - Feather should be under Mirror, since they are directly related - Tiling settings could also have it's own su-panel like Lock - We should avoid having a setting with a label of the same name - Tbh Lock doesn't really belong in this popover when I think about it. It doesn't share the same context as the other symmetry options. It could just as well be in the Options popover.
Author
Contributor

Some thoughts. (Should have posted this alongside the above post!)

  • Will the lock option being below annoy someone? I can't think of any use case that requires constant change of lock axes, but maybe someone can.

  • Is giving a header to the lonely the lock option is overkill? (Lock > Lock?) I thought about just giving a separator instead, but header gives a clear separation.

  • Maybe Symmetrize operations should go above the lock option?

Some thoughts. (Should have posted this alongside the above post!) - Will the lock option being below annoy someone? I can't think of any use case that requires constant change of lock axes, but maybe someone can. - Is giving a header to the lonely the lock option is overkill? (Lock > Lock?) I thought about just giving a separator instead, but header gives a clear separation. - Maybe Symmetrize operations should go above the lock option?
Author
Contributor

@JulienKaspar Okay, I'll think about those for another PR. Thanks for the review and inputs!

@JulienKaspar Okay, I'll think about those for another PR. Thanks for the review and inputs!
Author
Contributor

Should this go to 4.0 or main (4.1)? I think this is a small enough change for 4.0.

Should this go to 4.0 or main (4.1)? I think this is a small enough change for 4.0.
Member

At this point in time this is for 4.1.
@pablovazquez Would you mind merging this PR?

At this point in time this is for 4.1. @pablovazquez Would you mind merging this PR?
Hans Goudey added this to the Sculpt, Paint & Texture project 2023-11-30 20:42:58 +01:00
Member

Hi! Sorry for the late reply, but I now remember why I didn't approve it right away since code-wise is so simple, I had a concern about how it'd look in the sidebar.

sidebar

While it looks okay in the popover, it doesn't look good in the sidebar since we don't usually have floating labels in a single line.

I think the best way to go would be to make it into a subpanel called Symmetrize. It'd look basically the same in the popover, but more tidy in the sidebar.

@JulienKaspar Would you make such a subpanel closed by default to save vertical space? Or always open (only in the sidebar of course, since popover subpanels can't be closed).

Hi! Sorry for the late reply, but I now remember why I didn't approve it right away since code-wise is so simple, I had a concern about how it'd look in the sidebar. ![sidebar](/attachments/c37fb408-643f-4dfe-9723-6b8a9fb19c11) While it looks okay in the popover, it doesn't look good in the sidebar since we don't usually have floating labels in a single line. I think the best way to go would be to make it into a subpanel called `Symmetrize`. It'd look basically the same in the popover, but more tidy in the sidebar. @JulienKaspar Would you make such a subpanel closed by default to save vertical space? Or always open (only in the sidebar of course, since popover subpanels can't be closed).
100 KiB
Member

@JulienKaspar Would you make such a subpanel closed by default to save vertical space? Or always open (only in the sidebar of course, since popover subpanels can't be closed).

Having this as a subpanel is fine 👍
I think it would be better to have it open by default, since it is used quite frequently.

> @JulienKaspar Would you make such a subpanel closed by default to save vertical space? Or always open (only in the sidebar of course, since popover subpanels can't be closed). Having this as a subpanel is fine 👍 I think it would be better to have it open by default, since it is used quite frequently.
Author
Contributor

Is there any way to popover and sidebar to use the same subpanel, when the popover is a different class? Or should I make a subpanel class for each?

I first tried a way without making a class for each, I'm not sure which is more preferable. draw_sculpt_symmetrize is a function to draw symmetrize options.

class VIEW3D_PT_sculpt_symmetry(Panel, View3DPaintPanel):
    bl_context = ".sculpt_mode"  # dot on purpose (access from topbar)
    bl_label = "Symmetry"
    bl_options = {'DEFAULT_CLOSED'}

#--- [snip] ---

        layout.prop(sculpt, "use_symmetry_feather", text="Feather")
        layout.prop(sculpt, "radial_symmetry", text="Radial")
        layout.prop(sculpt, "tile_offset", text="Tile Offset")

        if context.region.type == 'TOOL_HEADER':
            layout.label(text="Symmetrize")
            draw_sculpt_symmetrize(layout, sculpt)


class VIEW3D_PT_sculpt_symmetry_symmetrize(Panel, View3DPaintPanel):
    bl_context = ".sculpt_mode"  # dot on purpose (access from topbar)
    bl_parent_id = "VIEW3D_PT_sculpt_symmetry"
    bl_label = "Symmetrize"

    @classmethod
    def poll(cls, context):
        return (context.sculpt_object and context.tool_settings.sculpt)

    def draw(self, context):
        layout = self.layout
        layout.use_property_split = True
        layout.use_property_decorate = False

        sculpt = context.tool_settings.sculpt

        draw_sculpt_symmetrize(layout, sculpt)

sculpt_symmetrize_03.png

Is there any way to popover and sidebar to use the same subpanel, when the popover is a different class? Or should I make a subpanel class for each? I first tried a way without making a class for each, I'm not sure which is more preferable. `draw_sculpt_symmetrize` is a function to draw symmetrize options. ``` python class VIEW3D_PT_sculpt_symmetry(Panel, View3DPaintPanel): bl_context = ".sculpt_mode" # dot on purpose (access from topbar) bl_label = "Symmetry" bl_options = {'DEFAULT_CLOSED'} #--- [snip] --- layout.prop(sculpt, "use_symmetry_feather", text="Feather") layout.prop(sculpt, "radial_symmetry", text="Radial") layout.prop(sculpt, "tile_offset", text="Tile Offset") if context.region.type == 'TOOL_HEADER': layout.label(text="Symmetrize") draw_sculpt_symmetrize(layout, sculpt) class VIEW3D_PT_sculpt_symmetry_symmetrize(Panel, View3DPaintPanel): bl_context = ".sculpt_mode" # dot on purpose (access from topbar) bl_parent_id = "VIEW3D_PT_sculpt_symmetry" bl_label = "Symmetrize" @classmethod def poll(cls, context): return (context.sculpt_object and context.tool_settings.sculpt) def draw(self, context): layout = self.layout layout.use_property_split = True layout.use_property_decorate = False sculpt = context.tool_settings.sculpt draw_sculpt_symmetrize(layout, sculpt) ``` ![sculpt_symmetrize_03.png](/attachments/c8fa272f-ac0a-4b0b-ac38-d16b1c373ed2)
Contributor

@persun Its better and cleaner if you use new layout panels introduced in 4.1. That way you can have subpanel directly inside panel and don't need to register anything.
https://developer.blender.org/docs/release_notes/4.1/python_api/#layout-panels

@persun Its better and cleaner if you use new layout panels introduced in 4.1. That way you can have subpanel directly inside panel and don't need to register anything. https://developer.blender.org/docs/release_notes/4.1/python_api/#layout-panels
Author
Contributor

@nickberckley Hi, thanks for the suggestion. It's indeed cleaner and simpler to use, but I noticed a few issues.

  1. Visual inconsistencies with other subpanels.

sculpt_symmetrize_exp.png

  1. Crash when I try to open the popover. Probably it's not supported there? Maybe I should report this as a bug.
@nickberckley Hi, thanks for the suggestion. It's indeed cleaner and simpler to use, but I noticed a few issues. 1. Visual inconsistencies with other subpanels. ![sculpt_symmetrize_exp.png](/attachments/2c7cb4d7-8e75-4f8c-9470-ceb95d789ca5) 2. Crash when I try to open the popover. Probably it's not supported there? Maybe I should report this as a bug.
Contributor

Yeah I would, coloring is changing in modifiers tab where this panels were originally used, its probably an oversight that it doesnt darken in regular panels as well

Yeah I would, coloring is changing in modifiers tab where this panels were originally used, its probably an oversight that it doesnt darken in regular panels as well
Member

Hey @persun, is there are blocker to landing this? It seems like a nice small UI change.

Hey @persun, is there are blocker to landing this? It seems like a nice small UI change.
Raul Fernandez Hernandez approved these changes 2024-03-01 22:26:53 +01:00
Raul Fernandez Hernandez merged commit 8bcfe66d22 into main 2024-03-01 22:28:57 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#112915
No description provided.