UI: Reorganize 'Select' menus in editors #121337

Merged
Pablo Vazquez merged 5 commits from nickberckley/blender:select-menus into main 2024-05-13 16:27:35 +02:00
Contributor

This PR reorganizes (and in some cases adds missing operators to) all 'Select' menus in Blender editors (except 3D Viewport).
Goal of this change is to make menus as consistent as possible, and to group & sort items according to a certain logic, which will be easy to remember and users can always expect certain items to be always at same place in every editor.

Selection operators that are universal to all editors, and users are expecting to work everywhere are grouped together at the top of the menus, things such as All/None/Invert, gesture selections, More/Less and etc.

Options are separated in groups like this

image

Editor or mode specific operators always come after general selection tools.

Changes include:

UV Editor:

  1. Added missing "Lasso Select" operators
  2. Expose "Select Similar" operator options in the menu, similar to 3D viewport
  3. "Select Pinned" operator was named "Selected Pinned", corrected it.
Before After
image image

Node Editors:

  1. Replaced (De)select toggle operator with two separate All and None operators and moved at top alongside Invert
  2. Expose "Select Grouped" operator options in the menu, similar to 3D viewport
    (note that last two operators in the images are from Node Wrangler addon)
Before After
image image

VSE:

  1. Rename "Grouped" and "Linked" to "Select Grouped" and "Select Linked" to match other editors
  2. Take Select More & Less operators out of "Select Linked" menu to match other editors
  3. Remove "Select Linked" menu, as it only contains one item now, and expose that one operator directly
Before After
image image

Movie Clip Editor:

  1. Replaced (De)select toggle operator with two separate All and None operators and moved at top alongside Invert
  2. Select menu is shown even if there is no clip loaded, but everything is greyed out. This is more consistent with other editors
  3. Added "Select" menu in Clip Editor's "Graph" mode wih available options (Box Select is available in here, but operator seems broken, so it's not added in the menu)
Before After
image image

image


Anim Editors (Dope Sheet & Graph Editor):

  1. Changed order of items to match general logic
  2. Renamed "Select More" and "Select Less" to just "More" and "Less" to match other editors
Before After
image image

File Browser:

  1. Rename "Inverse" to "Invert" for consistency
This PR reorganizes (and in some cases adds missing operators to) all 'Select' menus in Blender editors (except 3D Viewport). Goal of this change is to make menus as consistent as possible, and to group & sort items according to a certain logic, which will be easy to remember and users can always expect certain items to be always at same place in every editor. Selection operators that are universal to all editors, and users are expecting to work everywhere are grouped together at the top of the menus, things such as All/None/Invert, gesture selections, More/Less and etc. Options are separated in groups like this ![image](/attachments/4cc26f9d-f5f2-43f2-91cb-40b06cfa37ee) Editor or mode specific operators always come after general selection tools. Changes include: ------ **UV Editor:** 1. Added missing "Lasso Select" operators 2. Expose "Select Similar" operator options in the menu, similar to 3D viewport 3. "Select Pinned" operator was named "Selected Pinned", corrected it. | Before | After | | -------- | -------- | | ![image](/attachments/15646a0c-7a00-49dc-9fc8-8bff5443bcc2) | ![image](/attachments/91c05c04-c0f2-4398-bad0-223d31379564) | --- **Node Editors:** 1. Replaced (De)select toggle operator with two separate All and None operators and moved at top alongside Invert 2. Expose "Select Grouped" operator options in the menu, similar to 3D viewport (note that last two operators in the images are from Node Wrangler addon) | Before | After | | -------- | -------- | | ![image](/attachments/621a6930-9694-4da1-a4a4-210a1d6e85e7) | ![image](/attachments/60b24ca0-1c3e-48ae-bf59-0cfb9e33f29f) | --- **VSE:** 1. Rename "Grouped" and "Linked" to "Select Grouped" and "Select Linked" to match other editors 2. Take Select More & Less operators out of "Select Linked" menu to match other editors 3. Remove "Select Linked" menu, as it only contains one item now, and expose that one operator directly | Before | After | | -------- | -------- | | ![image](/attachments/3b0b859e-1a86-464f-9279-49a01680b127) | ![image](/attachments/5b5d8faf-c05d-4d46-93c6-e6003b52e72c) | --- **Movie Clip Editor:** 1. Replaced (De)select toggle operator with two separate All and None operators and moved at top alongside Invert 2. Select menu is shown even if there is no clip loaded, but everything is greyed out. This is more consistent with other editors 3. Added "Select" menu in Clip Editor's "Graph" mode wih available options (Box Select is available in here, but operator seems broken, so it's not added in the menu) | Before | After | | -------- | -------- | | ![image](/attachments/c0d7d27c-eb87-49e1-8e8b-d770cd732475) | ![image](/attachments/e2d02ab4-3f4e-4f49-9389-625934a21294) | ![image](/attachments/fe8feb3f-aeed-42fe-9218-eae737c28a9d) --- **Anim Editors (Dope Sheet & Graph Editor):** 1. Changed order of items to match general logic 2. Renamed "Select More" and "Select Less" to just "More" and "Less" to match other editors | Before | After | | -------- | -------- | | ![image](/attachments/28f3b125-d788-4db7-af34-0ad44c7f5d9f) | ![image](/attachments/afbc80bb-30a5-4a0e-8941-d2366d858f7a) | --- **File Browser:** 1. Rename "Inverse" to "Invert" for consistency
Nika Kutsniashvili added 1 commit 2024-05-02 13:00:24 +02:00
Iliya Katushenock added this to the User Interface project 2024-05-02 14:31:47 +02:00
Pablo Vazquez requested changes 2024-05-02 16:40:43 +02:00
Dismissed
Pablo Vazquez left a comment
Member

First of all, love this. Thanks for working on it! We definitely need to add a similar graphic to the Human Interface Guidelines so we can refer to it for future additions/new editors/add-ons developers.

Just a few notes.

1. Select None

such as All/None/Invert

What do you think of calling NoneDeselect (or Deselect All)?

The concept of "selecting nothing" is a bit more abstract than deselecting all which is more descriptive. Also this way users don't have to search for None to find it.

2. Movie Clip

Movie Clip Editor:

After
image

Any particular reason to leave the Select... bit for Select Stabilization Tracks, instead of just Select → Stabilization Tracks?

3. Node Editor

Find Node should end in ellipsis .... Any operator that opens up a new dialog instead of executing directly, should end in ellipsis.
Note: I only noticed this one at a glance, haven't checked the case for all other menu entries.


Again, thanks for working on this. A general advice for future contributions:

Please take screenshots using Blender factory startup. You can make the UI scale larger so it's easier to see but don't use a custom theme or add-ons. It not only makes it hard to tell what's part of the patch and what's an extension to developers (or why this looks different on my setup than yours), but the main reason is that screenshots should look as close as every other user will experience.

It also prevents accidents for the patch author (e.g. you may add one separator too many because of items added by add-ons).

First of all, love this. Thanks for working on it! We definitely need to add a similar graphic to the [Human Interface Guidelines](https://developer.blender.org/docs/features/interface/human_interface_guidelines/) so we can refer to it for future additions/new editors/add-ons developers. Just a few notes. ### 1. Select None > such as All/None/Invert What do you think of calling `None` → `Deselect` (or `Deselect All`)? The concept of "selecting nothing" is a bit more abstract than deselecting all which is more descriptive. Also this way users don't have to search for `None` to find it. ### 2. Movie Clip > **Movie Clip Editor:** > | After | > | -------- | > | ![image](/attachments/e2d02ab4-3f4e-4f49-9389-625934a21294) | Any particular reason to leave the `Select...` bit for `Select Stabilization Tracks`, instead of just `Select → Stabilization Tracks`? ### 3. Node Editor `Find Node` should end in ellipsis `...`. Any operator that opens up a new dialog instead of executing directly, should end in ellipsis. Note: I only noticed this one at a glance, haven't checked the case for all other menu entries. ---- Again, thanks for working on this. A general advice for future contributions: Please take screenshots using Blender factory startup. You can make the UI scale larger so it's easier to see but don't use a custom theme or add-ons. It not only makes it hard to tell what's part of the patch and what's an extension to developers (or why this looks different on my setup than yours), but the main reason is that screenshots should look as close as every other user will experience. It also prevents accidents for the patch author (e.g. you may add one separator too many because of items added by add-ons).
First-time contributor

A general advice for future contributions:

Please take screenshots using Blender factory startup. You can make the UI scale larger so it's easier to see but don't use a custom theme or add-ons. It not only makes it hard to tell what's part of the patch and what's an extension to developers (or why this looks different on my setup than yours), but the main reason is that screenshots should look as close as every other user will experience.

It also prevents accidents for the patch author (e.g. you may add one separator too many because of items added by add-ons).

Could this be/is this somewhere in contributors guidelines? Sorry, I don't mean to derrail the conversation around this PR, just thought this was worth mentioning.


Regarding this PR: IIRC (I might be mistaken), the VSE module removed the verb "Select" from the menus because of the redundancy caused by having the title being already "Select" (e.g.: Select -> Linked already reads as Select Linked, was the reasoning).

I don't agree nor disagree with the reasoning, but for consistency, to me, it seems that Select, as a verb, it should be in every operator's name under the Select menu, or be removed from every operator under the Select menu.

> A general advice for future contributions: > > Please take screenshots using Blender factory startup. You can make the UI scale larger so it's easier to see but don't use a custom theme or add-ons. It not only makes it hard to tell what's part of the patch and what's an extension to developers (or why this looks different on my setup than yours), but the main reason is that screenshots should look as close as every other user will experience. > > It also prevents accidents for the patch author (e.g. you may add one separator too many because of items added by add-ons). Could this be/is this somewhere in contributors guidelines? Sorry, I don't mean to derrail the conversation around this PR, just thought this was worth mentioning. --- Regarding this PR: IIRC (I might be mistaken), the VSE module removed the verb "Select" from the menus because of the redundancy caused by having the title being already "Select" (e.g.: Select -> Linked already reads as Select Linked, was the reasoning). I don't agree nor disagree with the reasoning, but for consistency, to me, it seems that Select, as a verb, it should be in every operator's name under the Select menu, or be removed from every operator under the Select menu.
Author
Contributor

@pablovazquez I agree with you on everything. But on "Deselect", to counter I think idea behind naming "All, None, Invert, More, Less" is to be read with menu name, "Select All, Select More, Select Less".

"Select Deselect" might break that rule. I'm fine with either tho.

@pablovazquez I agree with you on everything. But on "Deselect", to counter I think idea behind naming "All, None, Invert, More, Less" is to be read with menu name, "Select All, Select More, Select Less". "Select Deselect" might break that rule. I'm fine with either tho.
Member

@pablovazquez I agree with you on everything. But on "Deselect", to counter I think idea behind naming "All, None, Invert, More, Less" is to be read with menu name, "Select All, Select More, Select Less".

"Select Deselect" might break that rule. I'm fine with either tho.

I think that this would be a good time to change it. It's already used in multiple places.

  • Easier to search for Deselect than None
  • It allows for more deselect operators in the same menu, like Deselect Pinned (instead of Select None Pinned?)
  • Many operators already use it as property:
    Select Linked
    Select Random
    ...or as the operator name in the API .deselect_all:
    deselect_all operators
  • It's not uncommon. Many software also use that terminology.

The only open question is for it to be Deselect or Deselect All, I'm fine with either. How would it look in the menu?

> @pablovazquez I agree with you on everything. But on "Deselect", to counter I think idea behind naming "All, None, Invert, More, Less" is to be read with menu name, "Select All, Select More, Select Less". > > "Select Deselect" might break that rule. I'm fine with either tho. I think that this would be a good time to change it. It's already used in multiple places. * Easier to search for `Deselect` than `None` * It allows for more deselect operators in the same menu, like `Deselect Pinned` (instead of `Select None Pinned`?) * Many operators already use it as property: ![Select Linked](/attachments/a11885f7-40dc-4e22-b89a-26e7894db078) ![Select Random](/attachments/34db03fc-7f56-403f-91dc-bb635c4c39d3) ...or as the operator name in the API `.deselect_all`: ![deselect_all operators](/attachments/70912801-4acb-400f-9387-e7ddeda4a328) * It's not uncommon. Many software also use that terminology. The only open question is for it to be `Deselect` or `Deselect All`, I'm fine with either. How would it look in the menu?
Nika Kutsniashvili added 2 commits 2024-05-03 18:43:26 +02:00
Author
Contributor

@pablovazquez I've updated everything you mentioned. Deselect looks better, it keeps all names single words, and also "All" and "Deselect All" looks weird, in that case it should be "Select All", and that is even worse.

@pablovazquez I've updated everything you mentioned. Deselect looks better, it keeps all names single words, and also "All" and "Deselect All" looks weird, in that case it should be "Select All", and that is even worse.
Member

Thanks! I understand it's a struggle to take new screenshots to update the PR description, so I took some here:

UV

nodes

VSE

movie clip

animation

Thanks! I understand it's a struggle to take new screenshots to update the PR description, so I took some here: ![UV](/attachments/3e327a57-d574-4c13-9f82-ca252f599d11) ![nodes](/attachments/5e913aea-410b-4089-9063-fe96add16592) ![VSE](/attachments/d3890c4c-4dfd-403d-919b-5d31bf7ff3b0) ![movie clip](/attachments/2600cf76-741d-48f2-adee-cda0d59880f5) ![animation](/attachments/f3a27ca4-fcf5-49ad-a67f-0db0459422ed)
Pablo Vazquez approved these changes 2024-05-03 19:14:40 +02:00
Dismissed
Member

Just for the record. The plan is to land this together with a PR tackling the last remaining editor, the 3D Viewport.

Just for the record. The plan is to land this together with a PR tackling the last remaining editor, the 3D Viewport.
Pablo Vazquez added the
Module
User Interface
label 2024-05-06 11:21:07 +02:00
Nika Kutsniashvili added 1 commit 2024-05-08 15:49:04 +02:00
Nika Kutsniashvili added 1 commit 2024-05-08 15:50:42 +02:00
Author
Contributor

Updated PR to rename from "Deselect" back to "None" as agreed in UI module meeting.

Updated PR to rename from "Deselect" back to "None" as agreed in UI module meeting.
Pablo Vazquez approved these changes 2024-05-08 16:03:24 +02:00
Pablo Vazquez left a comment
Member

Thanks for the update!

Thanks for the update!
Pablo Vazquez merged commit ede675705e into main 2024-05-13 16:27:35 +02:00
Pablo Vazquez deleted branch select-menus 2024-05-13 16:27:38 +02:00
Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
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
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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
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
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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 project
No Assignees
3 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#121337
No description provided.