[Bf-blender-cvs] [3400fe3ecee] master: Tool System: split UI label from tool identifiers
Campbell Barton
noreply at git.blender.org
Fri Mar 15 07:07:12 CET 2019
Commit: 3400fe3ecee99cb6a74455943f2755e6f22ef047
Author: Campbell Barton
Date: Fri Mar 15 12:45:41 2019 +1100
Branches: master
https://developer.blender.org/rB3400fe3ecee99cb6a74455943f2755e6f22ef047
Tool System: split UI label from tool identifiers
Prepare for exposing tool registration to the Python API.
- Generated tools can use their own prefix so naming collisions
won't happen between hard coded & generated tools.
- Add-on authors can use the add-on name as a prefix.
Currently the names match, renaming will happen next.
===================================================================
M release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
M release/scripts/presets/keyconfig/keymap_data/blender_default.py
M release/scripts/startup/bl_operators/wm.py
M release/scripts/startup/bl_ui/space_toolsystem_common.py
M release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M release/scripts/startup/bl_ui/space_topbar.py
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/editors/interface/interface_query.c
M source/blender/editors/interface/interface_region_tooltip.c
M source/blender/makesrna/intern/rna_workspace.c
M source/blender/makesrna/intern/rna_workspace_api.c
M source/blender/windowmanager/WM_toolsystem.h
M source/blender/windowmanager/intern/wm_keymap_utils.c
M source/blender/windowmanager/intern/wm_toolsystem.c
===================================================================
diff --git a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
index 66d05903335..0c812780a23 100644
--- a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
+++ b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
@@ -59,7 +59,7 @@ def generate(context, space_type):
for item in ToolSelectPanelHelper._tools_flatten(cls.tools_from_context(context))
if item is not None
]
- items_all_text = {item_container[0].text for item_container in items_all}
+ items_all_id = {item_container[0].idname for item_container in items_all}
# Press the toolbar popup key again to set the default tool,
# this is useful because the select box tool is useful as a way
@@ -70,7 +70,7 @@ def generate(context, space_type):
# TODO: support other tools for modes which don't use this tool.
tap_reset_tool = "Cursor"
# Check the tool is available in the current context.
- if tap_reset_tool not in items_all_text:
+ if tap_reset_tool not in items_all_id:
use_tap_reset = False
from bl_operators.wm import use_toolbar_release_hack
@@ -102,13 +102,13 @@ def generate(context, space_type):
for kmi_src in keymap_src.keymap_items:
# Skip tools that aren't currently shown.
if (
- (kmi_src.idname == "wm.tool_set_by_name") and
- (kmi_src.properties.name not in items_all_text)
+ (kmi_src.idname == "wm.tool_set_by_id") and
+ (kmi_src.properties.name not in items_all_id)
):
continue
keymap.keymap_items.new_from_item(kmi_src)
del keymap_src
- del items_all_text
+ del items_all_id
kmi_unique_args = set()
@@ -122,7 +122,7 @@ def generate(context, space_type):
cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
if use_hack_properties:
- kmi_hack = keymap.keymap_items.new("wm.tool_set_by_name", 'NONE', 'PRESS')
+ kmi_hack = keymap.keymap_items.new("wm.tool_set_by_id", 'NONE', 'PRESS')
kmi_hack_properties = kmi_hack.properties
kmi_hack.active = False
@@ -148,9 +148,9 @@ def generate(context, space_type):
# First check for direct assignment, if this tool already has a key, no need to add a new one.
kmi_hack_properties.name = tap_reset_tool
kmi_found = wm.keyconfigs.find_item_from_operator(
- idname="wm.tool_set_by_name",
+ idname="wm.tool_set_by_id",
context='INVOKE_REGION_WIN',
- # properties={"name": item.text},
+ # properties={"name": item.idname},
properties=kmi_hack_properties,
include={'KEYBOARD'},
)[1]
@@ -165,7 +165,7 @@ def generate(context, space_type):
items_all[:] = [
item_container
for item_container in items_all
- if item_container[0].text != tap_reset_tool
+ if item_container[0].idname != tap_reset_tool
]
# -----------------------
@@ -179,11 +179,11 @@ def generate(context, space_type):
# Only check the first item in the tools key-map (a little arbitrary).
if use_hack_properties:
# First check for direct assignment.
- kmi_hack_properties.name = item.text
+ kmi_hack_properties.name = item.idname
kmi_found = wm.keyconfigs.find_item_from_operator(
- idname="wm.tool_set_by_name",
+ idname="wm.tool_set_by_id",
context='INVOKE_REGION_WIN',
- # properties={"name": item.text},
+ # properties={"name": item.idname},
properties=kmi_hack_properties,
include={'KEYBOARD'},
)[1]
@@ -229,7 +229,7 @@ def generate(context, space_type):
elif item.keymap is not None:
km = keyconf_user.keymaps.get(item.keymap[0])
if km is None:
- print("Keymap", repr(item.keymap[0]), "not found for tool", item.text)
+ print("Keymap", repr(item.keymap[0]), "not found for tool", item.idname)
kmi_found = None
else:
kmi_first = km.keymap_items
@@ -274,12 +274,12 @@ def generate(context, space_type):
if (
(len(kmi_found_type) == 1) or
# When a tool is being activated instead of running an operator, just copy the shortcut.
- (kmi_found.idname in {"wm.tool_set_by_name", "WM_OT_tool_set_by_name"})
+ (kmi_found.idname in {"wm.tool_set_by_id", "WM_OT_tool_set_by_id"})
):
kmi_args = {"type": kmi_found_type, **modifier_keywords_from_item(kmi_found)}
if kmi_unique_or_pass(kmi_args):
- kmi = keymap.keymap_items.new(idname="wm.tool_set_by_name", value='PRESS', **kmi_args)
- kmi.properties.name = item.text
+ kmi = keymap.keymap_items.new(idname="wm.tool_set_by_id", value='PRESS', **kmi_args)
+ kmi.properties.name = item.idname
item_container[2] = kmi
# -------------------------------------------------------------------------
@@ -310,8 +310,8 @@ def generate(context, space_type):
kmi_args = {"type": kmi_found_type, **modifier_keywords_from_item(kmi_found)}
del kmi_args["key_modifier"]
if kmi_unique_or_pass(kmi_args):
- kmi = keymap.keymap_items.new(idname="wm.tool_set_by_name", value='PRESS', **kmi_args)
- kmi.properties.name = item.text
+ kmi = keymap.keymap_items.new(idname="wm.tool_set_by_id", value='PRESS', **kmi_args)
+ kmi.properties.name = item.idname
item_container[2] = kmi
# -------------------------------------------------------------------------
@@ -331,16 +331,16 @@ def generate(context, space_type):
item, kmi_found, kmi_exist = item_container
if kmi_exist:
continue
- kmi_type = item.text[0].upper()
+ kmi_type = item.label[0].upper()
kmi_tuple = kmi_type_alpha_args_tuple.get(kmi_type)
if kmi_tuple and kmi_tuple not in kmi_unique_args:
kmi_unique_args.add(kmi_tuple)
kmi = keymap.keymap_items.new(
- idname="wm.tool_set_by_name",
+ idname="wm.tool_set_by_id",
value='PRESS',
**kmi_type_alpha_args[kmi_type],
)
- kmi.properties.name = item.text
+ kmi.properties.name = item.idname
item_container[2] = kmi
del kmi_type_alpha_char, kmi_type_alpha_args, kmi_type_alpha_args_tuple
@@ -388,8 +388,8 @@ def generate(context, space_type):
break
if kmi_args is not None:
- kmi = keymap.keymap_items.new(idname="wm.tool_set_by_name", value='PRESS', **kmi_args)
- kmi.properties.name = item.text
+ kmi = keymap.keymap_items.new(idname="wm.tool_set_by_id", value='PRESS', **kmi_args)
+ kmi.properties.name = item.idname
item_container[2] = kmi
kmi_unique_args.add(kmi_tuple)
@@ -398,8 +398,8 @@ def generate(context, space_type):
kmi_args["type"] = key
kmi_tuple = dict_as_tuple(kmi_args)
if not kmi_tuple in kmi_unique_args:
- kmi = keymap.keymap_items.new(idname="wm.tool_set_by_name", value='PRESS', **kmi_args)
- kmi.properties.name = item.text
+ kmi = keymap.keymap_items.new(idname="wm.tool_set_by_id", value='PRESS', **kmi_args)
+ kmi.properties.name = item.idname
kmi_unique_args.add(kmi_tuple)
@@ -426,7 +426,7 @@ def generate(context, space_type):
del kmi_toolbar_tuple
kmi = keymap.keymap_items.new(
- "wm.tool_set_by_name",
+ "wm.tool_set_by_id",
value='PRESS' if use_toolbar_release_hack else 'DOUBLE_CLICK',
**kmi_toolbar_args_available,
)
@@ -445,7 +445,7 @@ def generate(context, space_type):
# ... or pass through to let the toolbar know we're released.
# Let the operator know we're released.
kmi = keymap.keymap_items.new(
- "wm.tool_set_by_name",
+ "wm.tool_set_by_id",
type=kmi_toolbar_type,
value='RELEASE',
any=True,
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 9b41e4c6a4a..91651b7f549 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -143,11 +143,11 @@ def op_panel(menu, kmi_args, kmi_data=()):
def op_tool(tool, kmi_args):
- return ("wm.tool_set_by_name", kmi_args, {"properties": [("name", tool)]})
+ return ("wm.tool_set_by_id", kmi_args, {"properties": [("name", tool)]})
def op_tool_cycle(tool, kmi_args):
- return ("wm.tool_set_by_name", kmi_args, {"properties": [("name", tool), ("cycle", True)]})
+ return ("wm.tool_set_by_id", kmi_args, {"properties": [("name", tool), ("cycle", True)]})
# ------------------------------------------------------------------------------
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index cf513d61dbe..9e0e090fb28 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1486,14 +1486,14 @@ class WM_OT_owner_disable(Operator):
-class WM_OT_tool_set_by_name(Operator):
+class WM_OT_tool_set_by_id(Operator):
"""Set the tool by name (for keymaps)"""
- bl_idname = "wm.tool_set_by_name"
+ bl_idname = "wm.tool_set_by_id"
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list