[Bf-blender-cvs] [3ac006b] ui-preview-buttons: move from bpy.app._previews to _bpy._utils_previews

Campbell Barton noreply at git.blender.org
Mon May 11 15:28:56 CEST 2015


Commit: 3ac006b8d225037ef3821e6d316416e40365f745
Author: Campbell Barton
Date:   Mon May 11 23:26:45 2015 +1000
Branches: ui-preview-buttons
https://developer.blender.org/rB3ac006b8d225037ef3821e6d316416e40365f745

move from bpy.app._previews to _bpy._utils_previews

since this is an internal module, having in bpy.app and hidden doesnt make so much sense.

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

M	release/scripts/modules/bpy/utils/previews.py
M	source/blender/python/intern/CMakeLists.txt
M	source/blender/python/intern/bpy.c
M	source/blender/python/intern/bpy_app.c
D	source/blender/python/intern/bpy_app_previews.c
D	source/blender/python/intern/bpy_app_previews.h
A	source/blender/python/intern/bpy_utils_previews.c
A	source/blender/python/intern/bpy_utils_previews.h

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

diff --git a/release/scripts/modules/bpy/utils/previews.py b/release/scripts/modules/bpy/utils/previews.py
index f64c3ca..e901e24 100644
--- a/release/scripts/modules/bpy/utils/previews.py
+++ b/release/scripts/modules/bpy/utils/previews.py
@@ -32,7 +32,10 @@ __all__ = (
     "remove",
     )
 
-from bpy.app import _previews
+import _bpy
+_utils_previews = _bpy._utils_previews
+del _bpy
+
 
 _uuid_open = set()
 
@@ -70,28 +73,28 @@ class _BPyImagePreviewCollection(dict):
     def new(self, name):
         if name in self:
             raise KeyException("key %r already exists")
-        p = self[name] = _previews.new(
+        p = self[name] = _utils_previews.new(
                 self._gen_key(name))
         return p
-    new.__doc__ = _previews.new.__doc__
+    new.__doc__ = _utils_previews.new.__doc__
 
     def load(self, name, path, path_type):
         if name in self:
             raise KeyException("key %r already exists")
-        p = self[name] = _previews.load(
+        p = self[name] = _utils_previews.load(
                 self._gen_key(name), path, path_type, False)
         return p
-    load.__doc__ = _previews.load.__doc__
+    load.__doc__ = _utils_previews.load.__doc__
 
     def release(self, name):
         p = self.pop(name, None)
         if p is not None:
-            _previews.release(self._gen_key(name))
-    release.__doc__ = _previews.release.__doc__
+            _utils_previews.release(self._gen_key(name))
+    release.__doc__ = _utils_previews.release.__doc__
 
     def clear(self):
         for name in self.keys():
-            _previews.release(self._gen_key(name))
+            _utils_previews.release(self._gen_key(name))
         super().clear()
 
     def close(self):
diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt
index d23f4ce..ed04152 100644
--- a/source/blender/python/intern/CMakeLists.txt
+++ b/source/blender/python/intern/CMakeLists.txt
@@ -53,7 +53,6 @@ set(SRC
 	bpy_app_handlers.c
 	bpy_app_ocio.c
 	bpy_app_oiio.c
-	bpy_app_previews.c
 	bpy_app_sdl.c
 	bpy_app_translations.c
 	bpy_driver.c
@@ -71,6 +70,7 @@ set(SRC
 	bpy_rna_callback.c
 	bpy_traceback.c
 	bpy_util.c
+	bpy_utils_previews.c
 	bpy_utils_units.c
 	stubs.c
 
@@ -82,7 +82,6 @@ set(SRC
 	bpy_app_handlers.h
 	bpy_app_ocio.h
 	bpy_app_oiio.h
-	bpy_app_previews.h
 	bpy_app_sdl.h
 	bpy_app_translations.h
 	bpy_driver.h
@@ -97,6 +96,7 @@ set(SRC
 	bpy_rna_callback.h
 	bpy_traceback.h
 	bpy_util.h
+	bpy_utils_previews.h
 	bpy_utils_units.h
 	../BPY_extern.h
 )
diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c
index ec3c017..9a5e488 100644
--- a/source/blender/python/intern/bpy.c
+++ b/source/blender/python/intern/bpy.c
@@ -48,6 +48,7 @@
 #include "bpy_props.h"
 #include "bpy_library.h"
 #include "bpy_operator.h"
+#include "bpy_utils_previews.h"
 #include "bpy_utils_units.h"
 
 #include "../generic/py_capi_utils.h"
@@ -330,6 +331,7 @@ void BPy_init_modules(void)
 	PyModule_AddObject(mod, "ops", BPY_operator_module());
 	PyModule_AddObject(mod, "app", BPY_app_struct());
 	PyModule_AddObject(mod, "_utils_units", BPY_utils_units());
+	PyModule_AddObject(mod, "_utils_previews", BPY_utils_previews_module());
 
 	/* bpy context */
 	RNA_pointer_create(NULL, &RNA_Context, (void *)BPy_GetContext(), &ctx_ptr);
diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c
index ba265c8..1cf0c44 100644
--- a/source/blender/python/intern/bpy_app.c
+++ b/source/blender/python/intern/bpy_app.c
@@ -41,8 +41,6 @@
 
 #include "bpy_app_translations.h"
 
-#include "bpy_app_previews.h"
-
 #include "bpy_app_handlers.h"
 #include "bpy_driver.h"
 
@@ -104,7 +102,6 @@ static PyStructSequence_Field app_info_fields[] = {
 	{(char *)"build_options", (char *)"A set containing most important enabled optional build features"},
 	{(char *)"handlers", (char *)"Application handler callbacks"},
 	{(char *)"translations", (char *)"Application and addons internationalization API"},
-	{(char *)"_previews", (char *)"Previews manager API"},
 	{NULL},
 };
 
@@ -182,7 +179,6 @@ static PyObject *make_app_info(void)
 	SetObjItem(BPY_app_build_options_struct());
 	SetObjItem(BPY_app_handlers_struct());
 	SetObjItem(BPY_app_translations_struct());
-	SetObjItem(BPY_app_preview_module());
 
 #undef SetIntItem
 #undef SetStrItem
diff --git a/source/blender/python/intern/bpy_app_previews.c b/source/blender/python/intern/bpy_utils_previews.c
similarity index 78%
rename from source/blender/python/intern/bpy_app_previews.c
rename to source/blender/python/intern/bpy_utils_previews.c
index a1d85f4..f7ce205 100644
--- a/source/blender/python/intern/bpy_app_previews.c
+++ b/source/blender/python/intern/bpy_utils_previews.c
@@ -20,10 +20,10 @@
  * ***** END GPL LICENSE BLOCK *****
  */
 
-/** \file blender/python/intern/bpy_app_previews.c
+/** \file blender/python/intern/bpy_utils_previews.c
  *  \ingroup pythonintern
  *
- * This file defines a singleton py object accessed via 'bpy.app.previews',
+ * This file defines a singleton py object accessed via 'bpy.utils.previews',
  * which exposes low-level API for custom previews/icons.
  * It is replaced in final API by an higher-level python wrapper, that handles previews by addon,
  * and automatically release them on deletion.
@@ -38,7 +38,7 @@
 #include "RNA_access.h"
 
 #include "BPY_extern.h"
-#include "bpy_app_previews.h"
+#include "bpy_utils_previews.h"
 #include "bpy_rna.h"
 
 #include "MEM_guardedalloc.h"
@@ -53,7 +53,7 @@
 
 #include "../generic/python_utildefines.h"
 
-PyDoc_STRVAR(app_previews_meth_new_doc,
+PyDoc_STRVAR(bpy_utils_previews_new_doc,
 ".. method:: new(name)\n"
 "\n"
 "   Generate a new empty preview, or return existing one matching ``name``.\n"
@@ -63,7 +63,7 @@ PyDoc_STRVAR(app_previews_meth_new_doc,
 "   :return: The Preview matching given name, or a new empty one.\n"
 "   :rtype: :class:`bpy.types.ImagePreview`\n"
 );
-static PyObject *app_previews_meth_new(PyObject *UNUSED(self), PyObject *args, PyObject *kw)
+static PyObject *bpy_utils_previews_new(PyObject *UNUSED(self), PyObject *args, PyObject *kw)
 {
 	static const char *kwlist[] = {"name", NULL};
 	char *name;
@@ -83,7 +83,7 @@ static PyObject *app_previews_meth_new(PyObject *UNUSED(self), PyObject *args, P
 	return pyrna_struct_CreatePyObject(&ptr);
 }
 
-PyDoc_STRVAR(app_previews_meth_load_doc,
+PyDoc_STRVAR(bpy_utils_previews_load_doc,
 ".. method:: load(name, path, path_type, force_reload)\n"
 "\n"
 "   Generate a new preview from given file path, or return existing one matching ``name``.\n"
@@ -99,7 +99,7 @@ PyDoc_STRVAR(app_previews_meth_load_doc,
 "   :return: The Preview matching given name, or a new empty one.\n"
 "   :rtype: :class:`bpy.types.ImagePreview`\n"
 );
-static PyObject *app_previews_meth_load(PyObject *UNUSED(self), PyObject *args, PyObject *kw)
+static PyObject *bpy_utils_previews_load(PyObject *UNUSED(self), PyObject *args, PyObject *kw)
 {
 	static const char *kwlist[] = {"name", "path", "path_type", "force_reload", NULL};
 	char *name, *path, *path_type_s;
@@ -129,7 +129,7 @@ static PyObject *app_previews_meth_load(PyObject *UNUSED(self), PyObject *args,
 	}
 	else {
 		PyErr_Format(PyExc_ValueError,
-		             "bpy.app.previews.load: invalid '%' path type, only 'IMAGE', 'MOVIE', 'BLEND' and 'FONT' "
+		             "load: invalid '%' path type, only 'IMAGE', 'MOVIE', 'BLEND' and 'FONT' "
 		             "are supported", path_type_s);
 		return NULL;
 	}
@@ -140,7 +140,7 @@ static PyObject *app_previews_meth_load(PyObject *UNUSED(self), PyObject *args,
 	return pyrna_struct_CreatePyObject(&ptr);
 }
 
-PyDoc_STRVAR(app_previews_meth_release_doc,
+PyDoc_STRVAR(bpy_utils_previews_release_doc,
 ".. method:: release(name)\n"
 "\n"
 "   Release (free) a previously created preview.\n"
@@ -149,7 +149,7 @@ PyDoc_STRVAR(app_previews_meth_release_doc,
 "   :arg name: The name (unique id) identifying the preview.\n"
 "   :type name: string\n"
 );
-static PyObject *app_previews_meth_release(PyObject *UNUSED(self), PyObject *args, PyObject *kw)
+static PyObject *bpy_utils_previews_release(PyObject *UNUSED(self), PyObject *args, PyObject *kw)
 {
 	static const char *kwlist[] = {"name", NULL};
 	char *name;
@@ -166,33 +166,33 @@ static PyObject *app_previews_meth_release(PyObject *UNUSED(self), PyObject *arg
 	Py_RETURN_NONE;
 }
 
-static struct PyMethodDef bpy_app_previews_methods[] = {
+static struct PyMethodDef bpy_utils_previews_methods[] = {
 	/* Can't use METH_KEYWORDS alone, see http://bugs.python.org/issue11587 */
-	{"new", (PyCFunction)app_previews_meth_new, METH_VARARGS | METH_KEYWORDS, app_previews_meth_new_doc},
-	{"load", (PyCFunction)app_previews_meth_load, METH_VARARGS | METH_KEYWORDS, app_previews_meth_load_doc},
-	{"release", (PyCFunction)app_previews_meth_release, METH_VARARGS | METH_KEYWORDS, app_previews_meth_release_doc},
+	{"new", (PyCFunction)bpy_utils_previews_new, METH_VARARGS | METH_KEYWORDS, bpy_utils_previews_new_doc},
+	{"load", (PyCFunction)bpy_utils_previews_load, METH_VARARGS | METH_KEYWORDS, bpy_utils_previews_load_doc},
+	{"release", (PyCFunction)bpy_utils_previews_release, METH_VARARGS | METH_KEYWORDS, bpy_utils_previews_release_doc},
 	{NULL, NULL, 0, NULL}
 };
 
-PyDoc_STRVAR(bpy_app_previews_doc,
+PyDoc_STRVAR(bpy_utils_previews_doc,
 "This object contains basic static methods to handle cached (non-ID) previews in Blender\n"
 "(low-level API, not exposed to final users)."
 );
-static struct PyModuleDef bpy_app_previews_module = {
+static struct PyModuleDef bpy_utils_previews_module = {
 	PyModuleDef_HEAD_INIT,
-	"bpy.app._previews",
-	bpy_app_previews_doc,
+	"bpy._utils_previews",
+	bpy_utils_previews_doc,
 	0,
-	bpy_app_previews_methods,
+	bpy_utils_previews_methods,
 	NULL, NULL, NULL, NULL
 };
 
 
-PyObject *BPY_app_preview_module(void)
+PyObject *BPY_utils_previews_module(void)
 {
 	PyObject *submodule;
 
-	submodule = PyModule_Create(&bpy_app_previews_module);
+	submodule = PyModule_Create(&bpy_utils_previews_module);
 
 	return submodule;
 }
diff --git a/source/blender/python/intern/bpy_app_previews.h b/source/blender/python/intern/bpy_utils_previews.h
similarity index 81%
rename from source/ble

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list