[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55639] trunk/blender: fix for loosing recent-files when running 'Copy Previous Settings'.

Campbell Barton ideasman42 at gmail.com
Thu Mar 28 03:29:14 CET 2013


Revision: 55639
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55639
Author:   campbellbarton
Date:     2013-03-28 02:29:10 +0000 (Thu, 28 Mar 2013)
Log Message:
-----------
fix for loosing recent-files when running 'Copy Previous Settings'.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_operators/wm.py
    trunk/blender/source/blender/windowmanager/intern/wm_files.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/blender/windowmanager/wm_files.h

Modified: trunk/blender/release/scripts/startup/bl_operators/wm.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/wm.py	2013-03-28 00:58:50 UTC (rev 55638)
+++ trunk/blender/release/scripts/startup/bl_operators/wm.py	2013-03-28 02:29:10 UTC (rev 55639)
@@ -1273,11 +1273,15 @@
         else:
             shutil.copytree(path_src, path_dst, symlinks=True)
 
+            # reload recent-files.txt
+            bpy.ops.wm.read_history()
+
             # don't loose users work if they open the splash later.
             if bpy.data.is_saved is bpy.data.is_dirty is False:
                 bpy.ops.wm.read_homefile()
             else:
                 self.report({'INFO'}, "Reload Start-Up file to restore settings")
+
             return {'FINISHED'}
 
         return {'CANCELLED'}

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2013-03-28 00:58:50 UTC (rev 55638)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2013-03-28 02:29:10 UTC (rev 55639)
@@ -602,6 +602,13 @@
 	return TRUE;
 }
 
+int wm_history_read_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
+{
+	/* TODO, read bookmarks */
+	wm_read_history();
+	return OPERATOR_FINISHED;
+}
+
 int wm_homefile_read_exec(bContext *C, wmOperator *op)
 {
 	int from_memory = strcmp(op->type->idname, "WM_OT_read_factory_settings") == 0;
@@ -637,7 +644,6 @@
 	}
 	
 	BLI_file_free_lines(lines);
-
 }
 
 static void write_history(void)

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2013-03-28 00:58:50 UTC (rev 55638)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2013-03-28 02:29:10 UTC (rev 55639)
@@ -1906,6 +1906,19 @@
 	ot->poll = WM_operator_winactive;
 }
 
+static void WM_OT_read_history(wmOperatorType *ot)
+{
+	ot->name = "Reload History File";
+	ot->idname = "WM_OT_read_history";
+	ot->description = "Reloads history and bookmarks";
+
+	ot->invoke = WM_operator_confirm;
+	ot->exec = wm_history_read_exec;
+
+	/* this operator is only used for loading settings from a previous blender install */
+	ot->flag = OPTYPE_INTERNAL;
+}
+
 static void WM_OT_read_homefile(wmOperatorType *ot)
 {
 	ot->name = "Reload Start-Up File";
@@ -4043,6 +4056,7 @@
 	global_ops_hash = BLI_ghash_str_new("wm_operatortype_init gh");
 
 	WM_operatortype_append(WM_OT_window_duplicate);
+	WM_operatortype_append(WM_OT_read_history);
 	WM_operatortype_append(WM_OT_read_homefile);
 	WM_operatortype_append(WM_OT_read_factory_settings);
 	WM_operatortype_append(WM_OT_save_homefile);

Modified: trunk/blender/source/blender/windowmanager/wm_files.h
===================================================================
--- trunk/blender/source/blender/windowmanager/wm_files.h	2013-03-28 00:58:50 UTC (rev 55638)
+++ trunk/blender/source/blender/windowmanager/wm_files.h	2013-03-28 02:29:10 UTC (rev 55639)
@@ -33,6 +33,7 @@
 
 void		wm_read_history(void);
 int			wm_file_write(struct bContext *C, const char *target, int fileflags, struct ReportList *reports);
+int			wm_history_read_exec(bContext *C, wmOperator *op);
 int			wm_homefile_read_exec(struct bContext *C, struct wmOperator *op);
 int			wm_homefile_read(struct bContext *C, struct ReportList *reports, short from_memory);
 int			wm_homefile_write_exec(struct bContext *C, struct wmOperator *op);




More information about the Bf-blender-cvs mailing list