[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35681] trunk/blender/source/blender: operators called from python were not getting their reports back into python errors .

Campbell Barton ideasman42 at gmail.com
Tue Mar 22 03:38:42 CET 2011


Revision: 35681
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35681
Author:   campbellbarton
Date:     2011-03-22 02:38:39 +0000 (Tue, 22 Mar 2011)
Log Message:
-----------
operators called from python were not getting their reports back into python errors.
eg:
- console calls operator
- operator calls report
- report went into header rather them back into the console as an error.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
    trunk/blender/source/blender/python/intern/bpy_operator.c
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h	2011-03-22 01:40:22 UTC (rev 35680)
+++ trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h	2011-03-22 02:38:39 UTC (rev 35681)
@@ -85,7 +85,8 @@
 enum ReportListFlags {
 	RPT_PRINT = 1,
 	RPT_STORE = 2,
-	RPT_FREE = 4
+	RPT_FREE = 4,
+	RPT_OP_HOLD = 8 /* dont move them into the operator global list (caller will use) */
 };
 #
 #

Modified: trunk/blender/source/blender/python/intern/bpy_operator.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_operator.c	2011-03-22 01:40:22 UTC (rev 35680)
+++ trunk/blender/source/blender/python/intern/bpy_operator.c	2011-03-22 02:38:39 UTC (rev 35681)
@@ -195,7 +195,7 @@
 			ReportList *reports;
 
 			reports= MEM_mallocN(sizeof(ReportList), "wmOperatorReportList");
-			BKE_reports_init(reports, RPT_STORE);
+			BKE_reports_init(reports, RPT_STORE | RPT_OP_HOLD); /* own so these dont move into global reports */
 
 			operator_ret= WM_operator_call_py(C, ot, context, &ptr, reports);
 

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2011-03-22 01:40:22 UTC (rev 35680)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2011-03-22 02:38:39 UTC (rev 35681)
@@ -453,7 +453,8 @@
 		}
 	}
 
-	if (op->reports->list.first) {
+	/* if the caller owns them them handle this */
+	if (op->reports->list.first && (op->reports->flag & RPT_OP_HOLD) == 0) {
 
 		wmWindowManager *wm = CTX_wm_manager(C);
 		ReportList *wm_reports= CTX_wm_reports(C);




More information about the Bf-blender-cvs mailing list