[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