[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