[Bf-blender-cvs] [dab4876] ui-preview-buttons: Preview API: be more strict with new/load

Campbell Barton noreply at git.blender.org
Wed May 6 22:03:32 CEST 2015


Commit: dab4876c8d5e644fbaaa9cfb6b6d666c2e7e150d
Author: Campbell Barton
Date:   Thu May 7 06:02:12 2015 +1000
Branches: ui-preview-buttons
https://developer.blender.org/rBdab4876c8d5e644fbaaa9cfb6b6d666c2e7e150d

Preview API: be more strict with new/load

Don't silently reuse existing id's, instead make dev use typical dictionary API calls if they're not sure the item
already exists.

Also add reload method.

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

M	release/scripts/modules/bpy/utils/previews.py

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

diff --git a/release/scripts/modules/bpy/utils/previews.py b/release/scripts/modules/bpy/utils/previews.py
index 5390c54..ac4c999 100644
--- a/release/scripts/modules/bpy/utils/previews.py
+++ b/release/scripts/modules/bpy/utils/previews.py
@@ -68,21 +68,29 @@ class _BPyImagePreviewCollection(dict):
         return ":".join((self._uuid, name))
 
     def new(self, name):
-        p = self.get(name)
-        if p is None:
-            p = self[name] = _previews.new(
-                    self._gen_key(name))
+        if name in self:
+            raise KeyException("key %r already exists")
+        p = self[name] = _previews.new(
+                self._gen_key(name))
         return p
     new.__doc__ = _previews.new.__doc__
 
-    def load(self, name, path, path_type, force_reload=False):
-        p = None if force_reload else self.get(name)
-        if p is None:
-            p = self[name] = _previews.load(
-                    self._gen_key(name), path, path_type, force_reload)
+    def load(self, name, path, path_type):
+        if name in self:
+            raise KeyException("key %r already exists")
+        p = self[name] = _previews.load(
+                self._gen_key(name), path, path_type, False)
         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:




More information about the Bf-blender-cvs mailing list