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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlijenstina <lijenstina@gmail.com>2017-07-05 02:22:14 +0300
committerlijenstina <lijenstina@gmail.com>2017-07-05 02:22:14 +0300
commit99ed610784b804c175d9e189d9a1b3036973ed61 (patch)
tree9865ee8d7e95d9747a349409139e0849db6d1d60 /space_view3d_pie_menus/pie_apply_transform_menu.py
parent759595b17b3a4b04f800d2c12e2af80aa63e4c29 (diff)
3D Viewport Pie Menus: Cleanup, refactor, fix key register
Bumped version to 1.1.5 Pep8 cleanup Remove the pie_origin_cursor.py since it is not needed anymore Part of the T51547: refactor the key unregister code so it matches the official pies Note: using this code was crashing blender because of Bool Tool key registration that left out some lingering keys on unregister reload Also there were some wrong calls with the unregister within the pies themselves Merge some operators where possible (around 7 less in total) and use passing arguments instead Add Enable All / Disable all buttons in the preferences Comment out the code for authors in the init instead of in individual scripts Remove unused imports and cameratoto scene prop Add an icon at end of registrations line Fix several crashes with operators being called out of context
Diffstat (limited to 'space_view3d_pie_menus/pie_apply_transform_menu.py')
-rw-r--r--space_view3d_pie_menus/pie_apply_transform_menu.py87
1 files changed, 34 insertions, 53 deletions
diff --git a/space_view3d_pie_menus/pie_apply_transform_menu.py b/space_view3d_pie_menus/pie_apply_transform_menu.py
index 802de3d6..7eb0a3a9 100644
--- a/space_view3d_pie_menus/pie_apply_transform_menu.py
+++ b/space_view3d_pie_menus/pie_apply_transform_menu.py
@@ -21,8 +21,8 @@
bl_info = {
"name": "Hotkey: 'Ctrl A'",
"description": "Apply Transform Menu",
- # "author": "pitiwazou, meta-androcto",
- # "version": (0, 1, 0),
+ "author": "pitiwazou, meta-androcto",
+ "version": (0, 1, 1),
"blender": (2, 77, 0),
"location": "3D View",
"warning": "",
@@ -35,10 +35,10 @@ from bpy.types import (
Menu,
Operator,
)
-
-# Pie Apply Transforms - Ctrl + A
+from bpy.props import EnumProperty
+# Pie Apply Transforms - Ctrl + A
class PieApplyTransforms(Menu):
bl_idname = "pie.applytranforms"
bl_label = "Pie Apply Transforms"
@@ -53,58 +53,44 @@ class PieApplyTransforms(Menu):
# 2 - BOTTOM
pie.operator("object.duplicates_make_real", text="Make Duplicates Real")
# 8 - TOP
- pie.operator("apply.transformrotation", text="Rotation", icon='MAN_ROT')
+ pie.operator("apply.transformlocrotscale", text="Rotation", icon='MAN_ROT').option = 'ROT'
# 7 - TOP - LEFT
- pie.operator("apply.transformlocation", text="Location", icon='MAN_TRANS')
+ pie.operator("apply.transformlocrotscale", text="Location", icon='MAN_ROT').option = 'LOC'
# 9 - TOP - RIGHT
- pie.operator("apply.transformscale", text="Scale", icon='MAN_SCALE')
+ pie.operator("apply.transformlocrotscale", text="Scale", icon='MAN_ROT').option = 'SCALE'
# 1 - BOTTOM - LEFT
pie.operator("object.visual_transform_apply", text="Visual Transforms")
# 3 - BOTTOM - RIGHT
pie.menu("clear.menu", text="Clear Transform Menu")
-# Apply Transforms
-
-
-class ApplyTransformLocation(Operator):
- bl_idname = "apply.transformlocation"
- bl_label = "Apply Transform Location"
- bl_description = "Apply Transform Location"
- bl_options = {'REGISTER', 'UNDO'}
-
- def execute(self, context):
- bpy.ops.object.transform_apply(location=True, rotation=False, scale=False)
- return {'FINISHED'}
# Apply Transforms
-
-
-class ApplyTransformRotation(Operator):
- bl_idname = "apply.transformrotation"
- bl_label = "Apply Transform Rotation"
- bl_description = "Apply Transform Rotation"
+class ApplyTransLocRotPie(Operator):
+ bl_idname = "apply.transformlocrotscale"
+ bl_label = "Apply Transforms"
+ bl_description = "Apply Transform: Location, Rotation or Scale"
bl_options = {'REGISTER', 'UNDO'}
- def execute(self, context):
- bpy.ops.object.transform_apply(location=False, rotation=True, scale=False)
- return {'FINISHED'}
-
-# Apply Transforms
-
-
-class ApplyTransformScale(Operator):
- bl_idname = "apply.transformscale"
- bl_label = "Apply Transform Scale"
- bl_description = "Apply Transform Scale"
- bl_options = {'REGISTER', 'UNDO'}
+ option = EnumProperty(
+ name="Type",
+ items=[
+ ("LOC", "Location", "Apply Location"),
+ ("ROT", "Rotation", "Apply Rotation"),
+ ("SCALE", "Scale", "Apply Scale")
+ ],
+ default="LOC",
+ )
def execute(self, context):
- bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
+ loc = True if self.option == "LOC" else False
+ rot = True if self.option == "ROT" else False
+ sca = True if self.option == "SCALE" else False
+ bpy.ops.object.transform_apply(location=loc, rotation=rot, scale=sca)
+
return {'FINISHED'}
# Apply Transforms
-
class ApplyTransformAll(Operator):
bl_idname = "apply.transformall"
bl_label = "Apply All Transforms"
@@ -115,9 +101,8 @@ class ApplyTransformAll(Operator):
bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
return {'FINISHED'}
-# Clear Menu
-
+# Clear Menu
class ClearMenu(Menu):
bl_idname = "clear.menu"
bl_label = "Clear Menu"
@@ -129,9 +114,8 @@ class ClearMenu(Menu):
layout.operator("object.scale_clear", text="Clear Scale", icon='MAN_SCALE')
layout.operator("object.origin_clear", text="Clear Origin", icon='MANIPUL')
-# Clear all
-
+# Clear all
class ClearAll(Operator):
bl_idname = "clear.all"
bl_label = "Clear All"
@@ -144,11 +128,10 @@ class ClearAll(Operator):
bpy.ops.object.scale_clear()
return {'FINISHED'}
+
classes = (
PieApplyTransforms,
- ApplyTransformLocation,
- ApplyTransformRotation,
- ApplyTransformScale,
+ ApplyTransLocRotPie,
ApplyTransformAll,
ClearMenu,
ClearAll,
@@ -167,22 +150,20 @@ def register():
km = wm.keyconfigs.addon.keymaps.new(name='Object Mode')
kmi = km.keymap_items.new('wm.call_menu_pie', 'A', 'PRESS', ctrl=True)
kmi.properties.name = "pie.applytranforms"
-# kmi.active = True
addon_keymaps.append((km, kmi))
def unregister():
for cls in classes:
bpy.utils.unregister_class(cls)
- wm = bpy.context.window_manager
+ wm = bpy.context.window_manager
kc = wm.keyconfigs.addon
if kc:
- km = kc.keymaps['Object Mode']
- for kmi in km.keymap_items:
- if kmi.idname == 'wm.call_menu_pie':
- if kmi.properties.name == "pie.applytranforms":
- km.keymap_items.remove(kmi)
+ for km, kmi in addon_keymaps:
+ km.keymap_items.remove(kmi)
+ addon_keymaps.clear()
+
if __name__ == "__main__":
register()