Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-11-18 00:11:20 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-11-18 00:11:20 +0400
commite7f52d9953c6356c6595c0eaf7c91fa422fd7f60 (patch)
treef4cd96679069f1254a5a3c55fd75cd5517d0d7c0
parent8c6057d5e3797478a2d62e37843ded7b8e84436e (diff)
addons in contrib now have their own 'Testing' category which is off by default.
-rw-r--r--release/scripts/modules/addon_utils.py11
-rw-r--r--release/scripts/startup/bl_ui/__init__.py10
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py18
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