Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-05-27 09:24:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-05-27 09:30:23 +0300
commitc25164e16dceeadb519ee489d61f58d9885e2408 (patch)
tree86084c904cbf6b8616592c39fe98e70bc0dbe5f8 /source/blender/editors/interface/interface_context_menu.c
parent552f5da3c4852cdcdfd745bf256de21a2d264f34 (diff)
UI: use tool label instead of id-names for quick favorites
Diffstat (limited to 'source/blender/editors/interface/interface_context_menu.c')
-rw-r--r--source/blender/editors/interface/interface_context_menu.c28
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(