Reorganize 3D View Menus: View, Add and Object Menu
AbandonedPublic

Authored by Brendon Murphy (meta-androcto) on Oct 11 2017, 8:58 AM.

Details

Summary

Reorganize 3d View Menus: View, Add and Object Menu

This patch is designed to improve menu layout, readability & accessibility in the 3D view menu's.

  • Reorganize menu's, create grouped sub menu's, reduce menu length.
  • Sub menu depth, preferred 2 levels, maximum 3.

Proposed Changes

View menu

  1. Merge base directional numpad operators: Top, Bottom, Front, Back, Left, Right into new menu: "Directions"
  2. Remove duplicate Camera menu enty(numpad 0)
  3. Merge border operators: Render, Zoom, Clipping into new menu: "Set Border"
  4. Merge view toggle Fullscreen, maximize & Quad views into new menu: "View Toggle"
  5. Re-organize layout

3D View: Add Menu

  1. "Camera" move from direct operator to menu: Camera.
  2. Move "Quick Effects menu" from Object Menu to Add menu.
  3. Re-organize layout

Object Menu

  1. Move "Quick Effects menu" from Object Menu to Add menu.
  2. Merge transfer mesh data, make local, make single user, duplicate linked, make proxy, make dupliface into new menu: "Relations"
  3. Re-organize layout

part 2 Edit mode menus

'w' key specials menu

Shorten menu with new utils menu

Ctrl/v/e/f menus

  1. Shorten menus
  2. new consistent tools menus in each menu

Rationale

This patch consolidates existing menu's making them easier to read & improving mouse movement.
The long (often very long & scroll-able on laptops) menu's are replaced with easy to understand & somewhat natural feel.

Existing users will have little trouble quickly adapting to the new menu's as they are in keeping with Blender's general design & menu style.



current file with 2.79 master and 2.8

Diff Detail

Repository
rB Blender
Branch
TEMP-VIEW3D-MENU
Build Status
Buildable 908
Build 908: arc lint + arc unit
Campbell Barton (campbellbarton) requested changes to this revision.Oct 11 2017, 10:32 AM

Please double check all changes are intentional, noticed two that aren't.

release/scripts/startup/bl_ui/space_view3d.py
60

Reverts recent GSOC merge.

175

Reverts recent GSOC merge.

This revision now requires changes to proceed.Oct 11 2017, 10:32 AM

Move 'Side of Active' out of 'Linked' menu, since it's not a linked action.

Also add back accidental reversing of changes from recent weight paint changes.

Going over this patch and made some changes to the view menu:

  • Move 'Border Zoom' out of the 'Borders' menu, into navigation (its a navigation operator that happens to use a border widget).
  • Rename 'Directions' menu to 'Viewpoint' (camera is not a direction)
  • Moved 'Local View' & 'View Global/Local' back into main menu (not directions or viewpoints).
  • Moved 'Screen Areas' back into main menu (to match all other view menus, rather adjust all view menu's at once, not make 3D view an exception).

Even though this reverses some edits,
menu is still reduced from 26 items to 17.


There are lots of general improvements to ordering and consistency, which I'll apply.
However noticing some other changes that strike me as strange.

Did anyone do a detailed review of this?

  • Rotate Color is inside the Rotate UV menu.
  • Vertex/Edge/Face menu's all contain the same first 5 items: Fill/Cleanup/Extrude/Delete/Subdivide. Whats the reasoning here?
    • We have a Delete menu and key shortcut already.
    • As of 2.79 release Cleanup has a lot of fairly spesific tools, which you would not typically access. (eg - split non-planar faces). Vert/Edge/Face menus were added so operations on each type could be separated. Moving many items into sub-menus, then making all 3 menus display duplicate items seems strange. You can always access the Vertex menu when in Face select mode if you need.
    • Cleanup menu was meant for special purpose geometry operations, Moving Remove Doubles here is disputable, since its such a common operation, used for general purpose modeling, I rather keep it easily accessible and not associate it with more advanced/specialized tools.

      Also, including these first means they are the most easily accessible and get key-accelerators assigned first. Don't think its so useful to include redundant menu items in the most prominent location.
  • New Edit Mesh Fill menu includes: Tris to Quads, Convert to Quads, Poke, Split by Edges which seem not exactly related to Fill?
Campbell Barton (campbellbarton) retitled this revision from T46853: Reorganize 3D View Menus: View, Add and Object Menu to Reorganize 3D View Menus: View, Add and Object Menu.Oct 19 2017, 5:11 AM
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)

Applied Mesh "Select" menu changes to master rBb82b55a3138d2a6afdc18460a6342774029d00f2

Applied minor changes, separators, re-order undo/redo, copy/paste, delete menu rBa8fb08b19cf9ddbf3185754c41a9da533f8de65b

Add undo/redo menu to all top-level data-type menus

  • Missed particles last commit

Move "Mirror" next to "Transform" since this is a kind of transform

Order transform before parenting in object menu

release/scripts/startup/bl_ui/space_view3d.py
2531

Again. Remove doubles is generally useful and probably lots of users access it from this menu. Why should merge stay and remove doubles go? - they're related and handy - which is the purpose of this menu.

2553

Definition of what is a "Utility" in context of Specials menu is fuzzy,

This is already a bag of useful utility functions.

Not sure how better to solve either though.

2628

This is a general purpose/primitive operation, I think its best to keep here instead of moving to cleanup menu.

2815

Not sure it's worth having a menu for this.

We could just expose edge-rotate and allow the user to set the direction in the operator redo panel if they like.

2941–2946

These are not really "Fill" operations (they don't fill in information that wasn't there already), they could be moved into "Tessellate" menu?

2970–2971

This doesn't make sense - maybe rename menu to "Rotate Face Data" ?

Applied object "Relations" menu rB351222c26f0ee7ce31ee1ee10f45dcebd3fe319f

Note that I moved "Duplicate Linked" back into the main menu since this is
just "Duplicate" with a linked enabled, so it's a bit odd to split across two menus.

Applied all changes besides some I'm not sure about:

  • Edit-mesh menus (see inline comments)
  • Extra separators (see inline comment)
  • Add quick effects (don't have a strong opinion but not sure about this)
release/scripts/startup/bl_ui/space_view3d.py
1577–1628

The convention in the rest of this patch has been to add the separator call at the start of each block (which makes sense IMHO - since it's possible no other menu items are added later).

Any reason to do differently here?

Sync with master (made some minor cleanups there)

While i agree that remove doubles is a general purpose tool, workflow wise seems logical to be grouped into the Clean up as often it is used in that context after an mesh edit. As it can address the lamina faces and overlapping edges it is useful in those modes too.
I'm okay with adding it back to the Specials menu (similar to Delete being accessible through the Vertex, Face and Edge menus).

Concerning the Fill menu that naming is disputable indeed. Maybe Calling it Fill/Tessellate since new faces are created ? Even though the initial data does exist, the Fill tool does already overlap with tessellation in some cases, as it can be used to change already existing face data - from an user POV (like reverting a Poke of a Cylinder cap or a ngon/quad split into triangles).

EDIT: concerning separators in the Object specials menu some of them can be removed. The reason why went with this way (at the bottom of the block) is - as the menu has a lot of switch statements which can cause a bit of confusion with duplicate separators.
In case of selecting a mesh object there was always a separator drawn on top of the last two entries (that visually clashed with the menu title line, in case of hemi also).

Concerning the VIEW3D_MT_object_specials menu seems that the check for the light strength is not robust enough. If the Emission node is deleted/ Renamed it will cause the menu to crash.

File "startup\bl_ui\space_view3d.py", line 1448, in draw
    value = lamp.node_tree.nodes["Emission"].inputs["Strength"].default_value
KeyError: 'bpy_prop_collection[key]: key "Emission" not found'

While i agree that remove doubles is a general purpose tool, workflow wise seems logical to be grouped into the Clean up as often it is used in that context after an mesh edit. As it can address the lamina faces and overlapping edges it is useful in those modes too.
I'm okay with adding it back to the Specials menu (similar to Delete being accessible through the Vertex, Face and Edge menus).

Don't mind having it in the Cleanup menu - am just against moving it there from the vertex / specials menu.

Concerning the Fill menu that naming is disputable indeed. Maybe Calling it Fill/Tessellate since new faces are created ? Even though the initial data does exist, the Fill tool does already overlap with tessellation in some cases, as it can be used to change already existing face data - from an user POV (like reverting a Poke of a Cylinder cap or a ngon/quad split into triangles).

Don't have real strong opinion but think these could be separate menus:

  • Fill create -> new geometry to fill an area that did not have faces already.
  • Tessellate -> add/adjust divisions to existing filled regions.

hi, in the latest revision all seems well.
I would question why the "Screen Areas" menu has been broken apart as I think most people would use hotkeys for this once they discover the menu. Possible a better name could be had for the menu such as "Toggle View"
It's understandable that the View > persp/ortho entries were exposed again as the don't exactly fit into the View > Directions menu.

Concerning the Fill menu that naming is disputable indeed. Maybe Calling it Fill/Tessellate since new faces are created ? Even though the initial data does exist, the Fill tool does already overlap with tessellation in some cases, as it can be used to change already existing face data - from an user POV (like reverting a Poke of a Cylinder cap or a ngon/quad split into triangles).

Don't have real strong opinion but think these could be separate menus:

Fill create -> new geometry to fill an area that did not have faces already.
Tessellate -> add/adjust divisions to existing filled regions.

how about a compromise here and call the menu Fill/Adjust ?

part of the design of this patch is to allow future menu additions by starting with a smaller solid base.
we can always approach this area again and make subtle changes if needed. (on a smaller more individual menu basis.)

thanks @Vuk Gardašević (lijenstina) @ideasman42 for help.
it would be great to see this resolved soon.
Brendon

If someone wants to revisit this they are welcome to.

What was the rationale to not merge the Area operators into a single dropdown? Just naming?

It would benefit other editors as well since most of them have Toggle Maximize Area, Toggle Fullscreen Area, and Duplicate Area into New Window in the View menu or similar (Python Console has it under 'console').

In the case of the 3D View it could include Toggle Quad View, like in this patch.