From 4210a4f1cff365bac8397f0da40c9b23a428194b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 6 Nov 2024 10:49:41 +1100 Subject: [PATCH] Fix error keymap conflict operator Detecting conflicts was failing because of an undefined function call & an unknown "Timeline" keymap in the keymap hierarchy. --- .../modules/bl_keymap_utils/keymap_hierarchy.py | 1 - scripts/modules/bpy_extras/keyconfig_utils.py | 14 +++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/modules/bl_keymap_utils/keymap_hierarchy.py b/scripts/modules/bl_keymap_utils/keymap_hierarchy.py index 5c8a36e0467..34b45476f8c 100644 --- a/scripts/modules/bl_keymap_utils/keymap_hierarchy.py +++ b/scripts/modules/bl_keymap_utils/keymap_hierarchy.py @@ -141,7 +141,6 @@ _km_hierarchy = [ ('NLA Tracks', 'NLA_EDITOR', 'WINDOW', []), ('NLA Generic', 'NLA_EDITOR', 'WINDOW', []), ]), - ('Timeline', 'TIMELINE', 'WINDOW', []), ('Image', 'IMAGE_EDITOR', 'WINDOW', [ # Image (reverse order, UVEdit before Image). diff --git a/scripts/modules/bpy_extras/keyconfig_utils.py b/scripts/modules/bpy_extras/keyconfig_utils.py index e3681b39d41..1ffbb932e5b 100644 --- a/scripts/modules/bpy_extras/keyconfig_utils.py +++ b/scripts/modules/bpy_extras/keyconfig_utils.py @@ -70,6 +70,14 @@ def addon_keymap_unregister(keymap_data): # Utility Functions def keyconfig_test(kc): + from bl_keymap_utils.io import kmi_args_as_data + + def _kmistr(kmi, is_modal): + if is_modal: + kmi_id = kmi.propvalue + else: + kmi_id = kmi.idname + return "{:s}({:s})".format(kmi_id, kmi_args_as_data(kmi)) def testEntry(kc, entry, src=None, parent=None): result = False @@ -86,9 +94,9 @@ def keyconfig_test(kc): for item in km.keymap_items: if src.compare(item): print("===========") - print(parent.name) + print(parent.name, "[parent]") print(_kmistr(src, is_modal).strip()) - print(km.name) + print(km.name, "[child]") print(_kmistr(item, is_modal).strip()) result = True @@ -105,7 +113,7 @@ def keyconfig_test(kc): item = km.keymap_items[j + i + 1] if src.compare(item): print("===========") - print(km.name) + print(km.name, "[self confict]") print(_kmistr(src, is_modal).strip()) print(_kmistr(item, is_modal).strip()) result = True