From df8e8e5b6be91c09e873f9770ea08002b2c45216 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Jan 2019 12:27:58 +1100 Subject: UI: use keymap introspection for tooltip creation Also support non existing keymap items which gave an error, see: T60335 --- release/scripts/startup/bl_ui/space_toolsystem_toolbar.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'release') diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py index 125ac67a816..99d6104d42c 100644 --- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py +++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py @@ -33,6 +33,10 @@ from .space_toolsystem_common import ( ) +def kmi_to_string_or_none(kmi): + return kmi.to_string() if kmi else "" + + def generate_from_enum_ex( context, *, icon_prefix, @@ -101,6 +105,10 @@ class _defs_view3d_generic: @ToolDef.from_fn def ruler(): def description(context, item, km): + if km is not None: + kmi = km.keymap_items.find_from_operator("view3d.ruler_add") + else: + kmi = None return ( "Measure distance and angles.\n" "\u2022 {} anywhere for new measurement.\n" @@ -109,7 +117,7 @@ class _defs_view3d_generic: "\u2022 Ctrl to snap.\n" "\u2022 Shift to measure surface thickness" ).format( - km.keymap_items[0].to_string() + kmi_to_string_or_none(kmi) ) return dict( text="Measure", -- cgit v1.2.3