diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-05-18 02:12:26 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-05-18 03:02:29 +0300 |
commit | 29aae4db38772cb5544a5e9998922facf951b89e (patch) | |
tree | d8fa2970b299d303fc20b2841e2337d40cde1072 /source/blender/windowmanager | |
parent | 3ed009af96b158d8da1e55f50e6924cc747a6e7a (diff) |
UI: errors in buttons now show in info report
Mistakes in button expressions were previously only printed to the console.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 33 |
2 files changed, 22 insertions, 12 deletions
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index d4148a56dd2..2131d5aae4a 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -178,6 +178,7 @@ void WM_main_remove_notifier_reference(const void *reference); void WM_main_remove_editor_id_reference(const struct ID *id); /* reports */ +void WM_report_banner_show(const struct bContext *C); void WM_report(const struct bContext *C, ReportType type, const char *message); void WM_reportf(const struct bContext *C, ReportType type, const char *format, ...) ATTR_PRINTF_FORMAT(3, 4); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 658fb317688..85b94363616 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -587,26 +587,35 @@ void WM_event_print(const wmEvent *event) #endif /* NDEBUG */ +/** + * Show the report in the info header. + */ +void WM_report_banner_show(const bContext *C) +{ + wmWindowManager *wm = CTX_wm_manager(C); + ReportList *wm_reports = CTX_wm_reports(C); + ReportTimerInfo *rti; + + /* After adding reports to the global list, reset the report timer. */ + WM_event_remove_timer(wm, NULL, wm_reports->reporttimer); + + /* Records time since last report was added */ + wm_reports->reporttimer = WM_event_add_timer(wm, CTX_wm_window(C), TIMERREPORT, 0.05); + + rti = MEM_callocN(sizeof(ReportTimerInfo), "ReportTimerInfo"); + wm_reports->reporttimer->customdata = rti; +} + static void wm_add_reports(const bContext *C, ReportList *reports) { /* if the caller owns them, handle this */ if (reports->list.first && (reports->flag & RPT_OP_HOLD) == 0) { - - wmWindowManager *wm = CTX_wm_manager(C); ReportList *wm_reports = CTX_wm_reports(C); - ReportTimerInfo *rti; /* add reports to the global list, otherwise they are not seen */ BLI_movelisttolist(&wm_reports->list, &reports->list); - - /* After adding reports to the global list, reset the report timer. */ - WM_event_remove_timer(wm, NULL, wm_reports->reporttimer); - - /* Records time since last report was added */ - wm_reports->reporttimer = WM_event_add_timer(wm, CTX_wm_window(C), TIMERREPORT, 0.05); - - rti = MEM_callocN(sizeof(ReportTimerInfo), "ReportTimerInfo"); - wm_reports->reporttimer->customdata = rti; + + WM_report_banner_show(C); } } |