[Bf-blender-cvs] [1dd14de] ui-preview-buttons: Move reload() to ImagePreview method.

Campbell Barton noreply at git.blender.org
Mon May 11 05:12:33 CEST 2015


Commit: 1dd14dedb9ef0bdc030f160941e3c89fcf8ed4cc
Author: Campbell Barton
Date:   Mon May 11 13:12:06 2015 +1000
Branches: ui-preview-buttons
https://developer.blender.org/rB1dd14dedb9ef0bdc030f160941e3c89fcf8ed4cc

Move reload() to ImagePreview method.

===================================================================

M	release/scripts/modules/bpy/utils/previews.py
M	source/blender/makesrna/intern/rna_ID.c

===================================================================

diff --git a/release/scripts/modules/bpy/utils/previews.py b/release/scripts/modules/bpy/utils/previews.py
index ac4c999..f64c3ca 100644
--- a/release/scripts/modules/bpy/utils/previews.py
+++ b/release/scripts/modules/bpy/utils/previews.py
@@ -46,7 +46,7 @@ class _BPyImagePreviewCollection(dict):
 
     # Internal notes:
     # - keys in the dict are stored by name
-    # - values are instances of bpy.types.Preview
+    # - values are instances of bpy.types.ImagePreview
     # - Blender's internal 'PreviewImage' struct uses 'self._uuid' prefix.
 
     def __init__(self):
@@ -83,14 +83,6 @@ class _BPyImagePreviewCollection(dict):
         return p
     load.__doc__ = _previews.load.__doc__
 
-    def reload(self, name, path, path_type):
-        p = self.get(name)
-        if p in None:
-            raise KeyException("key %r doesn't exist")
-        p = self[name] = _previews.load(
-                self._gen_key(name), path, path_type, True)
-        return p
-
     def release(self, name):
         p = self.pop(name, None)
         if p is not None:
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index 1527298..764efca 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -577,6 +577,12 @@ static int rna_ImagePreview_icon_id_get(PointerRNA *ptr)
 	/* Using a callback here allows us to only generate icon matching that preview when icon_id is requested. */
 	return BKE_icon_preview_get((PreviewImage *)(ptr->data));
 }
+static void rna_ImagePreview_icon_reload(PreviewImage *prv)
+{
+	/* will lazy load on next use */
+	BKE_previewimg_clear(prv);
+}
+
 #else
 
 static void rna_def_ID_properties(BlenderRNA *brna)
@@ -698,6 +704,7 @@ static void rna_def_ID_materials(BlenderRNA *brna)
 static void rna_def_image_preview(BlenderRNA *brna)
 {
 	StructRNA *srna;
+	FunctionRNA *func;
 	PropertyRNA *prop;
 
 	srna = RNA_def_struct(brna, "ImagePreview", NULL);
@@ -745,6 +752,9 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	                   "Unique integer identifying this preview as an icon (zero means invalid)", INT_MIN, INT_MAX);
 	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 	RNA_def_property_int_funcs(prop, "rna_ImagePreview_icon_id_get", NULL, NULL);
+
+	func = RNA_def_function(srna, "reload", "rna_ImagePreview_icon_reload");
+	RNA_def_function_ui_description(func, "Reload the preview from its source path");
 }
 
 static void rna_def_ID(BlenderRNA *brna)




More information about the Bf-blender-cvs mailing list