diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-05-14 08:05:19 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-05-14 08:19:50 +0300 |
commit | 1f891bbc2c329f06ca3f89ebc659a1919cc5185f (patch) | |
tree | ab16f713550b16de98b67de36f5ef6f57620e1a7 /release/scripts/startup/bl_operators | |
parent | 9c9081d9ef5bf97b39f316d68651f7e72266ac5d (diff) |
Keymap: add option for tilde key preference
Since the view menu is redundant for people with a numpad,
add a preference for it to switch between gizmos instead.
Diffstat (limited to 'release/scripts/startup/bl_operators')
-rw-r--r-- | release/scripts/startup/bl_operators/view3d.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py index e1d2dda0aea..9a7d868bfc4 100644 --- a/release/scripts/startup/bl_operators/view3d.py +++ b/release/scripts/startup/bl_operators/view3d.py @@ -20,6 +20,10 @@ import bpy from bpy.types import Operator +from bpy.props import ( + BoolProperty, + EnumProperty, +) class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator): @@ -138,8 +142,55 @@ class VIEW3D_OT_edit_mesh_extrude_shrink_fatten(Operator): return self.execute(context) +class VIEW3D_OT_transform_gizmo_set(Operator): + """Set the current transform gizmo""" + bl_label = "Transform Gizmo Set" + bl_options = {'REGISTER', 'UNDO'} + bl_idname = "view3d.transform_gizmo_set" + + extend: BoolProperty( + default=False, + ) + type: EnumProperty( + items=( + ('TRANSLATE', "Move", ""), + ('ROTATE', "Rotate", ""), + ('SCALE', "Scale", ""), + ), + options={'ENUM_FLAG'}, + ) + + @classmethod + def poll(cls, context): + return context.area.type == 'VIEW_3D' + + def execute(self, context): + space_data = context.space_data + space_data.show_gizmo = True + attrs = ("show_gizmo_object_translate", "show_gizmo_object_rotate", "show_gizmo_object_scale") + attr_t, attr_r, attr_s = attrs + attr_active = tuple( + attrs[('TRANSLATE', 'ROTATE', 'SCALE').index(t)] + for t in self.type + ) + if self.extend: + for attr in attrs: + if attr in attr_active: + setattr(space_data, attr, True) + else: + for attr in attrs: + setattr(space_data, attr, attr in attr_active) + return {'FINISHED'} + + def invoke(self, context, event): + if not self.properties.is_property_set("extend"): + self.extend = event.shift + return self.execute(context) + + classes = ( VIEW3D_OT_edit_mesh_extrude_individual_move, VIEW3D_OT_edit_mesh_extrude_move, VIEW3D_OT_edit_mesh_extrude_shrink_fatten, + VIEW3D_OT_transform_gizmo_set, ) |