diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-05-27 09:24:48 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-05-27 09:30:23 +0300 |
commit | c25164e16dceeadb519ee489d61f58d9885e2408 (patch) | |
tree | 86084c904cbf6b8616592c39fe98e70bc0dbe5f8 /source | |
parent | 552f5da3c4852cdcdfd745bf256de21a2d264f34 (diff) |
UI: use tool label instead of id-names for quick favorites
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/interface/interface_context_menu.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_context_menu.c b/source/blender/editors/interface/interface_context_menu.c index d1f72519046..ca35689112f 100644 --- a/source/blender/editors/interface/interface_context_menu.c +++ b/source/blender/editors/interface/interface_context_menu.c @@ -47,6 +47,8 @@ #include "RNA_access.h" +#include "BPY_extern.h" + #include "WM_api.h" #include "WM_types.h" @@ -358,7 +360,31 @@ static void ui_but_user_menu_add(bContext *C, uiBut *but, bUserMenu *um) if (drawstr[0] == '\0') { /* Hard code overrides for generic operators. */ if (UI_but_is_tool(but)) { - RNA_string_get(but->opptr, "name", drawstr); + char idname[64]; + RNA_string_get(but->opptr, "name", idname); +#ifdef WITH_PYTHON + { + const char *expr_imports[] = {"bpy", "bl_ui", NULL}; + char expr[256]; + SNPRINTF(expr, + "bl_ui.space_toolsystem_common.item_from_id(" + "bpy.context, " + "bpy.context.space_data.type, " + "'%s').label", + idname); + char *expr_result = NULL; + if (BPY_execute_string_as_string(C, expr_imports, expr, true, &expr_result)) { + STRNCPY(drawstr, expr_result); + MEM_freeN(expr_result); + } + else { + BLI_assert(0); + STRNCPY(drawstr, idname); + } + } +#else + STRNCPY(drawstr, idname); +#endif } } ED_screen_user_menu_item_add_operator( |