From e7f52d9953c6356c6595c0eaf7c91fa422fd7f60 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Nov 2011 20:11:20 +0000 Subject: addons in contrib now have their own 'Testing' category which is off by default. --- release/scripts/modules/addon_utils.py | 11 +++++++++-- release/scripts/startup/bl_ui/__init__.py | 10 +++++++--- release/scripts/startup/bl_ui/space_userpref.py | 18 ++++++++++-------- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py index 26611fb93ad..1bd218ad92a 100644 --- a/release/scripts/modules/addon_utils.py +++ b/release/scripts/modules/addon_utils.py @@ -62,7 +62,7 @@ def modules(module_cache): path_list = paths() # fake module importing - def fake_module(mod_name, mod_path, speedy=True): + def fake_module(mod_name, mod_path, speedy=True, force_support=None): global error_encoding if _bpy.app.debug: @@ -134,6 +134,9 @@ def modules(module_cache): traceback.print_exc() raise + if force_support is not None: + mod.bl_info["support"] = force_support + return mod else: return None @@ -141,6 +144,10 @@ def modules(module_cache): modules_stale = set(module_cache.keys()) for path in path_list: + + # force all contrib addons to be 'TESTING' + force_support = 'TESTING' if path.endswith("addons_contrib") else None + for mod_name, mod_path in _bpy.path.module_names(path): modules_stale -= {mod_name} mod = module_cache.get(mod_name) @@ -161,7 +168,7 @@ def modules(module_cache): mod = None if mod is None: - mod = fake_module(mod_name, mod_path) + mod = fake_module(mod_name, mod_path, force_support=force_support) if mod: module_cache[mod_name] = mod diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py index 3db768f73fe..6aa08a7f50d 100644 --- a/release/scripts/startup/bl_ui/__init__.py +++ b/release/scripts/startup/bl_ui/__init__.py @@ -116,11 +116,15 @@ def register(): ) WindowManager.addon_support = EnumProperty( - items=[('OFFICIAL', "Official", ""), - ('COMMUNITY', 'Community', ""), + items=[('OFFICIAL', "Official", "Officially supported"), + ('COMMUNITY', "Community", "Maintained by community developers"), + ('TESTING', "Testing", "Newly contributed scripts (excluded from release builds)"), ], name="Support", - description="Display support level", default={'OFFICIAL', 'COMMUNITY'}, options={'ENUM_FLAG'}) + description="Display support level", + default={'OFFICIAL', 'COMMUNITY'}, + options={'ENUM_FLAG'}, + ) # done... diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index 665d790f832..c889e7f3de6 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -891,6 +891,12 @@ class USERPREF_PT_addons(Panel): bl_region_type = 'WINDOW' bl_options = {'HIDE_HEADER'} + _support_icon_mapping = { + 'OFFICIAL': 'FILE_BLEND', + 'COMMUNITY': 'POSE_DATA', + 'TESTING': 'MOD_EXPLODE', + } + @classmethod def poll(cls, context): userpref = context.user_preferences @@ -931,12 +937,13 @@ class USERPREF_PT_addons(Panel): split = layout.split(percentage=0.2) col = split.column() col.prop(context.window_manager, "addon_search", text="", icon='VIEWZOOM') - col.label(text="Categories") - col.prop(context.window_manager, "addon_filter", expand=True) col.label(text="Supported Level") col.prop(context.window_manager, "addon_support", expand=True) + col.label(text="Categories") + col.prop(context.window_manager, "addon_filter", expand=True) + col = split.column() # set in addon_utils.modules(...) @@ -995,12 +1002,7 @@ class USERPREF_PT_addons(Panel): rowsub.label(icon='ERROR') # icon showing support level. - if info["support"] == 'OFFICIAL': - rowsub.label(icon='FILE_BLEND') - elif info["support"] == 'COMMUNITY': - rowsub.label(icon='POSE_DATA') - else: - rowsub.label(icon='QUESTION') + rowsub.label(icon=self._support_icon_mapping.get(info["support"], 'QUESTION')) if is_enabled: row.operator("wm.addon_disable", icon='CHECKBOX_HLT', text="", emboss=False).module = module_name -- cgit v1.2.3