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:
authormeta-androcto <meta.androcto1@gmail.com>2019-07-16 02:10:03 +0300
committermeta-androcto <meta.androcto1@gmail.com>2019-07-16 02:10:03 +0300
commitc29c630a273b03b761890d85b1f0c174a57feefd (patch)
tree73484249b316ae06c4f056217a75cf29af777a91
parentd605104b9cfbbe2a8683aec775e8d3bf14de3a5c (diff)
space_view3d_pie_menus: Fix unreported Workspace: Addons Filter: failure to respect filters
-rw-r--r--space_view3d_pie_menus/__init__.py141
1 files changed, 50 insertions, 91 deletions
diff --git a/space_view3d_pie_menus/__init__.py b/space_view3d_pie_menus/__init__.py
index 620e0bd1..c6db7332 100644
--- a/space_view3d_pie_menus/__init__.py
+++ b/space_view3d_pie_menus/__init__.py
@@ -33,7 +33,7 @@ from bpy.types import (
bl_info = {
"name": "3D Viewport Pie Menus",
"author": "meta-androcto, pitiwazou, chromoly, italic",
- "version": (1, 1, 9),
+ "version": (1, 2, 0),
"blender": (2, 80, 0),
"description": "Individual Pie Menu Activation List",
"location": "Addons Preferences",
@@ -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(UIToolsPreferences, name, prop)
+ bpy.utils.unregister_class(UIToolsPreferences)
+ bpy.utils.register_class(UIToolsPreferences)
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,
)