diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-06-19 08:41:07 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-06-19 09:47:12 +0300 |
commit | fade37ff07ab3b62844068a1a5d60dd74ea787f6 (patch) | |
tree | a3d8903572491de4e00bbee91c9dbe0877fc10e3 /source/blender/blenkernel | |
parent | 5a77f643f45bdd52a70aecf7b09d8836d540b5a1 (diff) |
Writefile: move file flags to BlendFileWriteParams
This removes G_FILE_HISTORY, G_FILE_SAVE_COPY & G_FILE_USERPREFS.
Using file-flags made logic harder to follow since it's not so clear
which flags are expected to be in G.fileflags & which are meant to be
set and passed as arguments, these are shared between read & write
functions too.
Add BlendFileWriteParams so options which don't need to be stored
aren't mixed up with flags that are stored for reuse.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_global.h | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/blender_undo.c | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/blendfile.c | 18 |
3 files changed, 19 insertions, 12 deletions
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index a134f29228f..61c270202f1 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -169,7 +169,7 @@ enum { G_FILE_AUTOPACK = (1 << 0), G_FILE_COMPRESS = (1 << 1), - G_FILE_USERPREFS = (1 << 9), + // G_FILE_DEPRECATED_9 = (1 << 9), G_FILE_NO_UI = (1 << 10), /* Bits 11 to 22 (inclusive) are deprecated & need to be cleared */ @@ -177,12 +177,8 @@ enum { /** On read, use #FileGlobal.filename instead of the real location on-disk, * needed for recovering temp files so relative paths resolve */ G_FILE_RECOVER = (1 << 23), - /** On write, make backup `.blend1`, `.blend2` ... files, when the users preference is enabled */ - G_FILE_HISTORY = (1 << 25), /** BMesh option to save as older mesh format */ /* #define G_FILE_MESH_COMPAT (1 << 26) */ - /** On write, restore paths after editing them (see #BLO_WRITE_PATH_REMAP_RELATIVE). */ - G_FILE_SAVE_COPY = (1 << 27), /* #define G_FILE_GLSL_NO_ENV_LIGHTING (1 << 28) */ /* deprecated */ }; @@ -190,7 +186,7 @@ enum { * Run-time only #G.fileflags which are never read or written to/from Blend files. * This means we can change the values without worrying about do-versions. */ -#define G_FILE_FLAG_ALL_RUNTIME (G_FILE_NO_UI | G_FILE_HISTORY | G_FILE_SAVE_COPY) +#define G_FILE_FLAG_ALL_RUNTIME (G_FILE_NO_UI) /** ENDIAN_ORDER: indicates what endianness the platform where the file was written had. */ #if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) diff --git a/source/blender/blenkernel/intern/blender_undo.c b/source/blender/blenkernel/intern/blender_undo.c index e19a4935698..a6f84f3c3a4 100644 --- a/source/blender/blenkernel/intern/blender_undo.c +++ b/source/blender/blenkernel/intern/blender_undo.c @@ -109,8 +109,6 @@ MemFileUndoData *BKE_memfile_undo_encode(Main *bmain, MemFileUndoData *mfu_prev) static int counter = 0; char filename[FILE_MAX]; char numstr[32]; - /* Don't do file history on undo. */ - const int fileflags = G.fileflags & ~G_FILE_HISTORY; /* Calculate current filename. */ counter++; @@ -119,7 +117,8 @@ MemFileUndoData *BKE_memfile_undo_encode(Main *bmain, MemFileUndoData *mfu_prev) BLI_snprintf(numstr, sizeof(numstr), "%d.blend", counter); BLI_join_dirfile(filename, sizeof(filename), BKE_tempdir_session(), numstr); - /* success = */ /* UNUSED */ BLO_write_file(bmain, filename, fileflags, NULL); + /* success = */ /* UNUSED */ BLO_write_file( + bmain, filename, G.fileflags, &(const struct BlendFileWriteParams){0}, NULL); BLI_strncpy(mfu->filename, filename, sizeof(mfu->filename)); } diff --git a/source/blender/blenkernel/intern/blendfile.c b/source/blender/blenkernel/intern/blendfile.c index a3031e9047f..c6af21c6b4e 100644 --- a/source/blender/blenkernel/intern/blendfile.c +++ b/source/blender/blenkernel/intern/blendfile.c @@ -646,7 +646,13 @@ bool BKE_blendfile_userdef_write(const char *filepath, ReportList *reports) Main *mainb = MEM_callocN(sizeof(Main), "empty main"); bool ok = false; - if (BLO_write_file(mainb, filepath, G_FILE_USERPREFS, reports)) { + if (BLO_write_file(mainb, + filepath, + 0, + &(const struct BlendFileWriteParams){ + .use_userdef = true, + }, + reports)) { ok = true; } @@ -768,7 +774,7 @@ WorkspaceConfigFileData *BKE_blendfile_workspace_config_read(const char *filepat bool BKE_blendfile_workspace_config_write(Main *bmain, const char *filepath, ReportList *reports) { - int fileflags = G.fileflags & ~(G_FILE_NO_UI | G_FILE_HISTORY); + const int fileflags = G.fileflags & ~G_FILE_NO_UI; bool retval = false; BKE_blendfile_write_partial_begin(bmain); @@ -883,7 +889,13 @@ bool BKE_blendfile_write_partial(Main *bmain_src, } /* save the buffer */ - retval = BLO_write_file_ex(bmain_dst, filepath, write_flags, reports, remap_mode, NULL); + retval = BLO_write_file(bmain_dst, + filepath, + write_flags, + &(const struct BlendFileWriteParams){ + .remap_mode = remap_mode, + }, + reports); if (path_list_backup) { BKE_bpath_list_restore(bmain_dst, path_list_flag, path_list_backup); |