Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-03-15 06:18:21 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-15 08:48:01 +0300
commitd4156b46d7a4acb22f3abfde14b05c46ead34b43 (patch)
tree3db542558bd8dbf44b94998df90f62ec7b5d0e13
parent3400fe3ecee99cb6a74455943f2755e6f22ef047 (diff)
Tool System: use categories for tool identifiers
Tools that come with Blender use 'builtin' or 'builtin_brush' prefix.
-rw-r--r--release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py4
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py6
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_toolbar.py184
-rw-r--r--release/scripts/startup/bl_ui/space_topbar.py4
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py2
-rw-r--r--source/blender/blenkernel/BKE_blender_version.h2
-rw-r--r--source/blender/blenloader/intern/versioning_280.c9
-rw-r--r--source/blender/editors/transform/transform_gizmo_3d.c8
-rw-r--r--source/blender/windowmanager/intern/wm_toolsystem.c24
9 files changed, 131 insertions, 112 deletions
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 0c812780a23..e08e8b45135 100644
--- a/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
+++ b/release/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py
@@ -68,7 +68,7 @@ def generate(context, space_type):
# a shortcut based workflow (before the tool system was added).
use_tap_reset = True
# TODO: support other tools for modes which don't use this tool.
- tap_reset_tool = "Cursor"
+ tap_reset_tool = "builtin.cursor"
# Check the tool is available in the current context.
if tap_reset_tool not in items_all_id:
use_tap_reset = False
@@ -317,7 +317,7 @@ def generate(context, space_type):
# -------------------------------------------------------------------------
# Assign A-Z to Keys
#
- # When th keys are free.
+ # When the keys are free.
if use_auto_keymap_alpha:
# Map all unmapped keys to numbers,
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 91651b7f549..c1f7785de4e 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -5029,9 +5029,9 @@ def km_popup_toolbar(_params):
"Toolbar Popup",
{"space_type": 'EMPTY', "region_type": 'TEMPORARY'},
{"items": [
- op_tool("Select", {"type": 'W', "value": 'PRESS'}),
- op_tool("Transform", {"type": 'T', "value": 'PRESS'}),
- op_tool("Measure", {"type": 'M', "value": 'PRESS'}),
+ op_tool("builtin.select", {"type": 'W', "value": 'PRESS'}),
+ op_tool("builtin.transform", {"type": 'T', "value": 'PRESS'}),
+ op_tool("builtin.measure", {"type": 'M', "value": 'PRESS'}),
]},
)
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index b0b8327af9a..092494d783f 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -39,6 +39,7 @@ def kmi_to_string_or_none(kmi):
def generate_from_enum_ex(
context, *,
+ idname_prefix,
icon_prefix,
type,
attr,
@@ -51,7 +52,7 @@ def generate_from_enum_ex(
tool_defs.append(
ToolDef.from_dict(
dict(
- idname=name,
+ idname=idname_prefix + name,
label=name,
icon=icon_prefix + idname.lower(),
data_block=idname,
@@ -86,7 +87,7 @@ class _defs_view3d_generic:
layout.prop(props, "use_depth")
layout.prop(props, "orientation")
return dict(
- idname="Cursor",
+ idname="builtin.cursor",
label="Cursor",
description=(
"Set the cursor location, drag to transform"
@@ -99,7 +100,7 @@ class _defs_view3d_generic:
@ToolDef.from_fn
def cursor_click():
return dict(
- idname="None",
+ idname="builtin.none",
label="None",
icon="ops.generic.cursor",
keymap=(),
@@ -126,7 +127,7 @@ class _defs_view3d_generic:
kmi_to_string_or_none(kmi_remove),
)
return dict(
- idname="Measure",
+ idname="builtin.measure",
label="Measure",
description=description,
icon="ops.view3d.ruler",
@@ -179,7 +180,7 @@ class _defs_annotate:
@ToolDef.from_fn.with_args(draw_settings=draw_settings_common)
def scribble(*, draw_settings):
return dict(
- idname="Annotate",
+ idname="builtin.annotate",
label="Annotate",
icon="ops.gpencil.draw",
cursor='PAINT_BRUSH',
@@ -190,7 +191,7 @@ class _defs_annotate:
@ToolDef.from_fn.with_args(draw_settings=draw_settings_common)
def line(*, draw_settings):
return dict(
- idname="Annotate Line",
+ idname="builtin.annotate_line",
label="Annotate Line",
icon="ops.gpencil.draw.line",
cursor='CROSSHAIR',
@@ -201,7 +202,7 @@ class _defs_annotate:
@ToolDef.from_fn.with_args(draw_settings=draw_settings_common)
def poly(*, draw_settings):
return dict(
- idname="Annotate Polygon",
+ idname="builtin.annotate_polygon",
label="Annotate Polygon",
icon="ops.gpencil.draw.poly",
cursor='CROSSHAIR',
@@ -216,7 +217,7 @@ class _defs_annotate:
prefs = context.preferences
layout.prop(prefs.edit, "grease_pencil_eraser_radius", text="Radius")
return dict(
- idname="Annotate Eraser",
+ idname="builtin.annotate_eraser",
label="Annotate Eraser",
icon="ops.gpencil.draw.eraser",
cursor='CROSSHAIR', # XXX: Always show brush circle when enabled
@@ -232,7 +233,7 @@ class _defs_transform:
def draw_settings(context, layout, tool):
_template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 1)
return dict(
- idname="Move",
+ idname="builtin.move",
label="Move",
# cursor='SCROLL_XY',
icon="ops.transform.translate",
@@ -247,7 +248,7 @@ class _defs_transform:
def draw_settings(context, layout, tool):
_template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 2)
return dict(
- idname="Rotate",
+ idname="builtin.rotate",
label="Rotate",
# cursor='SCROLL_XY',
icon="ops.transform.rotate",
@@ -262,7 +263,7 @@ class _defs_transform:
def draw_settings(context, layout, tool):
_template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 3)
return dict(
- idname="Scale",
+ idname="builtin.scale",
label="Scale",
# cursor='SCROLL_XY',
icon="ops.transform.resize",
@@ -277,7 +278,7 @@ class _defs_transform:
def draw_settings(context, layout, tool):
_template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 3)
return dict(
- idname="Scale Cage",
+ idname="builtin.scale_cage",
label="Scale Cage",
icon="ops.transform.resize.cage",
widget="VIEW3D_GGT_xform_cage",
@@ -299,7 +300,7 @@ class _defs_transform:
_template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 1)
return dict(
- idname="Transform",
+ idname="builtin.transform",
label="Transform",
description=(
"Supports any combination of grab, rotate & scale at once"
@@ -318,7 +319,7 @@ class _defs_view3d_select:
def draw_settings(context, layout, tool):
pass
return dict(
- idname="Select",
+ idname="builtin.select",
label="Select",
icon="ops.generic.select",
widget=None,
@@ -332,7 +333,7 @@ class _defs_view3d_select:
props = tool.operator_properties("view3d.select_box")
layout.prop(props, "mode", expand=True)
return dict(
- idname="Select Box",
+ idname="builtin.select_box",
label="Select Box",
icon="ops.generic.select_box",
widget=None,
@@ -346,7 +347,7 @@ class _defs_view3d_select:
props = tool.operator_properties("view3d.select_lasso")
layout.prop(props, "mode", expand=True)
return dict(
- idname="Select Lasso",
+ idname="builtin.select_lasso",
label="Select Lasso",
icon="ops.generic.select_lasso",
widget=None,
@@ -368,7 +369,7 @@ class _defs_view3d_select:
draw_circle_2d(xy, (1.0,) * 4, radius, 32)
return dict(
- idname="Select Circle",
+ idname="builtin.select_circle",
label="Select Circle",
icon="ops.generic.select_circle",
widget=None,
@@ -387,7 +388,7 @@ class _defs_edit_armature:
@ToolDef.from_fn
def roll():
return dict(
- idname="Roll",
+ idname="builtin.roll",
label="Roll",
icon="ops.armature.bone.roll",
widget=None,
@@ -397,7 +398,7 @@ class _defs_edit_armature:
@ToolDef.from_fn
def bone_envelope():
return dict(
- idname="Bone Envelope",
+ idname="builtin.bone_envelope",
label="Bone Envelope",
icon="ops.transform.bone_envelope",
widget=None,
@@ -407,7 +408,7 @@ class _defs_edit_armature:
@ToolDef.from_fn
def bone_size():
return dict(
- idname="Bone Size",
+ idname="builtin.bone_size",
label="Bone Size",
icon="ops.transform.bone_size",
widget=None,
@@ -417,7 +418,7 @@ class _defs_edit_armature:
@ToolDef.from_fn
def extrude():
return dict(
- idname="Extrude",
+ idname="builtin.extrude",
label="Extrude",
icon="ops.armature.extrude_move",
widget="VIEW3D_GGT_xform_extrude",
@@ -428,7 +429,7 @@ class _defs_edit_armature:
@ToolDef.from_fn
def extrude_cursor():
return dict(
- idname="Extrude to Cursor",
+ idname="builtin.extrude_to_cursor",
label="Extrude to Cursor",
icon="ops.armature.extrude_cursor",
widget=None,
@@ -441,7 +442,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def cube_add():
return dict(
- idname="Add Cube",
+ idname="builtin.add_cube",
label="Add Cube",
icon="ops.mesh.primitive_cube_add_gizmo",
description=(
@@ -459,7 +460,7 @@ class _defs_edit_mesh:
layout.prop(props_macro, "use_fill")
return dict(
- idname="Rip Region",
+ idname="builtin.rip_region",
label="Rip Region",
icon="ops.mesh.rip",
widget=None,
@@ -470,7 +471,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def rip_edge():
return dict(
- idname="Rip Edge",
+ idname="builtin.rip_edge",
label="Rip Edge",
icon="ops.mesh.rip_edge",
widget=None,
@@ -480,7 +481,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def poly_build():
return dict(
- idname="Poly Build",
+ idname="builtin.poly_build",
label="Poly Build",
icon="ops.mesh.polybuild_hover",
widget="VIEW3D_GGT_mesh_preselect_elem",
@@ -494,7 +495,7 @@ class _defs_edit_mesh:
layout.prop(props, "correct_uv")
return dict(
- idname="Edge Slide",
+ idname="builtin.edge_slide",
label="Edge Slide",
icon="ops.transform.edge_slide",
widget=None,
@@ -509,7 +510,7 @@ class _defs_edit_mesh:
layout.prop(props, "correct_uv")
return dict(
- idname="Vertex Slide",
+ idname="builtin.vertex_slide",
label="Vertex Slide",
icon="ops.transform.vert_slide",
widget=None,
@@ -526,7 +527,7 @@ class _defs_edit_mesh:
layout.prop(props, "axis")
return dict(
- idname="Spin",
+ idname="builtin.spin",
label="Spin",
icon="ops.mesh.spin",
widget="MESH_GGT_spin",
@@ -543,7 +544,7 @@ class _defs_edit_mesh:
layout.prop(props, "axis")
return dict(
- idname="Spin Duplicates",
+ idname="builtin.spin_duplicates",
label="Spin Duplicates",
icon="ops.mesh.spin.duplicate",
widget="MESH_GGT_spin",
@@ -561,7 +562,7 @@ class _defs_edit_mesh:
layout.prop(props, "use_relative_offset")
return dict(
- idname="Inset Faces",
+ idname="builtin.inset_faces",
label="Inset Faces",
icon="ops.mesh.inset",
widget=None,
@@ -579,7 +580,7 @@ class _defs_edit_mesh:
layout.prop(props, "vertex_only")
return dict(
- idname="Bevel",
+ idname="builtin.bevel",
label="Bevel",
icon="ops.mesh.bevel",
widget=None,
@@ -590,7 +591,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def extrude():
return dict(
- idname="Extrude Region",
+ idname="builtin.extrude_region",
label="Extrude Region",
# The operator description isn't useful in this case, give our own.
description=(
@@ -611,7 +612,7 @@ class _defs_edit_mesh:
props_macro = props.TRANSFORM_OT_shrink_fatten
layout.prop(props_macro, "use_even_offset")
return dict(
- idname="Extrude Along Normals",
+ idname="builtin.extrude_along_normals",
label="Extrude Along Normals",
icon="ops.mesh.extrude_region_shrink_fatten",
widget=None,
@@ -623,7 +624,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def extrude_individual():
return dict(
- idname="Extrude Individual",
+ idname="builtin.extrude_individual",
label="Extrude Individual",
icon="ops.mesh.extrude_faces_move",
widget=None,
@@ -637,7 +638,7 @@ class _defs_edit_mesh:
layout.prop(props, "rotate_source")
return dict(
- idname="Extrude to Cursor",
+ idname="builtin.extrude_to_cursor",
label="Extrude to Cursor",
icon="ops.mesh.dupli_extrude_cursor",
widget=None,
@@ -656,7 +657,7 @@ class _defs_edit_mesh:
layout.prop(props_macro, "correct_uv")
return dict(
- idname="Loop Cut",
+ idname="builtin.loop_cut",
label="Loop Cut",
icon="ops.mesh.loopcut_slide",
widget="VIEW3D_GGT_mesh_preselect_edgering",
@@ -667,7 +668,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def offset_edge_loops_slide():
return dict(
- idname="Offset Edge Loop Cut",
+ idname="builtin.offset_edge_loop_cut",
label="Offset Edge Loop Cut",
icon="ops.mesh.offset_edge_loops_slide",
widget=None,
@@ -680,7 +681,7 @@ class _defs_edit_mesh:
props = tool.operator_properties("mesh.vertices_smooth")
layout.prop(props, "repeat")
return dict(
- idname="Smooth",
+ idname="builtin.smooth",
label="Smooth",
icon="ops.mesh.vertices_smooth",
widget="WM_GGT_value_operator_redo",
@@ -696,7 +697,7 @@ class _defs_edit_mesh:
layout.prop(props, "normal")
layout.prop(props, "seed")
return dict(
- idname="Randomize",
+ idname="builtin.randomize",
label="Randomize",
icon="ops.transform.vertex_random",
widget="WM_GGT_value_operator_redo",
@@ -712,7 +713,7 @@ class _defs_edit_mesh:
layout.prop(props, "shear_axis", expand=True)
_template_widget.TRANSFORM_GGT_gizmo.draw_settings_with_index(context, layout, 2)
return dict(
- idname="Shear",
+ idname="builtin.shear",
label="Shear",
icon="ops.transform.shear",
widget="VIEW3D_GGT_xform_shear",
@@ -723,7 +724,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def tosphere():
return dict(
- idname="To Sphere",
+ idname="builtin.to_sphere",
label="To Sphere",
icon="ops.transform.tosphere",
widget=None,
@@ -737,7 +738,7 @@ class _defs_edit_mesh:
layout.prop(props, "use_even_offset")
return dict(
- idname="Shrink/Fatten",
+ idname="builtin.shrink_fatten",
label="Shrink/Fatten",
icon="ops.transform.shrink_fatten",
widget=None,
@@ -748,7 +749,7 @@ class _defs_edit_mesh:
@ToolDef.from_fn
def push_pull():
return dict(
- idname="Push/Pull",
+ idname="builtin.push_pull",
label="Push/Pull",
icon="ops.transform.push_pull",
widget=None,
@@ -763,7 +764,7 @@ class _defs_edit_mesh:
layout.prop(props, "only_selected")
return dict(
- idname="Knife",
+ idname="builtin.knife",
label="Knife",
icon="ops.mesh.knife_tool",
widget=None,
@@ -780,7 +781,7 @@ class _defs_edit_mesh:
layout.prop(props, "clear_outer")
layout.prop(props, "threshold")
return dict(
- idname="Bisect",
+ idname="builtin.bisect",
label="Bisect",
icon="ops.mesh.bisect",
widget=None,
@@ -812,7 +813,7 @@ class _defs_edit_curve:
col.prop(cps, "corner_angle")
return dict(
- idname="Draw",
+ idname="builtin.draw",
label="Draw",
cursor='PAINT_BRUSH',
icon="ops.curve.draw",
@@ -824,7 +825,7 @@ class _defs_edit_curve:
@ToolDef.from_fn
def extrude():
return dict(
- idname="Extrude",
+ idname="builtin.extrude",
label="Extrude",
icon="ops.curve.extrude_move",
widget="VIEW3D_GGT_xform_extrude",
@@ -835,7 +836,7 @@ class _defs_edit_curve:
@ToolDef.from_fn
def extrude_cursor():
return dict(
- idname="Extrude Cursor",
+ idname="builtin.extrude_cursor",
label="Extrude Cursor",
icon="ops.curve.extrude_cursor",
widget=None,
@@ -845,7 +846,7 @@ class _defs_edit_curve:
@ToolDef.from_fn
def tilt():
return dict(
- idname="Tilt",
+ idname="builtin.tilt",
label="Tilt",
icon="ops.transform.tilt",
widget=None,
@@ -855,7 +856,7 @@ class _defs_edit_curve:
@ToolDef.from_fn
def curve_radius():
return dict(
- idname="Radius",
+ idname="builtin.radius",
label="Radius",
description=(
"Expand or contract the radius of the selected curve points"
@@ -873,7 +874,7 @@ class _defs_edit_curve:
layout.prop(props, "normal")
layout.prop(props, "seed")
return dict(
- idname="Randomize",
+ idname="builtin.randomize",
label="Randomize",
icon="ops.curve.vertex_random",
widget="WM_GGT_value_operator_redo",
@@ -887,7 +888,7 @@ class _defs_pose:
@ToolDef.from_fn
def breakdown():
return dict(
- idname="Breakdowner",
+ idname="builtin.breakdowner",
label="Breakdowner",
icon="ops.pose.breakdowner",
widget=None,
@@ -897,7 +898,7 @@ class _defs_pose:
@ToolDef.from_fn
def push():
return dict(
- idname="Push",
+ idname="builtin.push",
label="Push",
icon="ops.pose.push",
widget=None,
@@ -907,7 +908,7 @@ class _defs_pose:
@ToolDef.from_fn
def relax():
return dict(
- idname="Relax",
+ idname="builtin.relax",
label="Relax",
icon="ops.pose.relax",
widget=None,
@@ -921,6 +922,7 @@ class _defs_particle:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.particle.",
type=bpy.types.ParticleEdit,
attr="tool",
@@ -933,6 +935,7 @@ class _defs_sculpt:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.sculpt.",
type=bpy.types.Brush,
attr="sculpt_tool",
@@ -941,7 +944,7 @@ class _defs_sculpt:
@ToolDef.from_fn
def hide_border():
return dict(
- idname="Box Hide",
+ idname="builtin.box_hide",
label="Box Hide",
icon="ops.sculpt.border_hide",
widget=None,
@@ -951,7 +954,7 @@ class _defs_sculpt:
@ToolDef.from_fn
def mask_border():
return dict(
- idname="Box Mask",
+ idname="builtin.box_mask",
label="Box Mask",
icon="ops.sculpt.border_mask",
widget=None,
@@ -972,6 +975,7 @@ class _defs_vertex_paint:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.paint_vertex.",
type=bpy.types.Brush,
attr="vertex_tool",
@@ -990,6 +994,7 @@ class _defs_texture_paint:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.paint_texture.",
type=bpy.types.Brush,
attr="image_tool",
@@ -1009,6 +1014,7 @@ class _defs_weight_paint:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.paint_weight.",
type=bpy.types.Brush,
attr="weight_tool",
@@ -1017,7 +1023,7 @@ class _defs_weight_paint:
@ToolDef.from_fn
def sample_weight():
return dict(
- idname="Sample Weight",
+ idname="builtin.sample_weight",
label="Sample Weight",
icon="ops.paint.weight_sample",
widget=None,
@@ -1027,7 +1033,7 @@ class _defs_weight_paint:
@ToolDef.from_fn
def sample_weight_group():
return dict(
- idname="Sample Vertex Group",
+ idname="builtin.sample_vertex_group",
label="Sample Vertex Group",
icon="ops.paint.weight_sample_group",
widget=None,
@@ -1046,7 +1052,7 @@ class _defs_weight_paint:
layout.prop(props, "type")
return dict(
- idname="Gradient",
+ idname="builtin.gradient",
label="Gradient",
icon="ops.paint.weight_gradient",
widget=None,
@@ -1069,7 +1075,7 @@ class _defs_image_generic:
@ToolDef.from_fn
def cursor():
return dict(
- idname="Cursor",
+ idname="builtin.cursor",
label="Cursor",
description=(
"Set the cursor location, drag to transform"
@@ -1086,7 +1092,7 @@ class _defs_image_generic:
props = tool.operator_properties("image.sample")
layout.prop(props, "size")
return dict(
- idname="Sample",
+ idname="builtin.sample",
label="Sample",
description=(
"Sample pixel values under the cursor"
@@ -1102,7 +1108,7 @@ class _defs_image_uv_transform:
@ToolDef.from_fn
def transform():
return dict(
- idname="Transform",
+ idname="builtin.transform",
label="Transform",
description=(
"Supports any combination of grab, rotate & scale at once"
@@ -1120,7 +1126,7 @@ class _defs_image_uv_select:
def draw_settings(context, layout, tool):
pass
return dict(
- idname="Select",
+ idname="builtin.select",
label="Select",
icon="ops.generic.select",
widget=None,
@@ -1134,7 +1140,7 @@ class _defs_image_uv_select:
props = tool.operator_properties("uv.select_box")
layout.prop(props, "mode", expand=True)
return dict(
- idname="Select Box",
+ idname="builtin.select_box",
label="Select Box",
icon="ops.generic.select_box",
widget=None,
@@ -1148,7 +1154,7 @@ class _defs_image_uv_select:
props = tool.operator_properties("uv.select_lasso")
layout.prop(props, "mode", expand=True)
return dict(
- idname="Select Lasso",
+ idname="builtin.select_lasso",
label="Select Lasso",
icon="ops.generic.select_lasso",
widget=None,
@@ -1163,7 +1169,7 @@ class _defs_image_uv_select:
layout.prop(props, "mode", expand=True)
layout.prop(props, "radius")
return dict(
- idname="Select Circle",
+ idname="builtin.select_circle",
label="Select Circle",
icon="ops.generic.select_circle",
widget=None,
@@ -1178,6 +1184,7 @@ class _defs_image_uv_sculpt:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.uv_sculpt.",
type=bpy.types.ToolSettings,
attr="uv_sculpt_tool",
@@ -1190,6 +1197,7 @@ class _defs_gpencil_paint:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="brush.gpencil_draw.",
type=bpy.types.Brush,
attr="gpencil_tool",
@@ -1201,7 +1209,7 @@ class _defs_gpencil_paint:
@ToolDef.from_fn
def cutter():
return dict(
- idname="Cutter",
+ idname="builtin.cutter",
label="Cutter",
icon="ops.gpencil.stroke_cutter",
cursor='KNIFE',
@@ -1212,7 +1220,7 @@ class _defs_gpencil_paint:
@ToolDef.from_fn
def line():
return dict(
- idname="Line",
+ idname="builtin.line",
label="Line",
icon="ops.gpencil.primitive_line",
cursor='CROSSHAIR',
@@ -1223,7 +1231,7 @@ class _defs_gpencil_paint:
@ToolDef.from_fn
def box():
return dict(
- idname="Box",
+ idname="builtin.box",
label="Box",
icon="ops.gpencil.primitive_box",
cursor='CROSSHAIR',
@@ -1234,7 +1242,7 @@ class _defs_gpencil_paint:
@ToolDef.from_fn
def circle():
return dict(
- idname="Circle",
+ idname="builtin.circle",
label="Circle",
icon="ops.gpencil.primitive_circle",
cursor='CROSSHAIR',
@@ -1245,7 +1253,7 @@ class _defs_gpencil_paint:
@ToolDef.from_fn
def arc():
return dict(
- idname="Arc",
+ idname="builtin.arc",
label="Arc",
icon="ops.gpencil.primitive_arc",
cursor='CROSSHAIR',
@@ -1256,7 +1264,7 @@ class _defs_gpencil_paint:
@ToolDef.from_fn
def curve():
return dict(
- idname="Curve",
+ idname="builtin.curve",
label="Curve",
icon="ops.gpencil.primitive_curve",
cursor='CROSSHAIR',
@@ -1269,7 +1277,7 @@ class _defs_gpencil_edit:
@ToolDef.from_fn
def bend():
return dict(
- idname="Bend",
+ idname="builtin.bend",
label="Bend",
icon="ops.gpencil.edit_bend",
widget=None,
@@ -1281,7 +1289,7 @@ class _defs_gpencil_edit:
def draw_settings(context, layout, tool):
layout.prop(context.tool_settings.gpencil_sculpt, "intersection_threshold")
return dict(
- idname="Select",
+ idname="builtin.select",
label="Select",
icon="ops.generic.select",
widget=None,
@@ -1296,7 +1304,7 @@ class _defs_gpencil_edit:
layout.prop(props, "mode", expand=True)
layout.prop(context.tool_settings.gpencil_sculpt, "intersection_threshold")
return dict(
- idname="Select Box",
+ idname="builtin.select_box",
label="Select Box",
icon="ops.generic.select_box",
widget=None,
@@ -1311,7 +1319,7 @@ class _defs_gpencil_edit:
layout.prop(props, "mode", expand=True)
layout.prop(context.tool_settings.gpencil_sculpt, "intersection_threshold")
return dict(
- idname="Select Lasso",
+ idname="builtin.select_lasso",
label="Select Lasso",
icon="ops.generic.select_lasso",
widget=None,
@@ -1327,7 +1335,7 @@ class _defs_gpencil_edit:
layout.prop(props, "radius")
layout.prop(context.tool_settings.gpencil_sculpt, "intersection_threshold")
return dict(
- idname="Select Circle",
+ idname="builtin.select_circle",
label="Select Circle",
icon="ops.generic.select_circle",
widget=None,
@@ -1338,7 +1346,7 @@ class _defs_gpencil_edit:
@ToolDef.from_fn
def radius():
return dict(
- idname="Radius",
+ idname="builtin.radius",
label="Radius",
description=(
"Expand or contract the radius of the selected points"
@@ -1352,7 +1360,7 @@ class _defs_gpencil_edit:
@ToolDef.from_fn
def shear():
return dict(
- idname="Shear",
+ idname="builtin.shear",
label="Shear",
icon="ops.gpencil.edit_shear",
widget=None,
@@ -1362,7 +1370,7 @@ class _defs_gpencil_edit:
@ToolDef.from_fn
def tosphere():
return dict(
- idname="To Sphere",
+ idname="builtin.to_sphere",
label="To Sphere",
icon="ops.transform.tosphere",
widget=None,
@@ -1372,7 +1380,7 @@ class _defs_gpencil_edit:
@ToolDef.from_fn
def extrude():
return dict(
- idname="Extrude",
+ idname="builtin.extrude",
label="Extrude",
icon="ops.gpencil.extrude_move",
widget="VIEW3D_GGT_xform_extrude",
@@ -1387,6 +1395,7 @@ class _defs_gpencil_sculpt:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="ops.gpencil.sculpt_",
type=bpy.types.GPencilSculptSettings,
attr="sculpt_tool",
@@ -1399,6 +1408,7 @@ class _defs_gpencil_weight:
def generate_from_brushes(context):
return generate_from_enum_ex(
context,
+ idname_prefix="builtin_brush.",
icon_prefix="ops.gpencil.sculpt_",
type=bpy.types.GPencilSculptSettings,
attr="weight_tool",
@@ -1412,7 +1422,7 @@ class _defs_node_select:
def draw_settings(context, layout, tool):
pass
return dict(
- idname="Select",
+ idname="builtin.select",
label="Select",
icon="ops.generic.select",
widget=None,
@@ -1427,7 +1437,7 @@ class _defs_node_select:
layout.prop(props, "mode", expand=True)
pass
return dict(
- idname="Select Box",
+ idname="builtin.select_box",
label="Select Box",
icon="ops.generic.select_box",
widget=None,
@@ -1441,7 +1451,7 @@ class _defs_node_select:
props = tool.operator_properties("node.select_lasso")
layout.prop(props, "mode", expand=True)
return dict(
- idname="Select Lasso",
+ idname="builtin.select_lasso",
label="Select Lasso",
icon="ops.generic.select_lasso",
widget=None,
@@ -1456,7 +1466,7 @@ class _defs_node_select:
layout.prop(props, "mode", expand=True)
layout.prop(props, "radius")
return dict(
- idname="Select Circle",
+ idname="builtin.select_circle",
label="Select Circle",
icon="ops.generic.select_circle",
widget=None,
@@ -1470,7 +1480,7 @@ class _defs_node_edit:
@ToolDef.from_fn
def links_cut():
return dict(
- idname="Links Cut",
+ idname="builtin.links_cut",
label="Links Cut",
icon="ops.node.links_cut",
widget=None,
diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py
index 93a035181da..4b21f5ec96f 100644
--- a/release/scripts/startup/bl_ui/space_topbar.py
+++ b/release/scripts/startup/bl_ui/space_topbar.py
@@ -296,7 +296,7 @@ class _draw_left_context_mode:
is_paint = True
# FIXME: tools must use their own UI drawing!
- if tool.idname in {"Line", "Box", "Circle", "Arc", "Curve"}:
+ if tool.idname in {"builtin.line", "builtin.box", "builtin.circle", "builtin.arc", "builtin.curve"}:
is_paint = False
elif tool.idname == "Cutter":
row = layout.row(align=True)
@@ -351,7 +351,7 @@ class _draw_left_context_mode:
brush_basic_gpencil_paint_settings(layout, context, brush, compact=True)
# FIXME: tools must use their own UI drawing!
- if tool.idname in {"Arc", "Curve", "Line", "Box", "Circle"}:
+ if tool.idname in {"builtin.arc", "builtin.curve", "builtin.line", "builtin.box", "builtin.circle"}:
settings = context.tool_settings.gpencil_sculpt
row = layout.row(align=True)
row.prop(settings, "use_thickness_curve", text="", icon='CURVE_DATA')
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index d98647b363e..d1d1468914a 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -257,7 +257,7 @@ class VIEW3D_HT_header(Header):
if object_mode == 'PAINT_GPENCIL':
# FIXME: this is bad practice!
# Tool options are to be displayed in the topbar.
- if context.workspace.tools.from_space_view3d_mode(object_mode).idname == "Draw":
+ if context.workspace.tools.from_space_view3d_mode(object_mode).idname == "builtin.draw":
settings = tool_settings.gpencil_sculpt.guide
row = layout.row(align=True)
row.prop(settings, "use_guide", text="", icon='GRID')
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h
index 75104999402..031e4deb1a8 100644
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@ -24,7 +24,7 @@
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 280
-#define BLENDER_SUBVERSION 48
+#define BLENDER_SUBVERSION 49
/* Several breakages with 280, e.g. collections vs layers */
#define BLENDER_MINVERSION 280
#define BLENDER_MINSUBVERSION 0
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 9adab610530..7005ae2302c 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -2893,6 +2893,15 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
+ if (!MAIN_VERSION_ATLEAST(bmain, 280, 49)) {
+ /* All tool names changed, reset to defaults. */
+ for (WorkSpace *workspace = bmain->workspaces.first; workspace; workspace = workspace->id.next) {
+ while (!BLI_listbase_is_empty(&workspace->tools)) {
+ BKE_workspace_tool_remove(workspace, workspace->tools.first);
+ }
+ }
+ }
+
{
/* Versioning code until next subversion bump goes here. */
}
diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c
index 2e6a399d0ea..435590cbecb 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -1620,18 +1620,18 @@ static void WIDGETGROUP_gizmo_setup(const bContext *C, wmGizmoGroup *gzgroup)
ScrArea *sa = CTX_wm_area(C);
const bToolRef *tref = sa->runtime.tool;
- if (tref == NULL || STREQ(tref->idname, "Transform")) {
+ if (tref == NULL || STREQ(tref->idname, "builtin.transform")) {
/* Setup all gizmos, they can be toggled via 'ToolSettings.gizmo_flag' */
ggd->twtype = SCE_GIZMO_SHOW_TRANSLATE | SCE_GIZMO_SHOW_ROTATE | SCE_GIZMO_SHOW_SCALE;
ggd->use_twtype_refresh = true;
}
- else if (STREQ(tref->idname, "Move")) {
+ else if (STREQ(tref->idname, "builtin.move")) {
ggd->twtype |= SCE_GIZMO_SHOW_TRANSLATE;
}
- else if (STREQ(tref->idname, "Rotate")) {
+ else if (STREQ(tref->idname, "builtin.rotate")) {
ggd->twtype |= SCE_GIZMO_SHOW_ROTATE;
}
- else if (STREQ(tref->idname, "Scale")) {
+ else if (STREQ(tref->idname, "builtin.scale")) {
ggd->twtype |= SCE_GIZMO_SHOW_SCALE;
}
BLI_assert(ggd->twtype != 0);
diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c
index 75bcee562a0..806bd028295 100644
--- a/source/blender/windowmanager/intern/wm_toolsystem.c
+++ b/source/blender/windowmanager/intern/wm_toolsystem.c
@@ -475,7 +475,7 @@ void WM_toolsystem_ref_sync_from_context(
const EnumPropertyItem *item = &items[i];
if (!STREQ(tref_rt->data_block, item->identifier)) {
STRNCPY(tref_rt->data_block, item->identifier);
- STRNCPY(tref->idname, item->name);
+ SNPRINTF(tref->idname, "builtin_brush.%s", item->name);
}
}
}
@@ -488,7 +488,7 @@ void WM_toolsystem_ref_sync_from_context(
const EnumPropertyItem *item = &items[i];
if (!STREQ(tref_rt->data_block, item->identifier)) {
STRNCPY(tref_rt->data_block, item->identifier);
- STRNCPY(tref->idname, item->name);
+ SNPRINTF(tref->idname, "builtin_brush.%s", item->name);
}
}
}
@@ -501,7 +501,7 @@ void WM_toolsystem_ref_sync_from_context(
const EnumPropertyItem *item = &items[i];
if (!STREQ(tref_rt->data_block, item->identifier)) {
STRNCPY(tref_rt->data_block, item->identifier);
- STRNCPY(tref->idname, item->name);
+ SNPRINTF(tref->idname, "builtin_brush.%s", item->name);
}
}
}
@@ -514,7 +514,7 @@ void WM_toolsystem_ref_sync_from_context(
const EnumPropertyItem *item = &items[i];
if (!STREQ(tref_rt->data_block, item->identifier)) {
STRNCPY(tref_rt->data_block, item->identifier);
- STRNCPY(tref->idname, item->name);
+ SNPRINTF(tref->idname, "builtin_brush.%s", item->name);
}
}
}
@@ -532,7 +532,7 @@ void WM_toolsystem_ref_sync_from_context(
const char *identifier = items[i].identifier;
if (!STREQ(tref_rt->data_block, identifier)) {
STRNCPY(tref_rt->data_block, identifier);
- STRNCPY(tref->idname, name);
+ SNPRINTF(tref->idname, "builtin_brush.%s", name);
}
}
}
@@ -790,31 +790,31 @@ static const char *toolsystem_default_tool(const bToolKey *tkey)
case CTX_MODE_WEIGHT_GPENCIL:
case CTX_MODE_PAINT_TEXTURE:
case CTX_MODE_PAINT_GPENCIL:
- return "Draw";
+ return "builtin_brush.Draw";
case CTX_MODE_SCULPT_GPENCIL:
- return "Push";
+ return "builtin_brush.Push";
/* end temporary hack. */
case CTX_MODE_PARTICLE:
- return "Comb";
+ return "builtin_brush.Comb";
case CTX_MODE_EDIT_TEXT:
- return "Cursor";
+ return "builtin.cursor";
}
break;
case SPACE_IMAGE:
switch (tkey->mode) {
case SI_MODE_PAINT:
- return "Draw";
+ return "builtin_brush.draw";
}
break;
case SPACE_NODE:
{
/* 'Select Box' interferes with cut-links which is handy. */
- return "Select";
+ return "builtin.select";
}
}
- return "Select Box";
+ return "builtin.select_box";
}
/**