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);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to