diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2019-05-04 20:14:37 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2019-05-11 01:48:33 +0300 |
commit | b1af682001596fb2943dca3e39a256be71637906 (patch) | |
tree | 59fa8a74e10fccd3de6799f98ea9cb861d4accb8 /release | |
parent | de9d846353bdc48a2d3388e79309342df7d003df (diff) |
Outliner Visibility Update
See T61578 for discussions and mockups.
Visibility Options
==================
We are adding more granular control over restriction columns in the outliner,
exposing "indirect only" and "holdout" as options, and change the way
users enable/disable collections in a viewlayer.
We also rename the object viewport restriction to hide instance.
So the options we have are:
Collection
----------
* Render Visibility
* Instance Visibility
* Selectable
(View) Layer Collection
-----------------------
* Enable
* Holdout
* Indirect Only
* Viewport
Shortcuts
=========
Isolate Collection
------------------
* Ctr + click isolates the collection.
It turns all its parents and children "visible", and all the other
collections "invisible".
If ALL the collections were already properly set, we re-set the
collections to their default value.
Set Collection Inside Collections and Objects
---------------------------------------------
* Shift + click: Set/unset inside collections and objects.
We only set objects values as well when we are in View Layer mode and
(obviously) when the objects have a matching property.
Icons
=====
Little reminder that we will need better icons for holdout, indirect only, and
probably instanced (nothing wrong with the current, but it differs from
the proposal when it is turned off).
Also, we need to decide where do we want the modifier/bones/... icons to
be (in which column) and ideally make sure their icons match the ones we
use for collections/objects.
At the moment those are using the screen icon, which is not being used
by collections.
Reviewers: brecht, billrey
Subscribers: pablovazquez
Differential Revision: https://developer.blender.org/D4823
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_outliner.py | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/release/scripts/startup/bl_ui/space_outliner.py b/release/scripts/startup/bl_ui/space_outliner.py index d64dfbfdfdf..f0f6776805d 100644 --- a/release/scripts/startup/bl_ui/space_outliner.py +++ b/release/scripts/startup/bl_ui/space_outliner.py @@ -47,7 +47,7 @@ class OUTLINER_HT_header(Header): layout.separator_spacer() row = layout.row(align=True) - if display_mode in {'VIEW_LAYER'}: + if display_mode in {'SCENES', 'VIEW_LAYER'}: row.popover( panel="OUTLINER_PT_filter", text="", @@ -303,10 +303,29 @@ class OUTLINER_PT_filter(Panel): space = context.space_data display_mode = space.display_mode + if display_mode == 'VIEW_LAYER': + layout.label(text="Restriction Toggles:") + row = layout.row(align=True) + row.prop(space, "show_restrict_column_enable", text="") + row.prop(space, "show_restrict_column_selectable", text="") + row.prop(space, "show_restrict_column_instance", text="") + row.prop(space, "show_restrict_column_viewport", text="") + row.prop(space, "show_restrict_column_render", text="") + row.prop(space, "show_restrict_column_holdout", text="") + row.prop(space, "show_restrict_column_indirect_only", text="") + layout.separator() + elif display_mode == 'SCENES': + layout.label(text="Restriction Toggles:") + row = layout.row(align=True) + row.prop(space, "show_restrict_column_selectable", text="") + row.prop(space, "show_restrict_column_instance", text="") + row.prop(space, "show_restrict_column_viewport", text="") + row.prop(space, "show_restrict_column_render", text="") + layout.separator() + if display_mode != 'DATA_API': col = layout.column(align=True) col.prop(space, "use_sort_alpha") - col.prop(space, "show_restrict_columns") layout.separator() col = layout.column(align=True) @@ -314,6 +333,9 @@ class OUTLINER_PT_filter(Panel): col.prop(space, "use_filter_complete", text="Exact Match") col.prop(space, "use_filter_case_sensitive", text="Case Sensitive") + if display_mode != 'VIEW_LAYER': + return + layout.separator() layout.label(text="Filter:") |