Currently we mix up selection with other actions like activation and mode toggling. This makes it unclear what action(s) will occur when you select something in the outliner. A simple solution is to add a new column on the left of the outliner to activate data and switch object modes. This task has two parts, data activation and mode toggling.
Data Activation (currently on hold)
This still has some merit, but needs to be rethought for the design. Mode toggling is working fine.
There are certain types of outliner data that when selected, make a larger change in Blender. These "disruptive" types are Collections, Scenes, and Camera Data. For example, when you select a scene, Blender also switches to that scene:
Not only can you not select a scene without switching to it, it's also hard to even see which one *is* the active one.
It's impossible to simply select the scene in the Outliner without also switching to it. The same is true for collections and camera data. If you want to select a collection, it always becomes active. This mixing of selection and activation is confusing, and it also makes it unclear which data is active.
Mode Toggling
Since Blender 2.80, edit mode and pose mode support multiple objects in the mode at a time. Currently the outliner supports mode toggle for these types which makes it easy to add or remove objects while in the object mode. However, this feature is hidden, and interferes with selection as mentioned above.
For example, to bring an object into edit mode, the object data must be selected and ctrl must be held to extend the objects in the mode. Obviously that's not acceptable, because:
- Users don't expect that simply selecting something will also change the mode
- It will break Properties-Outliner syncing T63991: Outliner/Properties syncing because it is more intuitive that selecting the object data would switch to the object data in the properties editor.
- It makes many operations very awkward (selecting, then acting on the data)
When not in object mode, icons can be drawn to the left of objects that allow adding and removing from the mode. For modes other than edit and sculpt, these will allow easy switching of the current active object. For example, you can click the sculpt mode icon next to another mesh to swap to sculpt mode on that object. This last example is currently not possible to do in Blender, and would be a useful feature to add.
Progress
The current implementation (in the soc-2020-outliner branch) looks like:
We are using radio icons for data activation. In the past we used a dot for inactive, and a checkmark for active. One current issue is that the icons look the same between cameras, scenes, and collections. Using the camera, scene, or collection looks too busy, so more work may be needed here.
Data Activation | Mode Toggling |
Something that we currently do is draw the data activation toggles in the different modes. I think it may look better to hide them when in an object mode.
Also, right now the icons for objects not in the interaction mode are drawn dim. In the past we used a dot, which I might prefer because it shows more clearly the difference. The faded icon lacks contrast.
We could also draw a vertical line to separate this column from the rest of the outliner
- Support removing the active object in multi-object modes. (Removing the active object removes all from the mode)
- Finalize icons
- Naming. Right now in the UI and code this is called the "Left Column". Could this be better?