Campbell Barton
96a7ed8a15
Tool System: store operator properties in the tool
...
This replaces last-used property use which wasn't reliable since
properties were not considered 'set' - causing them to be ignored.
2018-05-22 15:31:06 +02:00
Campbell Barton
fbe73d1f31
UI: fix error for tools w/o a keymap
2018-05-21 13:08:44 +02:00
Campbell Barton
3b1b625ead
UI: use spacebar for toolbar
...
- This allows quick, consistent toolbar access
w/o conflicting w/ the keymap.
Where pressing space before a key activates that operator as a tool
instead of running immediately.
- Search can still be accessed by pressing spacebar again.
- When there is no toolbar for a space, operator search still opens.
2018-05-21 12:46:26 +02:00
Campbell Barton
698dbd6500
UI: generate dynamic keymap for popup toolbar
...
Set keys for tools based on the current keymap.
This keeps consistency between tools immediate execution.
2018-05-21 10:46:27 +02:00
Campbell Barton
ddebf1ea3b
UI: Add menu to show the toolbar
...
For people who prefer to keep the toolbar hidden,
expose as a menu (currently Shift-Space).
2018-05-18 22:28:59 +02:00
Campbell Barton
a0b03d3fb2
Tool System: use classmethod for drawing
...
Allows the toolbar to be included in a popup.
2018-05-18 21:18:33 +02:00
Campbell Barton
8b9db543fd
Tool System: add cursor (currently unused)
2018-05-18 07:58:37 +02:00
Campbell Barton
bffa9b8012
Cleanup: remove tool definition access function
...
No longer needed since names not values are compared
when checking if a tool is active.
2018-05-18 07:24:17 +02:00
Campbell Barton
b0c8d35142
Tool System: use context mode
...
Was using object mode in the workspace API which isn't
useful for accessing tools.
2018-05-17 20:28:14 +02:00
Campbell Barton
edf6676a77
Tool System: per space/mode tool support
...
This patch adds support for:
- Per space-type tools (3D view and edit).
- Per mode tools (object, edit, weight-paint .. etc).
The top-bar shows the last activated tools options, this is a design
issue with using a global topbar to show per-space settings.
See D3395
2018-05-17 15:57:33 +02:00
Campbell Barton
f6601e2deb
Tool System: pass space type when setting tool
...
Internal change only, needed because object mode is now in top-bar.
2018-05-16 19:04:29 +02:00
Campbell Barton
3767c01269
Fix issue w/ recent tool name use
...
Use the context space type, not the workspace.
Broke setting tools for the first time.
2018-05-13 18:39:15 +02:00
Campbell Barton
e7ee9cfd9e
Tool System: tools are now set by name
...
This avoids having to store the tool definition in the operator
properties (on redraw).
Now just set the name, note this means we can't show the keymap in the
tool-tip anymore. This will eventually be shown in the status bar.
2018-05-13 10:01:56 +02:00
Campbell Barton
cee39da318
WM: Operator to set the tool by name
...
Needed to bind keys to tools (T55036).
2018-05-13 09:03:37 +02:00
Campbell Barton
03281c080c
Cleanup: indentation
2018-05-13 08:32:47 +02:00
Campbell Barton
0414b0a0be
Cleanup: add function to get class from space type
2018-05-13 08:13:13 +02:00
Campbell Barton
ece3634497
Cleanup: call toolsystem static methods directly
...
Note, may move these static methods into their own module.
2018-05-13 08:07:17 +02:00
Campbell Barton
78f13ee46c
UI: use "none" icon if loading fails
...
Workaround for issues w/ two column layout when icons are missing.
Also fix reloading icons when some values aren't valid.
2018-04-30 13:57:47 +02:00
Campbell Barton
f4697b392d
Tool System: change internal definitions (again)
...
Was using classes to define tools, however this makes it awkward to
dynamically generate them (we can do it, but its not very "Pythonic").
Move to a named tuple.
2018-04-30 12:14:46 +02:00
Campbell Barton
4218a94b1e
UI: disable top-bar tool name drawing
...
Makes text jump about.
2018-04-29 18:03:01 +02:00
Campbell Barton
6f544f635b
UI: fix toolbar groups w/ data_blocks
2018-04-29 16:24:40 +02:00
Campbell Barton
6e76a35f07
Tool System: support data-blocks in tools
...
Needed so tools can set the active brush.
2018-04-29 14:30:09 +02:00
Campbell Barton
f4ba7667dc
UI: support tool generators (no visible change)
...
This allows toolbar definitions to dynamically generate tools,
needed for generating a tool list from brushes for eg.
2018-04-29 12:28:21 +02:00
Brecht Van Lommel
ca7964c24b
UI: fix toolbar not snapping properly with system DPI and display scale.
2018-04-28 20:50:47 +02:00
Campbell Barton
e1417c665d
UI: split toolbar layout from button creation
...
Having single & multi-column checks inline were becoming unmanageable.
Use a generator to define the layout,
allows for easily adding different layouts in the future.
2018-04-28 11:42:53 +02:00
Campbell Barton
cfa1700792
UI: add loopcut & edge offset tools
...
Also fix minor layout bug.
2018-04-27 23:08:25 +02:00
Campbell Barton
0adabe33bd
UI: respect separators for row layout
2018-04-27 20:03:43 +02:00
Campbell Barton
351d782286
UI: disable 3 column toolbars
...
They conflict a little with showing a narrow toolbar w/ text.
2018-04-27 18:20:48 +02:00
Campbell Barton
eb4c60124c
UI: multi-column toolbar support
2018-04-27 18:02:45 +02:00
Antony Riakiotakis
ca66112b29
Fix missing icons in non-portable local builds.
...
The problem is that some local path is always returned by
bpy_resource_path. The function does not enforce a check for existence
of the path in the low level code.
Since client code may indeed not care about existence of the directory,
I leave bpy_resource_path alone and patch the python code to check for
existence. An extra argument that enforces the check might be a better
solution, but I will be leaving this to the UI team.
2018-04-27 17:10:39 +03:00
Antony Riakiotakis
84a706a366
Minor fix, report missing instead of corrupt icon if file does not exist
2018-04-27 15:34:54 +03:00
Campbell Barton
85ea14df2f
UI: support for tool settings in the top-bar
...
This uses the operators last used properties
to store settings to use on the next execution.
2018-04-27 14:17:12 +02:00
Campbell Barton
9504652687
UI: move tool definitions to classes
...
Originally it was nice to have a small list of definitions
with tools inline.
However we need to be able to define drawing functions for tools
which Python can't easily inline.
Use function for keymap definition,
support creating a function from a tuple as well
(handy for simple key-maps).
2018-04-27 13:55:04 +02:00
Campbell Barton
868c9ac408
UI: show active tool in the topbar
2018-04-27 10:50:11 +02:00
Campbell Barton
2fc5f3f378
UI: support icon reloading (F8 key)
2018-04-26 15:19:56 +02:00
Campbell Barton
b98311f847
Cleanup: avoid direct access to private class
2018-04-26 14:55:46 +02:00
Campbell Barton
4afbbb8cf9
UI: correct toolbar w/ text display
...
Missed in tuple to dict refactor.
2018-04-26 08:18:41 +02:00
Campbell Barton
f7d9db5e68
Missed last commit
2018-04-26 08:10:52 +02:00
Campbell Barton
52454f1290
UI: fix toolbar naming collision bug
...
Active tool name needed to be unique from all other tools.
This caused problems since different modes have different tools with the
same name (Armature/Mesh click to extrude for eg).
Tool names now only need to be unique per mode.
2018-04-26 08:09:03 +02:00
Campbell Barton
3e2edb160f
UI: update tool docstring
...
Also assert on invalid tool definitions.
2018-04-26 07:39:15 +02:00
Campbell Barton
37ca6ef7d8
UI: use dict for tool definitions
...
Using tuple was becoming too cryptic - new settings needed to be added
last and the purpose of each wasn't very clear.
2018-04-26 07:31:39 +02:00
Campbell Barton
cdfc4c0d1d
Search local before system path
...
This works in both cases,
where system path would return a path even when it's missing.
2018-04-25 14:13:32 +02:00
Campbell Barton
354dbdde01
UI: hide toolbar text when narrow
2018-04-24 16:33:38 +02:00
Campbell Barton
1da1288544
Check LOCAL datafiles if SYSTEM not found
2018-04-24 10:45:57 +02:00
Campbell Barton
3581b997d4
UI: use icons for the toolbar
2018-04-24 09:19:28 +02:00
Campbell Barton
642c1cabe5
Tool System: Don't add duplicate keymap items
2017-11-05 01:38:51 +11:00
Campbell Barton
4c53f2000f
Cleanup: move tool-bar checks into functions
...
Also support separator in tool-bar sub-menus
2017-11-03 16:30:51 +11:00
Campbell Barton
920d09696e
UI: store tool index of non-active tools
2017-11-02 23:30:01 +11:00
Campbell Barton
1ca3e1a91d
UI: support nested tools in toolbar
2017-11-02 23:05:13 +11:00
Campbell Barton
d2e39edae8
UI: draw active tool pushed in
2017-11-02 15:52:16 +11:00