This task is a TODO for Campbell Barton (other devs welcome!), during the code-quest, and afterwards,
These tasks are needed for the tool system to be generally useful and pleasant to use.
- General Tool System Improvements
- Keymap
- Add ability for active tools to be activated via a hotkey. rBcee39da318f23904e334cc98cdd1e6fb100297d6 rB698dbd65006fe686c991ef3d104cf569d3373711 rB3b1b625eadd02024d2d82b0fc42e0263c1654799
- Way of accessing the toolbar, when toolbar is not the dominant way of accessing tools - eg spacebar+G for the Grab tool. rBddebf1ea3bcc1e5f5650af89952f63d21acb2de8 rBd3c89f50a0167cb978daf3eda064bc7f36167de8
- The active tool is stored per mode rBedf6676a77b30290918e60547544bc1a6f7a8838
- There must be a default tool for every mode rBed83075402c2b6df757857ead0c93bb8bf14093d
- Tool Settings are separated from last used settings rB96a7ed8a159fec97ab19a6d19ffe6201a4ee2b35
- Each tool can have its own cursor rB17852b079c9d2d67e474112aa79a3e8a674b05d2 & rBb6a2dbbec20dca1010596aeb321b8295876d37ed
- Move scene Orientation setting to Top Bar, aligned to the right, next to mode settings rB90b2e4ce284e77e5422f672ded258c139e35af10
- Support for easily accessible number buttons. T55039
- Change design to match T55039
NOTE: Now we have have HUD interfaces (new redo panel), we can use this in more places.
This could be added as part of manipulators API (see camera frame manipulator in T54661).
- Keymap
- Other related things
- Move ‘Auto-Merge’ to Mesh Options in top bar rB1422c0650c951f21bee2555e4e7f03bb8c64cace
- Move Snapping & Snapping Options into one popover.
- Move Proportional Edit & Proportional Edit Options into one popover.
- Move Show/Hide Manipulator into Overlays. rB90b2e4ce284e77e5422f672ded258c139e35af10
- Remove internal/unneeded options from the operator redo panels. T54858
- Update the design of the viewport navigation manipulator to follow design doc. T54723
- Rotate tool widget should display snapping tick marks when holding Ctrl. See design task: T54661
- Make the delta of movement clearer when using manipulators. See design task: T54661
- Add option to show/hide tool manipulators (mapped to Ctrl-Tild)
- Add option to show/hide viewport navigation widgets
- Toolbar
- Display shortcut key when toolbar is expanded. rB06a786f12d5b56fc71f4996aff767dea3fedba6e
- Make paint modes work with the toolbar (display shortcuts & make the active brush same as active tool)
- Display ‘insta-tips’ while hovering over icon-only toolbar. Just shows the name of the tool.
- Display proper tooltips that explains what each tool does, along with a keyboard shortcut to switch to that tool.
- Implement Spin Widget
- Make it use scene Orientation in top bar (T54661)
- Implement drag-to-spin circular motion
- Implement floating ‘redo’ panel to set the spin steps
- Add Settings to Box Select, Circle Select & Lasso Select:
- Add, Remove, Difference rBe88e80a6a0c8976ac2d245c274ca5a0388736743
- Add, Remove should be added for Circle Select
- Select Through if possible (respect X-ray option in Object Mode)
- Bevel tool
- Add tool tweak settings in 3D View T55039
- Add Tool Settings options for Segments and Verts Only rBd31932b6d725132cfe8d1e3d3be9c9fd0210910d
- 3D Cursor tool
- Make it use the scene Orientation tool setting (Changes how the 3D Cursor orients itself when clicking) rB3c8e4e4180b680c6eefff9b3cab7bd091b19074f
- Option to ‘Ignore scene Orientation’: Does not copy orientation when placed.
- Add Snapping setting, so that it can snap to verts, edges, faces etc.
- The raycasting fails very often, and wrong orientation is often set. Glitchy behaviour.
- Make Loop Cut tool work well
- Make the preselect highlighting feature work as a manipulator, so that it doesn’t require an extra step rB79ecfc99fd75f897a6140639474a7b0e5910a9ff
- Add Tool Settings option to initialise the loop cut at the mouse location, not the center, enabled by default
- Make it so you can simply click and drag to set the cut - don’t require an extra click. rBcf038bcb153648c38e9f488c16281af04bd2261c
- Add tool tweak UI for setting the steps T55039 rBf6778ea63aa267c56b93b2fad3a2f47b0d16b5f5
- Make multicut be properly proportionally offset when the cut is not in the middle
- Make Improvements to Extrude tool
- Change display: Use plus icon for making new extrusions, arrow for adjusting rBc3b061278ec8b38bec6915cae52d750fdcc9b04b
- When set to Local or Global, use XYZ manipulator, but with a plus on each arrow. rBc3b061278ec8b38bec6915cae52d750fdcc9b04b
- Make it properly update when switching orientations rB0cfe9f95df9c7a8e654b589802d6677d9e0c73e9
- For Normal orientation, Z would be hidden, since it is redundant. rBdc4f94783d4b634791a92fb44b0d163a508c48cc
- Should use regular scene Orientation control rBdc4f94783d4b634791a92fb44b0d163a508c48cc
- Extrude tool always has a Normal orientation arrow rBdc4f94783d4b634791a92fb44b0d163a508c48cc
- Make entire Extrude widget slightly smaller
- Add 'Show All Axes' option to Tool Settings which toggles display of the X Y and Z handles (off by default)
- Add 'Click Anywhere' option, same as for the Transform tools, to define whether dragging anywhere in the 3D View executes an Extrude operation
- Sculpt Mode
- Remove 3D Cursor tool rB5203ebbaad48cb972d9e2ba8845bdb6e1e3e34f8
- Combine Options, Appearance & Overlays panels inside the Options panel rBf047224458774871f8bf946b86e64a6aa9c00db2
Note: For now move Appearance into overlay panel, since "Options" is a different panel for every mode, where as "Appearance/Overlay" are the same panel for all modes. - Fill/Deepen has no plus/minus icons rB4e41a44400c32ef80018d3a61ab5bd0a4c5c284c
- Hair Particle Mode
- Make hair mode use toolbar
- Put tool settings in the tool settings
- Add primitive tool: MOVED to T57210
- Add Bend tool to toolbar
- Uses orientation plane setting
- Option to Clamp
- Create a bend manipulator (See design task: T54661)
- Add Extrude Along Normals tool to toolbar (It exists in 2.7) We should probably add this as an option to the Extrude Region tool
- Add new Polygon Draw tool
- Uses orientation plane setting
- Option to fill
- Clicking creates verts
- Once you have 3, the last two are selected (last one active).
- Clicking further, adds a vertex on the edge after the selected edge.
- If the user doesn't have two adjacent verts selected...
- If nothing is selected, create a new polygon.
- If something is selected - add more points to the NGon - at the closest selected vertex to the cursor.
This way, we can move the odd Poly Build nested behind this one.
- Curved Extrude tool (bonus)
- An example of the kinds of tools which is now possible in 2.8
- It has two handles on each end of the extrusion, and a Move/Rotate manipulator for moving the extrusion. See: T54661
- Vertex Paint mode (long term TODO, see T54902)
- Unify the transform operator settings for compensating for custom data layers. This is sometimes called 'Correct UV's', 'Interpolate'. We will call it 'Slip Face Data' and enable it by default for all the tools
- Always Expose both X, Y and Z rotation values, even if it is a view aligned rotation
Note: this isn't just a UI change, the operator internals will have to be handled differently for this to work ~ @Campbell Barton (campbellbarton)
- Status Bar (Refer to design task T54861)
- Add Status Bar
- Display a context sensitive active keymap for the active tool for the current editor.
- Add mouse button glyphs and rounded corners around keyboard buttons (T54861) rBaed82dafff8f7f0f30a7b7c1c7180d13ec52b052
- Includes the old stats
- Improve stats by using icons for verts, faces, edges etc
- Includes Jobs & Notifications
- Add option in Window menu to disable Status Bar
- Tool Settings Editor (long term todo)
- Refer to design task: T55043
- The same settings should always be accessible both in Top Bar and Tool Settings tab, in case users have top bar collapsed. This is often not the case currently.
- Implemented as a tab in Properties,
- We could also include a Tool Adjust panel here, which is basically just the Redo panel.
Comment: Support for redoing in a different area was possible but error prone and doesn't work well so it has been removed, redo panel needs to be in the area the operator runs in. This is because the original area can be modified or joined after an operator executes ~ ideasman42