[Bf-blender-cvs] [cd62238c3c] app-templates: Merge branch 'master' into app-templates
Campbell Barton
noreply at git.blender.org
Thu Mar 23 00:50:37 CET 2017
Commit: cd62238c3ca285269025cc12e95528bceee474c7
Author: Campbell Barton
Date: Thu Mar 23 10:50:03 2017 +1100
Branches: app-templates
https://developer.blender.org/rBcd62238c3ca285269025cc12e95528bceee474c7
Merge branch 'master' into app-templates
===================================================================
===================================================================
diff --cc source/blender/windowmanager/intern/wm_files.c
index 17d4e521d0,241bd90bdf..63e9b41e63
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@@ -634,15 -632,13 +634,15 @@@ bool WM_file_read(bContext *C, const ch
* Called on startup, (context entirely filled with NULLs)
* or called for 'New File' both startup.blend and userpref.blend are checked.
*
- * \param from_memory: Ignore on-disk startup file, use bundled ``datatoc_startup_blend`` instead.
+ * \param use_factory_settings: Ignore on-disk startup file, use bundled ``datatoc_startup_blend`` instead.
* Used for "Restore Factory Settings".
* \param filepath_startup_override: Optional path pointing to an alternative blend file (may be NULL).
+ * \param app_template_override: Template to use instead of the template defined in user-preferences.
+ * When not-null, this is written into the user preferences.
*/
int wm_homefile_read(
- bContext *C, ReportList *reports, bool from_memory,
- bContext *C, ReportList *reports,
- bool use_factory_settings, const char *filepath_startup_override)
++ bContext *C, ReportList *reports, bool use_factory_settings,
+ const char *filepath_startup_override, const char *app_template_override)
{
ListBase wmbase;
char filepath_startup[FILE_MAX];
@@@ -707,43 -704,9 +708,42 @@@
}
}
- if (!use_factory_settings) {
+ /* insert template name into startup file */
+ if (!filepath_startup_override) {
+ const char *app_template = NULL;
+
+ if (app_template_override) {
+ app_template = app_template_override;
+ }
- else if (!from_memory && U.app_template[0]) {
++ else if (!use_factory_settings && U.app_template[0]) {
+ app_template = U.app_template;
+ }
+
+ if (app_template != NULL) {
- if (!from_memory) {
++ if (!use_factory_settings) {
+ BLI_path_suffix(filepath_startup, sizeof(filepath_startup), app_template, "_");
+ }
+
- if (from_memory || BLI_access(filepath_startup, R_OK)) {
++ if (use_factory_settings || BLI_access(filepath_startup, R_OK)) {
+ char temp_path[FILE_MAX];
+ BLI_join_dirfile(temp_path, sizeof(temp_path), "app_templates", U.app_template);
+ const char *filepath_startup_template = BKE_appdir_folder_id(BLENDER_DATAFILES, temp_path);
+ if (filepath_startup_template) {
- /* note that the path is being set even when 'from_memory == true' */
++ /* note that the path is being set even when 'use_factory_settings == true' */
+ BLI_join_dirfile(
+ filepath_startup, sizeof(filepath_startup),
+ filepath_startup_template, BLENDER_STARTUP_FILE);
+ }
+ }
+ }
+ }
+
- if (!from_memory || (filepath_startup[0] != '\0')) {
++ if (!use_factory_settings || (filepath_startup[0] != '\0')) {
if (BLI_access(filepath_startup, R_OK) == 0) {
success = (BKE_blendfile_read(C, filepath_startup, NULL, skip_flags) != BKE_BLENDFILE_READ_FAIL);
+ if (success) {
+ printf("Read startup: %s\n", filepath_startup);
+ }
}
if (BLI_listbase_is_empty(&U.themes)) {
if (G.debug & G_DEBUG)
@@@ -1504,22 -1435,9 +1507,22 @@@ static int wm_homefile_read_exec(bConte
G.fileflags &= ~G_FILE_NO_UI;
}
- if (wm_homefile_read(C, op->reports, use_factory_settings, filepath)) {
- /* Load a file but keep the splash open */
- if (!use_factory_settings && RNA_boolean_get(op->ptr, "use_splash")) {
+ char app_template_buf[sizeof(U.app_template)];
+ const char *app_template;
- /* const bool is_app_template = !from_memory && RNA_boolean_get(op->ptr, "app_template"); */
++ /* const bool is_app_template = !use_factory_settings && RNA_boolean_get(op->ptr, "app_template"); */
+ PropertyRNA *prop_app_template = RNA_struct_find_property(op->ptr, "app_template");
- const bool use_splash = !from_memory && RNA_boolean_get(op->ptr, "use_splash");
++ const bool use_splash = !use_factory_settings && RNA_boolean_get(op->ptr, "use_splash");
+
+ if (prop_app_template && RNA_property_is_set(op->ptr, prop_app_template)) {
+ RNA_property_string_get(op->ptr, prop_app_template, app_template_buf);
+ app_template = app_template_buf;
+ }
+ else {
+ app_template = NULL;
+ }
+
- if (wm_homefile_read(C, op->reports, from_memory, filepath, app_template)) {
++ if (wm_homefile_read(C, op->reports, use_factory_settings, filepath, app_template)) {
+ if (use_splash) {
WM_init_splash(C);
}
return OPERATOR_FINISHED;
diff --cc source/blender/windowmanager/wm_files.h
index c64e879664,048b5a997b..044fea6c3d
--- a/source/blender/windowmanager/wm_files.h
+++ b/source/blender/windowmanager/wm_files.h
@@@ -36,8 -36,8 +36,8 @@@ struct wmOperatorType
/* wm_files.c */
void wm_history_file_read(void);
int wm_homefile_read(
- struct bContext *C, struct ReportList *reports, bool from_memory,
- struct bContext *C, struct ReportList *reports,
- bool use_factory_settings, const char *filepath_startup_override);
++ struct bContext *C, struct ReportList *reports, bool use_factory_settings,
+ const char *filepath_startup_override, const char *startup_template);
void wm_file_read_report(bContext *C);
void WM_OT_save_homefile(struct wmOperatorType *ot);
More information about the Bf-blender-cvs
mailing list