[Bf-extensions-cvs] [1bba102d] master: space_view3d_pie_menus: multiple fixes/updates part 1: T67995
meta-androcto
noreply at git.blender.org
Sun Aug 11 03:45:07 CEST 2019
Commit: 1bba102d652cea832ae7da0d1d476739d2e1d8da
Author: meta-androcto
Date: Sun Aug 11 11:44:51 2019 +1000
Branches: master
https://developer.blender.org/rBA1bba102d652cea832ae7da0d1d476739d2e1d8da
space_view3d_pie_menus: multiple fixes/updates part 1: T67995
===================================================================
M space_view3d_pie_menus/__init__.py
M space_view3d_pie_menus/pie_align_menu.py
M space_view3d_pie_menus/pie_animation_menu.py
M space_view3d_pie_menus/pie_apply_transform_menu.py
M space_view3d_pie_menus/pie_delete_menu.py
M space_view3d_pie_menus/pie_editor_switch_menu.py
M space_view3d_pie_menus/pie_manipulator_menu.py
M space_view3d_pie_menus/pie_modes_menu.py
M space_view3d_pie_menus/pie_origin.py
M space_view3d_pie_menus/pie_proportional_menu.py
M space_view3d_pie_menus/pie_save_open_menu.py
M space_view3d_pie_menus/pie_views_numpad_menu.py
===================================================================
diff --git a/space_view3d_pie_menus/__init__.py b/space_view3d_pie_menus/__init__.py
index 620e0bd1..32c386e9 100644
--- a/space_view3d_pie_menus/__init__.py
+++ b/space_view3d_pie_menus/__init__.py
@@ -18,6 +18,7 @@
# <pep8 compliant>
+# Contributed to by meta-androcto, pitiwazou, chromoly, italic
import bpy
from bpy.props import (
@@ -32,10 +33,10 @@ from bpy.types import (
bl_info = {
"name": "3D Viewport Pie Menus",
- "author": "meta-androcto, pitiwazou, chromoly, italic",
- "version": (1, 1, 9),
+ "author": "meta-androcto",
+ "version": (1, 2, 8),
"blender": (2, 80, 0),
- "description": "Individual Pie Menu Activation List",
+ "description": "Pie Menu Activation",
"location": "Addons Preferences",
"warning": "",
"wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
@@ -51,7 +52,6 @@ sub_modules_names = (
"pie_cursor",
"pie_manipulator_menu",
"pie_snap_menu",
- "pie_orientation_menu",
"pie_shading_menu",
"pie_proportional_menu",
"pie_align_menu",
@@ -64,8 +64,7 @@ sub_modules_names = (
)
-sub_modules = [__import__(__package__ + "." + submod, {}, {}, submod) for
- submod in sub_modules_names]
+sub_modules = [__import__(__package__ + "." + submod, {}, {}, submod) for submod in sub_modules_names]
sub_modules.sort(key=lambda mod: (mod.bl_info['category'], mod.bl_info['name']))
@@ -91,20 +90,22 @@ def get_addon_preferences(name=''):
cls = _get_pref_class(mod)
if cls:
prop = PointerProperty(type=cls)
- setattr(PieToolsPreferences, name, prop)
- bpy.utils.unregister_class(PieToolsPreferences)
- bpy.utils.register_class(PieToolsPreferences)
+ create_property(PIEToolsPreferences, name, prop)
+ bpy.utils.unregister_class(PIEToolsPreferences)
+ bpy.utils.register_class(PIEToolsPreferences)
return getattr(addon_prefs, name, None)
else:
return addon_prefs
+def create_property(cls, name, prop):
+ if not hasattr(cls, '__annotations__'):
+ cls.__annotations__ = dict()
+ cls.__annotations__[name] = prop
+
def register_submodule(mod):
- if not hasattr(mod, '__addon_enabled__'):
- mod.__addon_enabled__ = False
- if not mod.__addon_enabled__:
- mod.register()
- mod.__addon_enabled__ = True
+ mod.register()
+ mod.__addon_enabled__ = True
def unregister_submodule(mod):
@@ -114,91 +115,20 @@ def unregister_submodule(mod):
prefs = get_addon_preferences()
name = mod.__name__.split('.')[-1]
- if hasattr(PieToolsPreferences, name):
- delattr(PieToolsPreferences, name)
+ if hasattr(PIEToolsPreferences, name):
+ delattr(PIEToolsPreferences, name)
if prefs:
- bpy.utils.unregister_class(PieToolsPreferences)
- bpy.utils.register_class(PieToolsPreferences)
+ bpy.utils.unregister_class(PIEToolsPreferences)
+ bpy.utils.register_class(PIEToolsPreferences)
if name in prefs:
del prefs[name]
-def enable_all_modules(self, context):
- for mod in sub_modules:
- mod_name = mod.__name__.split('.')[-1]
- setattr(self, 'use_' + mod_name, False)
- if not mod.__addon_enabled__:
- setattr(self, 'use_' + mod_name, True)
- mod.__addon_enabled__ = True
-
- return None
-
-
-def disable_all_modules(self, context):
- for mod in sub_modules:
- mod_name = mod.__name__.split('.')[-1]
-
- if mod.__addon_enabled__:
- setattr(self, 'use_' + mod_name, False)
- mod.__addon_enabled__ = False
-
- return None
-
-
-class PieToolsPreferences(AddonPreferences):
+class PIEToolsPreferences(AddonPreferences):
bl_idname = __name__
- enable_all: BoolProperty(
- name="Enable all",
- description="Enable all Pie Modules",
- default=False,
- update=enable_all_modules
- )
- disable_all: BoolProperty(
- name="Disable all",
- description="Disable all Pie Modules",
- default=False,
- update=disable_all_modules
- )
-
- for mod in sub_modules:
- mod_name = mod.__name__.split('.')[-1]
-
- def gen_update(mod, use_prop_name):
- def update(self, context):
- if getattr(self, use_prop_name):
- if not mod.__addon_enabled__:
- register_submodule(mod)
- else:
- if mod.__addon_enabled__:
- unregister_submodule(mod)
- return update
-
- use_prop_name = 'use_' + mod_name
- __annotations__[use_prop_name] = BoolProperty(
- name=mod.bl_info['name'],
- description=mod.bl_info.get('description', ''),
- update=gen_update(mod, use_prop_name),
- )
-
- __annotations__['show_expanded_' + mod_name] = BoolProperty()
-
def draw(self, context):
layout = self.layout
- split = layout.split(factor=0.5, align=True)
- row = split.row()
- row.alignment = "LEFT"
- sub_box = row.box()
- sub_box.prop(self, "enable_all", emboss=False,
- icon="HIDE_OFF", icon_only=True)
- row.label(text="Enable All")
-
- row = split.row()
- row.alignment = "RIGHT"
- row.label(text="Disable All")
- sub_box = row.box()
- sub_box.prop(self, "disable_all", emboss=False,
- icon="HIDE_ON", icon_only=True)
for mod in sub_modules:
mod_name = mod.__name__.split('.')[-1]
@@ -237,7 +167,7 @@ class PieToolsPreferences(AddonPreferences):
if info.get('author'):
split = col.row().split(factor=0.15)
split.label(text='Author:')
- split.label(info['author'])
+ split.label(text=info['author'])
"""
if info.get('version'):
split = col.row().split(factor=0.15)
@@ -276,12 +206,41 @@ class PieToolsPreferences(AddonPreferences):
del prefs.layout
row = layout.row()
- row.label(text="End of 3D Viewport Pie Menus Activations",
- icon="FILE_PARENT")
+ row.label(text="End of Pie Menu Activations", icon="FILE_PARENT")
+
+
+for mod in sub_modules:
+ info = mod.bl_info
+ mod_name = mod.__name__.split('.')[-1]
+
+ def gen_update(mod):
+ def update(self, context):
+ enabled = getattr(self, 'use_' + mod.__name__.split('.')[-1])
+ if enabled:
+ register_submodule(mod)
+ else:
+ unregister_submodule(mod)
+ mod.__addon_enabled__ = enabled
+ return update
+
+ create_property(
+ PIEToolsPreferences,
+ 'use_' + mod_name,
+ BoolProperty(
+ name=info['name'],
+ description=info.get('description', ''),
+ update=gen_update(mod),
+ default=True,
+ ))
+
+ create_property(
+ PIEToolsPreferences,
+ 'show_expanded_' + mod_name,
+ BoolProperty())
classes = (
- PieToolsPreferences,
+ PIEToolsPreferences,
)
diff --git a/space_view3d_pie_menus/pie_align_menu.py b/space_view3d_pie_menus/pie_align_menu.py
index 0223be53..e3ad60a9 100644
--- a/space_view3d_pie_menus/pie_align_menu.py
+++ b/space_view3d_pie_menus/pie_align_menu.py
@@ -47,24 +47,6 @@ class PIE_MT_Align(Menu):
layout = self.layout
pie = layout.menu_pie()
# 4 - LEFT
- pie.operator("align.selected2xyz",
- text="Align X", icon='TRIA_LEFT').axis = 'X'
- # 6 - RIGHT
- pie.operator("align.selected2xyz",
- text="Align Z", icon='TRIA_DOWN').axis = 'Z'
- # 2 - BOTTOM
- pie.operator("align.selected2xyz",
- text="Align Y", icon='PLUS').axis = 'Y'
- # 8 - TOP
- pie.operator("align.2xyz", text="Align To Y-0").axis = '1'
- # 7 - TOP - LEFT
- pie.operator("align.2xyz", text="Align To X-0").axis = '0'
- # 9 - TOP - RIGHT
- pie.operator("align.2xyz", text="Align To Z-0").axis = '2'
- # 1 - BOTTOM - LEFT
- pie.separator()
- # 3 - BOTTOM - RIGHT
- # pie.menu("align.xyz")
box = pie.split().box().column()
row = box.row(align=True)
@@ -72,27 +54,53 @@ class PIE_MT_Align(Menu):
align_1 = row.operator("alignxyz.all", text="Neg")
align_1.axis = '0'
align_1.side = 'NEGATIVE'
- align_2 = row.operator("alignxyz.all", text="Pos")
- align_2.axis = '0'
- align_2.side = 'POSITIVE'
row = box.row(align=True)
row.label(text="Y")
align_3 = row.operator("alignxyz.all", text="Neg")
align_3.axis = '1'
align_3.side = 'NEGATIVE'
- align_4 = row.operator("alignxyz.all", text="Pos")
- align_4.axis = '1'
- align_4.side = 'POSITIVE'
row = box.row(align=True)
row.label(text="Z")
align_5 = row.operator("alignxyz.all", text="Neg")
align_5.axis = '2'
align_5.side = 'NEGATIVE'
+ # 6 - RIGHT
+ box = pie.split().box().column()
+
+ row = box.row(align=True)
+ row.label(text="X")
+ align_2 = row.operator("alignxyz.all", text="Pos")
+ align_2.axis = '0'
+ align_2.side = 'POSITIVE'
+
+ row = box.row(align=True)
+ row.label(text="Y")
+ align_4 = row.operator("alignxyz.all", text="Pos")
+ align_4.axis = '1'
+ align_4.side = 'POSITIVE'
+
+ row = box.row(align=True)
+ row.label(text="Z")
align_6 = row.operator("alignxyz.all", text="Pos")
align_6.axis = '2'
align_6.side = 'POSITIVE'
+ # 2 - BOTTOM
+ pie.operator("align.2xyz", text="Align To Y-0").axis = '1'
+ # 8 - TOP
+ pie.operator("align.select
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list