[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28539] trunk/blender: Fix [#22199] Cloth Cache Panel > Disk Cache doesn't work

Matt Ebb matt at mke3.net
Mon May 3 05:02:30 CEST 2010


Revision: 28539
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28539
Author:   broken
Date:     2010-05-03 05:02:27 +0200 (Mon, 03 May 2010)

Log Message:
-----------
Fix [#22199] Cloth Cache Panel > Disk Cache doesn't work

Condition for this to work (.blend file must be saved) was poorly communicated 
in the UI (printfs are no good for this - ideally should use reports). Tweaked this a bit.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_physics_common.py
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/makesrna/intern/rna_main.c
    trunk/blender/source/blender/makesrna/intern/rna_object_force.c

Modified: trunk/blender/release/scripts/ui/properties_physics_common.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_physics_common.py	2010-05-03 02:01:38 UTC (rev 28538)
+++ trunk/blender/release/scripts/ui/properties_physics_common.py	2010-05-03 03:02:27 UTC (rev 28539)
@@ -20,6 +20,7 @@
 
 narrowui = 180
 
+import bpy
 
 def point_cache_ui(self, context, cache, enabled, particles, smoke):
     layout = self.layout
@@ -67,7 +68,10 @@
             sub = col.column()
             sub.enabled = enabled
             sub.prop(cache, "quick_cache")
-            col.prop(cache, "disk_cache")
+            
+            sub = col.column()
+            sub.enabled = bpy.data.file_is_saved
+            sub.prop(cache, "disk_cache")
             col.label(text=cache.info)
 
         

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2010-05-03 02:01:38 UTC (rev 28538)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2010-05-03 03:02:27 UTC (rev 28539)
@@ -2652,7 +2652,8 @@
 			ptcache_file_init_pointers(pf);
 
 			if(!ptcache_file_write_header_begin(pf) || !pid->write_header(pf)) {
-				printf("Error writing to disk cache\n");
+				if (G.f & G_DEBUG) 
+					printf("Error writing to disk cache\n");
 				cache->flag &= ~PTCACHE_DISK_CACHE;
 
 				ptcache_file_close(pf);
@@ -2662,7 +2663,8 @@
 			for(i=0; i<pm->totpoint; i++) {
 				ptcache_copy_data(pm->cur, pf->cur);
 				if(!ptcache_file_write_data(pf)) {
-					printf("Error writing to disk cache\n");
+					if (G.f & G_DEBUG) 
+						printf("Error writing to disk cache\n");
 					cache->flag &= ~PTCACHE_DISK_CACHE;
 
 					ptcache_file_close(pf);
@@ -2678,7 +2680,8 @@
 				BKE_ptcache_write_cache(pid, 0);
 		}
 		else
-			printf("Error creating disk cache file\n");
+			if (G.f & G_DEBUG) 
+				printf("Error creating disk cache file\n");
 	}
 }
 void BKE_ptcache_toggle_disk_cache(PTCacheID *pid)
@@ -2688,7 +2691,8 @@
 
 	if (!G.relbase_valid){
 		cache->flag &= ~PTCACHE_DISK_CACHE;
-		printf("File must be saved before using disk cache!\n");
+		if (G.f & G_DEBUG) 
+			printf("File must be saved before using disk cache!\n");
 		return;
 	}
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_main.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_main.c	2010-05-03 02:01:38 UTC (rev 28538)
+++ trunk/blender/source/blender/makesrna/intern/rna_main.c	2010-05-03 03:02:27 UTC (rev 28539)
@@ -50,6 +50,10 @@
 		G.f &= ~G_DEBUG;
 }
 
+static int rna_Main_fileissaved_get(PointerRNA *ptr)
+{
+	return G.relbase_valid;
+}
 
 static void rna_Main_filename_get(PointerRNA *ptr, char *value)
 {
@@ -308,6 +312,11 @@
 	RNA_def_property_string_funcs(prop, "rna_Main_filename_get", "rna_Main_filename_length", "rna_Main_filename_set");
 	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 	RNA_def_property_ui_text(prop, "Filename", "Path to the .blend file");
+	
+	prop= RNA_def_property(srna, "file_is_saved", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_boolean_funcs(prop, "rna_Main_fileissaved_get", NULL);
+	RNA_def_property_ui_text(prop, "File is Saved", "Has the current session been saved to disk as a .blend file");
 
 	prop= RNA_def_property(srna, "debug", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_funcs(prop, "rna_Main_debug_get", "rna_Main_debug_set");

Modified: trunk/blender/source/blender/makesrna/intern/rna_object_force.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object_force.c	2010-05-03 02:01:38 UTC (rev 28538)
+++ trunk/blender/source/blender/makesrna/intern/rna_object_force.c	2010-05-03 03:02:27 UTC (rev 28539)
@@ -709,7 +709,7 @@
 
 	prop= RNA_def_property(srna, "disk_cache", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", PTCACHE_DISK_CACHE);
-	RNA_def_property_ui_text(prop, "Disk Cache", "Save cache files to disk");
+	RNA_def_property_ui_text(prop, "Disk Cache", "Save cache files to disk (.blend file must be saved first)");
 	RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_toggle_disk_cache");
 
 	prop= RNA_def_property(srna, "outdated", PROP_BOOLEAN, PROP_NONE);





More information about the Bf-blender-cvs mailing list