[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18099] branches/blender2.5/blender/source /blender: * converting operator props to strings was using a float as in int.

Campbell Barton ideasman42 at gmail.com
Sat Dec 27 17:35:15 CET 2008


Revision: 18099
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18099
Author:   campbellbarton
Date:     2008-12-27 17:35:15 +0100 (Sat, 27 Dec 2008)

Log Message:
-----------
* converting operator props to strings was using a float as in int.
* PyOperators were always calling the python functions with default args.
* Made operator prints only happen when G.f & G_DEBUG is enabled.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
    branches/blender2.5/blender/source/blender/python/intern/bpy_operator.c
    branches/blender2.5/blender/source/blender/python/intern/bpy_opwrapper.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c	2008-12-27 16:09:56 UTC (rev 18098)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c	2008-12-27 16:35:15 UTC (rev 18099)
@@ -1899,7 +1899,7 @@
 		break;
 	case PROP_FLOAT:
 		if (len==0) {
-			BLI_dynstr_appendf(dynstr, "%f", RNA_property_int_get(ptr, prop));
+			BLI_dynstr_appendf(dynstr, "%f", RNA_property_float_get(ptr, prop));
 		}
 		else {
 			BLI_dynstr_append(dynstr, "(");

Modified: branches/blender2.5/blender/source/blender/python/intern/bpy_operator.c
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_operator.c	2008-12-27 16:09:56 UTC (rev 18098)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_operator.c	2008-12-27 16:35:15 UTC (rev 18099)
@@ -82,17 +82,16 @@
 
 	if( strcmp( name, "__members__" ) == 0 ) {
 		PyObject *item;
+		ret = PyList_New(2);
+		
+		PyList_SET_ITEM(ret, 0, PyUnicode_FromString("add"));
+		PyList_SET_ITEM(ret, 1, PyUnicode_FromString("remove"));
 
-		ret = PyList_New(0);
-
 		for(ot= WM_operatortype_first(); ot; ot= ot->next) {
 			item = PyUnicode_FromString( ot->idname );
 			PyList_Append(ret, item);
 			Py_DECREF(item);
 		}
-
-		item = PyUnicode_FromString("add");		PyList_Append(ret, item); Py_DECREF(item);
-		item = PyUnicode_FromString("remove");	PyList_Append(ret, item); Py_DECREF(item);
 	}
 	else if ( strcmp( name, "add" ) == 0 ) {
 		ret= PYOP_wrap_add_func();
@@ -168,7 +167,7 @@
 			error_val = 1; /* pyrna_py_to_prop sets the error */
 			break;
 		}
-
+		
 		if (pyrna_py_to_prop(&ptr, prop, item)) {
 			error_val= 1;
 			break;

Modified: branches/blender2.5/blender/source/blender/python/intern/bpy_opwrapper.c
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_opwrapper.c	2008-12-27 16:09:56 UTC (rev 18098)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_opwrapper.c	2008-12-27 16:35:15 UTC (rev 18099)
@@ -63,7 +63,7 @@
 
 		if (strcmp(arg_name, "rna_type")==0) continue;
 
-		item = pyrna_prop_to_py(&iter.ptr, prop);
+		item = pyrna_prop_to_py(op->ptr, prop);
 		PyDict_SetItemString(dict, arg_name, item);
 		Py_DECREF(item);
 	}
@@ -80,7 +80,7 @@
 	pyop_kwargs_from_operator(kw, op);
 
 	ret = PyObject_Call(pyot->py_exec, args, kw);
-
+	
 	Py_DECREF(args);
 	Py_DECREF(kw);
 
@@ -176,10 +176,11 @@
 	char *name= NULL;
 	PyObject *invoke= NULL;
 	PyObject *exec= NULL;
-	
-	if (!PyArg_ParseTuple(args, "ssOO", &idname, &name, &invoke, &exec))
+
+	if (!PyArg_ParseTuple(args, "ssOO", &idname, &name, &invoke, &exec)) {
 		PyErr_SetString( PyExc_AttributeError, "expected 2 strings and 2 function objects");
 		return NULL;
+	}
 
 	if (WM_operatortype_find(idname)) {
 		PyErr_Format( PyExc_AttributeError, "First argument \"%s\" operator alredy exists with this name", idname);
@@ -190,7 +191,7 @@
 		PyErr_SetString( PyExc_AttributeError, "the 2nd arg must be a function or None, the secons must be a function");
 		return NULL;
 	}
-	
+
 	pyot= MEM_callocN(sizeof(PyOperatorType), "PyOperatorType");
 
 	strcpy(pyot->idname, idname);

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2008-12-27 16:09:56 UTC (rev 18098)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2008-12-27 16:35:15 UTC (rev 18099)
@@ -331,8 +331,8 @@
 		else
 			printf("invalid operator call %s\n", ot->idname); /* debug, important to leave a while, should never happen */
 
-		/* only for testing, can remove any time */
-		WM_operator_print(op);
+		if(G.f & G_DEBUG)
+			WM_operator_print(op);
 
 		if((retval & OPERATOR_FINISHED) && (ot->flag & OPTYPE_REGISTER)) {
 			wm_operator_register(wm, op);





More information about the Bf-blender-cvs mailing list