forked from bartvdbraak/blender
addons in contrib now have their own 'Testing' category which is off by default.
This commit is contained in:
parent
8c6057d5e3
commit
e7f52d9953
@ -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
|
||||
|
||||
|
@ -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...
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user