[Bf-blender-cvs] [c25164e16dc] master: UI: use tool label instead of id-names for quick favorites

Campbell Barton noreply at git.blender.org
Mon May 27 08:30:59 CEST 2019


Commit: c25164e16dceeadb519ee489d61f58d9885e2408
Author: Campbell Barton
Date:   Mon May 27 16:24:48 2019 +1000
Branches: master
https://developer.blender.org/rBc25164e16dceeadb519ee489d61f58d9885e2408

UI: use tool label instead of id-names for quick favorites

===================================================================

M	source/blender/editors/interface/interface_context_menu.c

===================================================================

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(



More information about the Bf-blender-cvs mailing list