[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60009] trunk/blender/source/blender: startup.blend: add a function BLO_update_defaults_startup_blend to change

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Sep 10 15:25:35 CEST 2013


Revision: 60009
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60009
Author:   blendix
Date:     2013-09-10 13:25:35 +0000 (Tue, 10 Sep 2013)
Log Message:
-----------
startup.blend: add a function BLO_update_defaults_startup_blend to change
default settings in the startup.blend without having to actually save and embed
the file, which can be a tricky process and is problematic in branches and
patches.

This function can be emptied each time a new startup.blend is committed.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenloader/BLO_readfile.h
    trunk/blender/source/blender/blenloader/CMakeLists.txt
    trunk/blender/source/blender/windowmanager/intern/wm_files.c

Added Paths:
-----------
    trunk/blender/source/blender/blenloader/intern/versioning_defaults.c

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2013-09-10 13:25:33 UTC (rev 60008)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2013-09-10 13:25:35 UTC (rev 60009)
@@ -69,8 +69,10 @@
 #define BKE_READ_FILE_OK                1 /* OK */
 #define BKE_READ_FILE_OK_USERPREFS      2 /* OK, and with new user settings */
 
-int BKE_read_file_from_memory(struct bContext *C, const void *filebuf, int filelength, struct ReportList *reports);
-int BKE_read_file_from_memfile(struct bContext *C, struct MemFile *memfile, struct ReportList *reports);
+int BKE_read_file_from_memory(struct bContext *C, const void *filebuf,
+	int filelength, struct ReportList *reports, int update_defaults);
+int BKE_read_file_from_memfile(struct bContext *C, struct MemFile *memfile,
+	struct ReportList *reports);
 
 int BKE_read_file_userdef(const char *filepath, struct ReportList *reports);
 int BKE_write_file_userdef(const char *filepath, struct ReportList *reports);
@@ -100,11 +102,11 @@
 extern int BKE_undo_save_file(const char *filename);
 extern struct Main *BKE_undo_get_main(struct Scene **scene);
 
-	/* copybuffer */
+/* copybuffer */
 void BKE_copybuffer_begin(void);
 void BKE_copybuffer_tag_ID(struct ID *id);
 int BKE_copybuffer_save(const char *filename, struct ReportList *reports);
-	int BKE_copybuffer_paste(struct bContext *C, const char *libname, struct ReportList *reports);
+int BKE_copybuffer_paste(struct bContext *C, const char *libname, struct ReportList *reports);
 
 #ifdef __cplusplus
 }

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2013-09-10 13:25:33 UTC (rev 60008)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2013-09-10 13:25:35 UTC (rev 60009)
@@ -462,13 +462,16 @@
 	return (bfd ? retval : BKE_READ_FILE_FAIL);
 }
 
-int BKE_read_file_from_memory(bContext *C, const void *filebuf, int filelength, ReportList *reports)
+int BKE_read_file_from_memory(bContext *C, const void *filebuf, int filelength, ReportList *reports, int update_defaults)
 {
 	BlendFileData *bfd;
 
 	bfd = BLO_read_from_memory(filebuf, filelength, reports);
-	if (bfd)
+	if (bfd) {
+		if (update_defaults)
+			BLO_update_defaults_startup_blend(bfd->main);
 		setup_app_data(C, bfd, "<memory2>");
+	}
 	else
 		BKE_reports_prepend(reports, "Loading failed: ");
 

Modified: trunk/blender/source/blender/blenloader/BLO_readfile.h
===================================================================
--- trunk/blender/source/blender/blenloader/BLO_readfile.h	2013-09-10 13:25:33 UTC (rev 60008)
+++ trunk/blender/source/blender/blenloader/BLO_readfile.h	2013-09-10 13:25:35 UTC (rev 60009)
@@ -265,7 +265,10 @@
  * \param mainvar the Main database to expand
  */
 void BLO_expand_main(void *fdhandle, struct Main *mainvar);
-	
+
+/* Update defaults in startup.blend, without having to save and embed it */
+void BLO_update_defaults_startup_blend(struct Main *mainvar);
+
 #ifdef __cplusplus
 } 
 #endif

Modified: trunk/blender/source/blender/blenloader/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/blenloader/CMakeLists.txt	2013-09-10 13:25:33 UTC (rev 60008)
+++ trunk/blender/source/blender/blenloader/CMakeLists.txt	2013-09-10 13:25:35 UTC (rev 60009)
@@ -46,6 +46,7 @@
 	intern/runtime.c
 	intern/undofile.c
 	intern/versioning_250.c
+	intern/versioning_defaults.c
 	intern/versioning_legacy.c
 	intern/writefile.c
 

Added: trunk/blender/source/blender/blenloader/intern/versioning_defaults.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/versioning_defaults.c	                        (rev 0)
+++ trunk/blender/source/blender/blenloader/intern/versioning_defaults.c	2013-09-10 13:25:35 UTC (rev 60009)
@@ -0,0 +1,42 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+/** \file blender/blenloader/intern/versioning_defaults.c
+ *  \ingroup blenloader
+ */
+
+#include "BLI_utildefines.h"
+
+#include "DNA_scene_types.h"
+#include "DNA_userdef_types.h"
+
+#include "BKE_main.h"
+
+#include "BLO_readfile.h"
+
+/* Update defaults in startup.blend, without having to save and embed the file.
+ * This function can be emptied each time the startup.blend is updated. */
+void BLO_update_defaults_startup_blend(Main *main)
+{
+}
+

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2013-09-10 13:25:33 UTC (rev 60008)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2013-09-10 13:25:35 UTC (rev 60009)
@@ -554,7 +554,7 @@
 	}
 
 	if (success == 0) {
-		success = BKE_read_file_from_memory(C, datatoc_startup_blend, datatoc_startup_blend_size, NULL);
+		success = BKE_read_file_from_memory(C, datatoc_startup_blend, datatoc_startup_blend_size, NULL, true);
 		if (wmbase.first == NULL) wm_clear_default_size(C);
 		BLI_init_temporary_dir(U.tempdir);
 




More information about the Bf-blender-cvs mailing list