From 1c48ab262294469fd246d86089a8a7f45368b2f2 Mon Sep 17 00:00:00 2001 From: Demeter Dzadik Date: Sat, 17 Aug 2024 03:49:14 +0100 Subject: [PATCH 1/2] Refactor Proportional Editing Pie No functional changes intended (that will come in next commit), but it turns out we were summoning the wrong pie menu in edit mode, so, that's fixed. --- source/pie_proportional_menu.py | 378 ++++---------------------------- 1 file changed, 47 insertions(+), 331 deletions(-) diff --git a/source/pie_proportional_menu.py b/source/pie_proportional_menu.py index 53f8ad6..4154311 100644 --- a/source/pie_proportional_menu.py +++ b/source/pie_proportional_menu.py @@ -3,291 +3,31 @@ # SPDX-License-Identifier: GPL-2.0-or-later -from bpy.types import ( - Menu, - Operator, -) +from bpy.types import Menu, Operator +from bpy.props import StringProperty from .hotkeys import register_hotkey -# Proportional Edit Object -class PIE_OT_ProportionalEditObj(Operator): - bl_idname = "proportional_obj.active" - bl_label = "Proportional Edit Object" +class PIE_OT_set_proportional_falloff(Operator): + """Enable proportional editing and set the falloff curve""" + bl_idname = "object.set_proportional_falloff" + bl_label = "Set Proportional Editing Falloff" bl_options = {'REGISTER', 'UNDO'} + falloff_shape: StringProperty() + def execute(self, context): ts = context.tool_settings - - if ts.use_proportional_edit_objects is True: - ts.use_proportional_edit_objects = False - - elif ts.use_proportional_edit_objects is False: + if context.mode == 'OBJECT': ts.use_proportional_edit_objects = True + else: + ts.use_proportional_edit = True + ts.proportional_edit_falloff = self.falloff_shape return {'FINISHED'} -class PIE_OT_ProportionalSmoothObj(Operator): - bl_idname = "proportional_obj.smooth" - bl_label = "Proportional Smooth Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'SMOOTH' - - if ts.proportional_edit_falloff != 'SMOOTH': - ts.proportional_edit_falloff = 'SMOOTH' - return {'FINISHED'} - - -class PIE_OT_ProportionalSphereObj(Operator): - bl_idname = "proportional_obj.sphere" - bl_label = "Proportional Sphere Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'SPHERE' - - if ts.proportional_edit_falloff != 'SPHERE': - ts.proportional_edit_falloff = 'SPHERE' - return {'FINISHED'} - - -class PIE_OT_ProportionalRootObj(Operator): - bl_idname = "proportional_obj.root" - bl_label = "Proportional Root Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'ROOT' - - if ts.proportional_edit_falloff != 'ROOT': - ts.proportional_edit_falloff = 'ROOT' - return {'FINISHED'} - - -class PIE_OT_ProportionalSharpObj(Operator): - bl_idname = "proportional_obj.sharp" - bl_label = "Proportional Sharp Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'SHARP' - - if ts.proportional_edit_falloff != 'SHARP': - ts.proportional_edit_falloff = 'SHARP' - return {'FINISHED'} - - -class PIE_OT_ProportionalLinearObj(Operator): - bl_idname = "proportional_obj.linear" - bl_label = "Proportional Linear Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'LINEAR' - - if ts.proportional_edit_falloff != 'LINEAR': - ts.proportional_edit_falloff = 'LINEAR' - return {'FINISHED'} - - -class PIE_OT_ProportionalConstantObj(Operator): - bl_idname = "proportional_obj.constant" - bl_label = "Proportional Constant Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'CONSTANT' - - if ts.proportional_edit_falloff != 'CONSTANT': - ts.proportional_edit_falloff = 'CONSTANT' - return {'FINISHED'} - - -class PIE_OT_ProportionalRandomObj(Operator): - bl_idname = "proportional_obj.random" - bl_label = "Proportional Random Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'RANDOM' - - if ts.proportional_edit_falloff != 'RANDOM': - ts.proportional_edit_falloff = 'RANDOM' - return {'FINISHED'} - - -class PIE_OT_ProportionalInverseSquareObj(Operator): - bl_idname = "proportional_obj.inversesquare" - bl_label = "Proportional Random Object" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - if ts.use_proportional_edit_objects is False: - ts.use_proportional_edit_objects = True - ts.proportional_edit_falloff = 'INVERSE_SQUARE' - - if ts.proportional_edit_falloff != 'INVERSE_SQUARE': - ts.proportional_edit_falloff = 'INVERSE_SQUARE' - return {'FINISHED'} - - -# Proportional Edit Edit Mode -class PIE_OT_ProportionalEditEdt(Operator): - bl_idname = "proportional_edt.active" - bl_label = "Proportional Edit EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit ^= 1 - return {'FINISHED'} - - -class PIE_OT_ProportionalConnectedEdt(Operator): - bl_idname = "proportional_edt.connected" - bl_label = "Proportional Connected EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_connected ^= 1 - return {'FINISHED'} - - -class PIE_OT_ProportionalProjectedEdt(Operator): - bl_idname = "proportional_edt.projected" - bl_label = "Proportional projected EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_projected ^= 1 - return {'FINISHED'} - - -class PIE_OT_ProportionalSmoothEdt(Operator): - bl_idname = "proportional_edt.smooth" - bl_label = "Proportional Smooth EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'SMOOTH' - return {'FINISHED'} - - -class PIE_OT_ProportionalSphereEdt(Operator): - bl_idname = "proportional_edt.sphere" - bl_label = "Proportional Sphere EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'SPHERE' - return {'FINISHED'} - - -class PIE_OT_ProportionalRootEdt(Operator): - bl_idname = "proportional_edt.root" - bl_label = "Proportional Root EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'ROOT' - return {'FINISHED'} - - -class PIE_OT_ProportionalSharpEdt(Operator): - bl_idname = "proportional_edt.sharp" - bl_label = "Proportional Sharp EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'SHARP' - return {'FINISHED'} - - -class PIE_OT_ProportionalLinearEdt(Operator): - bl_idname = "proportional_edt.linear" - bl_label = "Proportional Linear EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'LINEAR' - return {'FINISHED'} - - -class PIE_OT_ProportionalConstantEdt(Operator): - bl_idname = "proportional_edt.constant" - bl_label = "Proportional Constant EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'CONSTANT' - return {'FINISHED'} - - -class PIE_OT_ProportionalRandomEdt(Operator): - bl_idname = "proportional_edt.random" - bl_label = "Proportional Random EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'RANDOM' - return {'FINISHED'} - - -class PIE_OT_ProportionalInverseSquareEdt(Operator): - bl_idname = "proportional_edt.inversesquare" - bl_label = "Proportional Inverese Square EditMode" - bl_options = {'REGISTER', 'UNDO'} - - def execute(self, context): - ts = context.tool_settings - ts.use_proportional_edit = True - ts.proportional_edit_falloff = 'INVERSE_SQUARE' - return {'FINISHED'} - - -# Pie ProportionalEditObj - O -class PIE_MT_ProportionalObj(Menu): +class PIE_MT_proportional_edit_obj(Menu): bl_idname = "PIE_MT_proportional_obj" bl_label = "Proportional Editing Pie" @@ -295,11 +35,11 @@ class PIE_MT_ProportionalObj(Menu): layout = self.layout pie = layout.menu_pie() # 4 - LEFT - pie.operator("proportional_obj.smooth", text="Smooth", icon='SMOOTHCURVE') + pie.operator("object.set_proportional_falloff", text="Smooth", icon='SMOOTHCURVE').falloff_shape='SMOOTH' # 6 - RIGHT - pie.operator("proportional_obj.sphere", text="Sphere", icon='SPHERECURVE') + pie.operator("object.set_proportional_falloff", text="Sphere", icon='SPHERECURVE').falloff_shape='SPHERE' # 2 - BOTTOM - pie.operator("proportional_obj.linear", text="Linear", icon='LINCURVE') + pie.operator("object.set_proportional_falloff", text="Linear", icon='LINCURVE').falloff_shape='LINEAR' # 8 - TOP pie.prop( context.tool_settings, @@ -307,55 +47,51 @@ class PIE_MT_ProportionalObj(Menu): text="Proportional On/Off", ) # 7 - TOP - LEFT - pie.operator("proportional_obj.root", text="Root", icon='ROOTCURVE') + pie.operator("object.set_proportional_falloff", text="Root", icon='ROOTCURVE').falloff_shape='ROOT' # 9 - TOP - RIGHT pie.operator( - "proportional_obj.inversesquare", + "object.set_proportional_falloff", text="Inverse Square", icon='INVERSESQUARECURVE', - ) + ).falloff_shape='INVERSE_SQUARE' # 1 - BOTTOM - LEFT - pie.operator("proportional_obj.sharp", text="Sharp", icon='SHARPCURVE') + pie.operator("object.set_proportional_falloff", text="Sharp", icon='SHARPCURVE').falloff_shape='SHARP' # 3 - BOTTOM - RIGHT - pie.menu("PIE_MT_proportional_moreob", text="More", icon='LINCURVE') + pie.menu("PIE_MT_proportional_moreob", text="More...", icon='THREE_DOTS') -# Pie ProportionalEditEdt - O -class PIE_MT_ProportionalEdt(Menu): +class PIE_MT_proportional_edit_mesh(Menu): bl_idname = "PIE_MT_proportional_edt" bl_label = "Proportional Editing Pie" def draw(self, context): + ts = context.tool_settings + layout = self.layout pie = layout.menu_pie() # 4 - LEFT - pie.operator("proportional_edt.smooth", text="Smooth", icon='SMOOTHCURVE') + pie.operator("object.set_proportional_falloff", text="Smooth", icon='SMOOTHCURVE').falloff_shape='SMOOTH' # 6 - RIGHT - pie.operator("proportional_edt.sphere", text="Sphere", icon='SPHERECURVE') + pie.operator("object.set_proportional_falloff", text="Sphere", icon='SPHERECURVE').falloff_shape='SPHERE' # 2 - BOTTOM pie.operator( - "proportional_edt.inversesquare", + "object.set_proportional_falloff", text="Inverse Square", icon='INVERSESQUARECURVE', - ) + ).falloff_shape='INVERSE_SQUARE' # 8 - TOP - pie.operator( - "proportional_edt.active", text="Proportional On/Off", icon='PROP_ON' - ) + pie.prop(ts, "use_proportional_edit", text="Toggle Proportional", icon='PROP_ON') # 7 - TOP - LEFT - pie.operator("proportional_edt.connected", text="Connected", icon='PROP_CON') + pie.prop(ts, "use_proportional_connected", text="Toggle Connected", icon='PROP_CON') # 9 - TOP - RIGHT - pie.operator( - "proportional_edt.projected", text="Projected", icon='PROP_PROJECTED' - ) + pie.prop(ts, "use_proportional_projected", text="Toggle Projected", icon='PROP_PROJECTED') # 1 - BOTTOM - LEFT - pie.operator("proportional_edt.root", text="Root", icon='ROOTCURVE') + pie.operator("object.set_proportional_falloff", text="Root", icon='ROOTCURVE').falloff_shape='ROOT' # 3 - BOTTOM - RIGHT - pie.menu("PIE_MT_proportional_more", text="More", icon='LINCURVE') + pie.menu("PIE_MT_proportional_more", text="More...", icon='THREE_DOTS') -# Pie ProportionalEditEdt - O -class PIE_MT_ProportionalMore(Menu): +class PIE_MT_proportional_edit_mesh_more(Menu): bl_idname = "PIE_MT_proportional_more" bl_label = "More Falloff Shapes" @@ -363,14 +99,13 @@ class PIE_MT_ProportionalMore(Menu): layout = self.layout pie = layout.menu_pie() box = pie.split().column() - box.operator("proportional_edt.sharp", text="Sharp", icon='SHARPCURVE') - box.operator("proportional_edt.linear", text="Linear", icon='LINCURVE') - box.operator("proportional_edt.constant", text="Constant", icon='NOCURVE') - box.operator("proportional_edt.random", text="Random", icon='RNDCURVE') + box.operator("object.set_proportional_falloff", text="Sharp", icon='SHARPCURVE').falloff_shape='SHARP' + box.operator("object.set_proportional_falloff", text="Linear", icon='LINCURVE').falloff_shape='LINEAR' + box.operator("object.set_proportional_falloff", text="Constant", icon='NOCURVE').falloff_shape='CONSTANT' + box.operator("object.set_proportional_falloff", text="Random", icon='RNDCURVE').falloff_shape='RANDOM' -# Pie ProportionalEditEdt2 -class PIE_MT_proportionalmoreob(Menu): +class PIE_MT_proportional_edit_obj_more(Menu): bl_idname = "PIE_MT_proportional_moreob" bl_label = "Proportional Falloffs" @@ -378,35 +113,16 @@ class PIE_MT_proportionalmoreob(Menu): layout = self.layout pie = layout.menu_pie() box = pie.split().column() - box.operator("proportional_obj.constant", text="Constant", icon='NOCURVE') - box.operator("proportional_obj.random", text="Random", icon='RNDCURVE') + box.operator("object.set_proportional_falloff", text="Constant", icon='NOCURVE').falloff_shape='CONSTANT' + box.operator("object.set_proportional_falloff", text="Random", icon='RNDCURVE').falloff_shape='RANDOM' registry = ( - PIE_OT_ProportionalEditObj, - PIE_OT_ProportionalSmoothObj, - PIE_OT_ProportionalSphereObj, - PIE_OT_ProportionalRootObj, - PIE_OT_ProportionalSharpObj, - PIE_OT_ProportionalLinearObj, - PIE_OT_ProportionalConstantObj, - PIE_OT_ProportionalRandomObj, - PIE_OT_ProportionalInverseSquareObj, - PIE_OT_ProportionalEditEdt, - PIE_OT_ProportionalConnectedEdt, - PIE_OT_ProportionalProjectedEdt, - PIE_OT_ProportionalSmoothEdt, - PIE_OT_ProportionalSphereEdt, - PIE_OT_ProportionalRootEdt, - PIE_OT_ProportionalSharpEdt, - PIE_OT_ProportionalLinearEdt, - PIE_OT_ProportionalConstantEdt, - PIE_OT_ProportionalRandomEdt, - PIE_OT_ProportionalInverseSquareEdt, - PIE_MT_ProportionalObj, - PIE_MT_ProportionalEdt, - PIE_MT_ProportionalMore, - PIE_MT_proportionalmoreob, + PIE_OT_set_proportional_falloff, + PIE_MT_proportional_edit_obj, + PIE_MT_proportional_edit_mesh, + PIE_MT_proportional_edit_mesh_more, + PIE_MT_proportional_edit_obj_more, ) @@ -419,7 +135,7 @@ def register(): ) register_hotkey( 'wm.call_menu_pie', - op_kwargs={'name': 'PIE_MT_proportional_obj'}, + op_kwargs={'name': 'PIE_MT_proportional_edt'}, hotkey_kwargs={'type': "O", 'value': "PRESS", 'shift': True}, key_cat="Mesh", ) -- 2.30.2 From 7340c9c34781746b020439e7d1a96541da0f1c57 Mon Sep 17 00:00:00 2001 From: Demeter Dzadik Date: Sat, 17 Aug 2024 04:10:54 +0100 Subject: [PATCH 2/2] Proportional Pie: Reorganize layout --- source/pie_proportional_menu.py | 113 +++++++++++++------------------- 1 file changed, 44 insertions(+), 69 deletions(-) diff --git a/source/pie_proportional_menu.py b/source/pie_proportional_menu.py index 4154311..c4d769b 100644 --- a/source/pie_proportional_menu.py +++ b/source/pie_proportional_menu.py @@ -27,100 +27,75 @@ class PIE_OT_set_proportional_falloff(Operator): return {'FINISHED'} -class PIE_MT_proportional_edit_obj(Menu): - bl_idname = "PIE_MT_proportional_obj" - bl_label = "Proportional Editing Pie" - - def draw(self, context): - layout = self.layout - pie = layout.menu_pie() - # 4 - LEFT - pie.operator("object.set_proportional_falloff", text="Smooth", icon='SMOOTHCURVE').falloff_shape='SMOOTH' - # 6 - RIGHT - pie.operator("object.set_proportional_falloff", text="Sphere", icon='SPHERECURVE').falloff_shape='SPHERE' - # 2 - BOTTOM - pie.operator("object.set_proportional_falloff", text="Linear", icon='LINCURVE').falloff_shape='LINEAR' - # 8 - TOP - pie.prop( - context.tool_settings, - "use_proportional_edit_objects", - text="Proportional On/Off", - ) - # 7 - TOP - LEFT - pie.operator("object.set_proportional_falloff", text="Root", icon='ROOTCURVE').falloff_shape='ROOT' - # 9 - TOP - RIGHT - pie.operator( - "object.set_proportional_falloff", - text="Inverse Square", - icon='INVERSESQUARECURVE', - ).falloff_shape='INVERSE_SQUARE' - # 1 - BOTTOM - LEFT - pie.operator("object.set_proportional_falloff", text="Sharp", icon='SHARPCURVE').falloff_shape='SHARP' - # 3 - BOTTOM - RIGHT - pie.menu("PIE_MT_proportional_moreob", text="More...", icon='THREE_DOTS') - - -class PIE_MT_proportional_edit_mesh(Menu): - bl_idname = "PIE_MT_proportional_edt" +class PIE_MT_proportional_edit(Menu): + bl_idname = "PIE_MT_proportional_edit" bl_label = "Proportional Editing Pie" def draw(self, context): ts = context.tool_settings - layout = self.layout pie = layout.menu_pie() + # 4 - LEFT pie.operator("object.set_proportional_falloff", text="Smooth", icon='SMOOTHCURVE').falloff_shape='SMOOTH' + # 6 - RIGHT - pie.operator("object.set_proportional_falloff", text="Sphere", icon='SPHERECURVE').falloff_shape='SPHERE' + if context.mode == 'OBJECT': + pie.menu("PIE_MT_proportional_edit_obj_more", text="More...", icon='THREE_DOTS') + else: + pie.menu("PIE_MT_proportional_edit_mesh_more", text="More...", icon='THREE_DOTS') + # 2 - BOTTOM - pie.operator( - "object.set_proportional_falloff", - text="Inverse Square", - icon='INVERSESQUARECURVE', - ).falloff_shape='INVERSE_SQUARE' - # 8 - TOP - pie.prop(ts, "use_proportional_edit", text="Toggle Proportional", icon='PROP_ON') - # 7 - TOP - LEFT - pie.prop(ts, "use_proportional_connected", text="Toggle Connected", icon='PROP_CON') - # 9 - TOP - RIGHT - pie.prop(ts, "use_proportional_projected", text="Toggle Projected", icon='PROP_PROJECTED') + pie.operator("object.set_proportional_falloff", text="Sharp", icon='SHARPCURVE').falloff_shape='SHARP' + + if context.mode == 'OBJECT': + # 8 - TOP + pie.prop(ts, "use_proportional_edit_objects", text="Toggle Proportional") + # 7 - TOP - LEFT + pie.operator("object.set_proportional_falloff", text="Root", icon='ROOTCURVE').falloff_shape='ROOT' + # 9 - TOP - RIGHT + pie.operator("object.set_proportional_falloff", text="Inverse Square", icon='INVERSESQUARECURVE').falloff_shape='INVERSE_SQUARE' + else: + # 8 - TOP + pie.prop(ts, "use_proportional_edit", text="Toggle Proportional", icon='PROP_ON') + # 7 - TOP - LEFT + pie.prop(ts, "use_proportional_connected", text="Toggle Connected", icon='PROP_CON') + # 9 - TOP - RIGHT + pie.prop(ts, "use_proportional_projected", text="Toggle Projected", icon='PROP_PROJECTED') + + # 1 - BOTTOM - LEFT - pie.operator("object.set_proportional_falloff", text="Root", icon='ROOTCURVE').falloff_shape='ROOT' + pie.operator("object.set_proportional_falloff", text="Linear", icon='LINCURVE').falloff_shape='LINEAR' + # 3 - BOTTOM - RIGHT - pie.menu("PIE_MT_proportional_more", text="More...", icon='THREE_DOTS') + pie.operator("object.set_proportional_falloff", text="Sphere", icon='SPHERECURVE').falloff_shape='SPHERE' class PIE_MT_proportional_edit_mesh_more(Menu): - bl_idname = "PIE_MT_proportional_more" + bl_idname = "PIE_MT_proportional_edit_mesh_more" bl_label = "More Falloff Shapes" def draw(self, context): layout = self.layout - pie = layout.menu_pie() - box = pie.split().column() - box.operator("object.set_proportional_falloff", text="Sharp", icon='SHARPCURVE').falloff_shape='SHARP' - box.operator("object.set_proportional_falloff", text="Linear", icon='LINCURVE').falloff_shape='LINEAR' - box.operator("object.set_proportional_falloff", text="Constant", icon='NOCURVE').falloff_shape='CONSTANT' - box.operator("object.set_proportional_falloff", text="Random", icon='RNDCURVE').falloff_shape='RANDOM' + layout.operator("object.set_proportional_falloff", text="Root", icon='ROOTCURVE').falloff_shape='ROOT' + layout.operator("object.set_proportional_falloff", text="Inverse Square", icon='INVERSESQUARECURVE').falloff_shape='INVERSE_SQUARE' + layout.operator("object.set_proportional_falloff", text="Constant", icon='NOCURVE').falloff_shape='CONSTANT' + layout.operator("object.set_proportional_falloff", text="Random", icon='RNDCURVE').falloff_shape='RANDOM' class PIE_MT_proportional_edit_obj_more(Menu): - bl_idname = "PIE_MT_proportional_moreob" - bl_label = "Proportional Falloffs" + bl_idname = "PIE_MT_proportional_edit_obj_more" + bl_label = "More Falloff Shapes" def draw(self, context): layout = self.layout - pie = layout.menu_pie() - box = pie.split().column() - box.operator("object.set_proportional_falloff", text="Constant", icon='NOCURVE').falloff_shape='CONSTANT' - box.operator("object.set_proportional_falloff", text="Random", icon='RNDCURVE').falloff_shape='RANDOM' + layout.operator("object.set_proportional_falloff", text="Constant", icon='NOCURVE').falloff_shape='CONSTANT' + layout.operator("object.set_proportional_falloff", text="Random", icon='RNDCURVE').falloff_shape='RANDOM' registry = ( PIE_OT_set_proportional_falloff, - PIE_MT_proportional_edit_obj, - PIE_MT_proportional_edit_mesh, + PIE_MT_proportional_edit, PIE_MT_proportional_edit_mesh_more, PIE_MT_proportional_edit_obj_more, ) @@ -129,13 +104,13 @@ registry = ( def register(): register_hotkey( 'wm.call_menu_pie', - op_kwargs={'name': 'PIE_MT_proportional_obj'}, - hotkey_kwargs={'type': "O", 'value': "PRESS", 'shift': True}, + op_kwargs={'name': 'PIE_MT_proportional_edit'}, + hotkey_kwargs={'type': "O", 'value': "PRESS"}, key_cat="Object Mode", ) register_hotkey( 'wm.call_menu_pie', - op_kwargs={'name': 'PIE_MT_proportional_edt'}, - hotkey_kwargs={'type': "O", 'value': "PRESS", 'shift': True}, + op_kwargs={'name': 'PIE_MT_proportional_edit'}, + hotkey_kwargs={'type': "O", 'value': "PRESS"}, key_cat="Mesh", ) -- 2.30.2