[Bf-blender-cvs] [3432f34] master: UI: report if WM_OT_call_menu uses an unknown menu
Campbell Barton
noreply at git.blender.org
Mon Feb 10 04:18:28 CET 2014
Commit: 3432f34d059381546df8b202263a243f0656df38
Author: Campbell Barton
Date: Mon Feb 10 14:17:33 2014 +1100
https://developer.blender.org/rB3432f34d059381546df8b202263a243f0656df38
UI: report if WM_OT_call_menu uses an unknown menu
===================================================================
M source/blender/editors/include/UI_interface.h
M source/blender/editors/interface/interface_regions.c
M source/blender/windowmanager/intern/wm_operators.c
===================================================================
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 55c15ab..71d55c7 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -349,7 +349,7 @@ void uiPupMenuEnd(struct bContext *C, struct uiPopupMenu *head);
struct uiLayout *uiPupMenuLayout(uiPopupMenu *head);
void uiPupMenuReports(struct bContext *C, struct ReportList *reports) ATTR_NONNULL();
-void uiPupMenuInvoke(struct bContext *C, const char *idname) ATTR_NONNULL();
+bool uiPupMenuInvoke(struct bContext *C, const char *idname, struct ReportList *reports) ATTR_NONNULL(1, 2);
/* Popup Blocks
*
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 2adf18c..9bb8ed0 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -47,6 +47,7 @@
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_idcode.h"
+#include "BKE_report.h"
#include "BKE_global.h"
#include "WM_api.h"
@@ -2369,7 +2370,7 @@ void uiPupMenuReports(bContext *C, ReportList *reports)
}
}
-void uiPupMenuInvoke(bContext *C, const char *idname)
+bool uiPupMenuInvoke(bContext *C, const char *idname, ReportList *reports)
{
uiPopupMenu *pup;
uiLayout *layout;
@@ -2377,12 +2378,12 @@ void uiPupMenuInvoke(bContext *C, const char *idname)
MenuType *mt = WM_menutype_find(idname, true);
if (mt == NULL) {
- printf("%s: named menu \"%s\" not found\n", __func__, idname);
- return;
+ BKE_reportf(reports, RPT_ERROR, "menu \"%s\" not found\n", idname);
+ return false;
}
if (mt->poll && mt->poll(C, mt) == 0)
- return;
+ return false;
pup = uiPupMenuBegin(C, IFACE_(mt->label), ICON_NONE);
layout = uiPupMenuLayout(pup);
@@ -2397,6 +2398,8 @@ void uiPupMenuInvoke(bContext *C, const char *idname)
mt->draw(C, &menu);
uiPupMenuEnd(C, pup);
+
+ return true;
}
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 45cfd2c..add726e 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -1985,7 +1985,7 @@ static int wm_call_menu_exec(bContext *C, wmOperator *op)
char idname[BKE_ST_MAXNAME];
RNA_string_get(op->ptr, "name", idname);
- uiPupMenuInvoke(C, idname);
+ uiPupMenuInvoke(C, idname, op->reports);
return OPERATOR_CANCELLED;
}
More information about the Bf-blender-cvs
mailing list