Fix T52442: bl_app_templates_system not working

Portable builds LOCAL files need to be
treated as system instead of using as a fallback to USER templates.
This commit is contained in:
Campbell Barton 2017-09-15 05:46:43 +10:00 committed by Bastien Montagne
parent 21ecdacdf1
commit d89353159f
2 changed files with 20 additions and 18 deletions

View File

@ -399,27 +399,26 @@ def app_template_paths(subdir=None):
:return: app template paths.
:rtype: generator
"""
# Note: keep in sync with: Blender's BKE_appdir_app_template_any
# note: LOCAL, USER, SYSTEM order matches script resolution order.
subdir_tuple = (subdir,) if subdir is not None else ()
path = _os.path.join(*(
resource_path('LOCAL'), "scripts", "startup",
"bl_app_templates_user", *subdir_tuple))
if _os.path.isdir(path):
yield path
else:
path = _os.path.join(*(
resource_path('USER'), "scripts", "startup",
"bl_app_templates_user", *subdir_tuple))
if _os.path.isdir(path):
yield path
path = _os.path.join(*(
resource_path('SYSTEM'), "scripts", "startup",
"bl_app_templates_system", *subdir_tuple))
if _os.path.isdir(path):
yield path
# Avoid adding 'bl_app_templates_system' twice.
# Either we have a portable build or an installed system build.
for resource_type, module_name in (
('USER', "bl_app_templates_user"),
('LOCAL', "bl_app_templates_system"),
('SYSTEM', "bl_app_templates_system"),
):
path = resource_path(resource_type)
if path:
path = _os.path.join(
*(path, "scripts", "startup", module_name, *subdir_tuple))
if _os.path.isdir(path):
yield path
# Only load LOCAL or SYSTEM (never both).
if resource_type == 'LOCAL':
break
def preset_paths(subdir):

View File

@ -690,13 +690,16 @@ bool BKE_appdir_program_python_search(
return is_found;
}
/** Keep in sync with `bpy.utils.app_template_paths()` */
static const char *app_template_directory_search[2] = {
"startup" SEP_STR "bl_app_templates_user",
"startup" SEP_STR "bl_app_templates_system",
};
static const int app_template_directory_id[2] = {
/* Only 'USER' */
BLENDER_USER_SCRIPTS,
/* Covers 'LOCAL' & 'SYSTEM'. */
BLENDER_SYSTEM_SCRIPTS,
};