@@ -54,19 +54,61 @@ class RightMouseNavigationPreferences(AddonPreferences):
54
54
def draw (self , context ):
55
55
layout = self .layout
56
56
57
- box = layout .box ()
58
- box .label (text = "Menu / Movement" , icon = "DRIVER_DISTANCE" )
59
- box .prop (self , "time" )
60
-
61
57
row = layout .row ()
62
58
box = row .box ()
63
- box .label (text = "Cursor " , icon = "ORIENTATION_CURSOR " )
64
- box .prop (self , "reset_cursor_on_exit " )
59
+ box .label (text = "Menu / Movement " , icon = "DRIVER_DISTANCE " )
60
+ box .prop (self , "time " )
65
61
box = row .box ()
66
62
box .label (text = "Node Editor" , icon = "NODETREE" )
67
63
box .prop (self , "enable_for_node_editors" )
68
64
69
65
row = layout .row ()
70
66
box = row .box ()
67
+ box .label (text = "Cursor" , icon = "ORIENTATION_CURSOR" )
68
+ box .prop (self , "reset_cursor_on_exit" )
69
+ box = row .box ()
71
70
box .label (text = "View" , icon = "VIEW3D" )
72
71
box .prop (self , "return_to_ortho_on_exit" )
72
+
73
+ # Keymap Customization
74
+ import rna_keymap_ui
75
+
76
+ wm = bpy .context .window_manager
77
+ active_kc = wm .keyconfigs .active
78
+
79
+ addon_keymaps = []
80
+
81
+ walk_km = active_kc .keymaps ["View3D Walk Modal" ]
82
+
83
+ for key in walk_km .keymap_items :
84
+ addon_keymaps .append ((walk_km , key ))
85
+
86
+ header , panel = layout .panel (idname = "keymap" , default_closed = True )
87
+ header .label (text = "Navigation Keymap" )
88
+
89
+ wm = bpy .context .window_manager
90
+ kc = wm .keyconfigs .user
91
+ old_km_name = ""
92
+ get_kmi_l = []
93
+ for km_add , kmi_add in addon_keymaps :
94
+ for km_con in kc .keymaps :
95
+ if km_add .name == km_con .name :
96
+ km = km_con
97
+ break
98
+
99
+ for kmi_con in km .keymap_items :
100
+ if kmi_add .idname == kmi_con .idname :
101
+ if kmi_add .name == kmi_con .name :
102
+ get_kmi_l .append ((km , kmi_con ))
103
+
104
+ get_kmi_l = sorted (set (get_kmi_l ), key = get_kmi_l .index )
105
+
106
+ if panel :
107
+ col = panel .column (align = True )
108
+ for km , kmi in get_kmi_l :
109
+ if not km .name == old_km_name :
110
+ col .label (text = str (km .name ), icon = "DOT" )
111
+ col .context_pointer_set ("keymap" , km )
112
+ rna_keymap_ui .draw_kmi ([], kc , km , kmi , col , 0 )
113
+ col .separator ()
114
+ old_km_name = km .name
0 commit comments