[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24230] trunk/blender: make python operator instances subclasses of the wmOperator when called.
Campbell Barton
ideasman42 at gmail.com
Mon Nov 2 09:32:00 CET 2009
Revision: 24230
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24230
Author: campbellbarton
Date: 2009-11-02 09:32:00 +0100 (Mon, 02 Nov 2009)
Log Message:
-----------
make python operator instances subclasses of the wmOperator when called.
was subclassing the operator's type before.
Removes the need for passing self.__operator__, can pass self directly.
Modified Paths:
--------------
trunk/blender/release/scripts/io/export_3ds.py
trunk/blender/release/scripts/io/export_fbx.py
trunk/blender/release/scripts/io/export_mdd.py
trunk/blender/release/scripts/io/export_obj.py
trunk/blender/release/scripts/io/export_ply.py
trunk/blender/release/scripts/io/export_x3d.py
trunk/blender/release/scripts/io/import_3ds.py
trunk/blender/release/scripts/io/import_obj.py
trunk/blender/release/scripts/modules/bpy_ops.py
trunk/blender/release/scripts/templates/operator.py
trunk/blender/release/scripts/ui/space_userpref.py
trunk/blender/release/scripts/ui/space_view3d.py
trunk/blender/source/blender/python/intern/bpy_operator_wrap.c
Modified: trunk/blender/release/scripts/io/export_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/export_3ds.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/export_3ds.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -1128,7 +1128,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
def poll(self, context): # Poll isnt working yet
Modified: trunk/blender/release/scripts/io/export_fbx.py
===================================================================
--- trunk/blender/release/scripts/io/export_fbx.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/export_fbx.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -3429,7 +3429,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
Modified: trunk/blender/release/scripts/io/export_mdd.py
===================================================================
--- trunk/blender/release/scripts/io/export_mdd.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/export_mdd.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -184,7 +184,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
bpy.ops.add(EXPORT_OT_mdd)
Modified: trunk/blender/release/scripts/io/export_obj.py
===================================================================
--- trunk/blender/release/scripts/io/export_obj.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/export_obj.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -995,7 +995,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
def poll(self, context): # Poll isnt working yet
Modified: trunk/blender/release/scripts/io/export_ply.py
===================================================================
--- trunk/blender/release/scripts/io/export_ply.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/export_ply.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -288,7 +288,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
Modified: trunk/blender/release/scripts/io/export_x3d.py
===================================================================
--- trunk/blender/release/scripts/io/export_x3d.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/export_x3d.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -1235,7 +1235,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
bpy.ops.add(EXPORT_OT_x3d)
Modified: trunk/blender/release/scripts/io/import_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/import_3ds.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/import_3ds.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -1161,7 +1161,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
bpy.ops.add(IMPORT_OT_autodesk_3ds)
Modified: trunk/blender/release/scripts/io/import_obj.py
===================================================================
--- trunk/blender/release/scripts/io/import_obj.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/io/import_obj.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -1618,7 +1618,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
Modified: trunk/blender/release/scripts/modules/bpy_ops.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_ops.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/modules/bpy_ops.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -528,7 +528,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.invoke_props_popup(self.__operator__, event)
+ wm.invoke_props_popup(self, event)
return ('RUNNING_MODAL',)
Modified: trunk/blender/release/scripts/templates/operator.py
===================================================================
--- trunk/blender/release/scripts/templates/operator.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/templates/operator.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -51,11 +51,11 @@
if True:
# File selector
- wm.add_fileselect(self.__operator__) # will run self.execute()
+ wm.add_fileselect(self) # will run self.execute()
return ('RUNNING_MODAL',)
else if 0:
# Redo popup
- wm.invoke_props_popup(self.__operator__, event) #
+ wm.invoke_props_popup(self, event) #
return ('RUNNING_MODAL',)
else if 0:
return self.execute(context)
Modified: trunk/blender/release/scripts/ui/space_userpref.py
===================================================================
--- trunk/blender/release/scripts/ui/space_userpref.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/ui/space_userpref.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -678,7 +678,7 @@
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/release/scripts/ui/space_view3d.py 2009-11-02 08:32:00 UTC (rev 24230)
@@ -1553,7 +1553,7 @@
'''
def invoke(self, context, event):
wm = context.manager
- wm.add_fileselect(self.__operator__)
+ wm.add_fileselect(self)
return ('RUNNING_MODAL',)
'''
Modified: trunk/blender/source/blender/python/intern/bpy_operator_wrap.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_operator_wrap.c 2009-11-02 08:05:16 UTC (rev 24229)
+++ trunk/blender/source/blender/python/intern/bpy_operator_wrap.c 2009-11-02 08:32:00 UTC (rev 24230)
@@ -90,14 +90,18 @@
PointerRNA ptr_context;
PointerRNA ptr_operator;
PointerRNA ptr_event;
- PyObject *py_operator;
PyGILState_STATE gilstate;
bpy_context_set(C, &gilstate);
args = PyTuple_New(1);
- PyTuple_SET_ITEM(args, 0, PyObject_GetAttrString(py_class, "bl_rna")); // need to use an rna instance as the first arg
+
+ /* poll has no 'op', should be ok still */
+ /* use an rna instance as the first arg */
+ RNA_pointer_create(NULL, &RNA_Operator, op, &ptr_operator);
+ PyTuple_SET_ITEM(args, 0, pyrna_struct_CreatePyObject(&ptr_operator));
+
py_class_instance = PyObject_Call(py_class, args, NULL);
Py_DECREF(args);
@@ -120,14 +124,6 @@
RNA_STRUCT_END;
}
- /* set operator pointer RNA as instance "__operator__" attribute */
- if(op) {
- RNA_pointer_create(NULL, &RNA_Operator, op, &ptr_operator);
- py_operator= pyrna_struct_CreatePyObject(&ptr_operator);
- PyDict_SetItemString(class_dict, "__operator__", py_operator);
- Py_DECREF(py_operator);
- }
-
RNA_pointer_create(NULL, &RNA_Context, C, &ptr_context);
if (mode==PYOP_INVOKE) {
@@ -160,6 +156,10 @@
Py_DECREF(item);
Py_DECREF(class_dict);
}
+ else {
+ PyErr_Print();
+ PyErr_Clear();
+ }
if (ret == NULL) { /* covers py_class_instance failing too */
if(op)
More information about the Bf-blender-cvs
mailing list