| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | import bpy | 
					
						
							|  |  |  | import lnx | 
					
						
							|  |  |  | from lnx import log, props_ui | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if lnx.is_reload(__name__): | 
					
						
							|  |  |  |     props_ui = lnx.reload_module(props_ui) | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  |     lnx.enable_reload(__name__) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-08 17:29:46 +00:00
										 |  |  | #lnx.keymaps = [] | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def register(): | 
					
						
							|  |  |  |     wm = bpy.context.window_manager | 
					
						
							| 
									
										
										
										
											2025-02-08 17:29:46 +00:00
										 |  |  |     keyconfig = wm.keyconfigs.user | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  |     # Keyconfigs are not available in background mode. If the keyconfig | 
					
						
							|  |  |  |     # was not found despite running _not_ in background mode, a warning | 
					
						
							|  |  |  |     # is printed | 
					
						
							| 
									
										
										
										
											2025-02-08 17:29:46 +00:00
										 |  |  |     if keyconfig is None: | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  |         if not bpy.app.background: | 
					
						
							|  |  |  |             log.warn("No keyconfig path found") | 
					
						
							|  |  |  |         return | 
					
						
							| 
									
										
										
										
											2025-02-08 17:29:46 +00:00
										 |  |  |     km = keyconfig.keymaps.get('Window') | 
					
						
							|  |  |  |     if km is None: | 
					
						
							|  |  |  |         log.warn("Window keymaps not available") | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |     lnx_start = any(kmi.idname == props_ui.LeenkxPlayButton.bl_idname for kmi in km.keymap_items) | 
					
						
							|  |  |  |     if not lnx_start: | 
					
						
							|  |  |  |         kmw = keyconfig.keymaps.new(name='Window', space_type='EMPTY', region_type="WINDOW") | 
					
						
							|  |  |  |         kmw.keymap_items.new(props_ui.LeenkxPlayButton.bl_idname, type='F5', value='PRESS') | 
					
						
							|  |  |  |         kmw.keymap_items.new('tlm.build_lightmaps', type='F6', value='PRESS') | 
					
						
							|  |  |  |         kmw.keymap_items.new('tlm.clean_lightmaps', type='F7', value='PRESS') | 
					
						
							|  |  |  |         kmn = keyconfig.keymaps.new(name='Node Editor', space_type='NODE_EDITOR') | 
					
						
							|  |  |  |         kmn.keymap_items.new('lnx.add_call_group_node', 'G', 'PRESS', shift=True) | 
					
						
							|  |  |  |         kmn.keymap_items.new('lnx.add_group_tree_from_selected', 'G', 'PRESS', ctrl=True) | 
					
						
							|  |  |  |         kmn.keymap_items.new('lnx.edit_group_tree', 'TAB', 'PRESS') | 
					
						
							|  |  |  |         kmn.keymap_items.new('node.tree_path_parent', 'TAB', 'PRESS', ctrl=True) | 
					
						
							|  |  |  |         kmn.keymap_items.new('lnx.ungroup_group_tree', 'G', 'PRESS', alt=True) | 
					
						
							|  |  |  |          | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | def unregister(): | 
					
						
							| 
									
										
										
										
											2025-02-08 17:29:46 +00:00
										 |  |  |     kmw = bpy.context.window_manager.keyconfigs.user.keymaps.get('Window') | 
					
						
							|  |  |  |     kmw.keymap_items.remove(kmw.keymap_items[props_ui.LeenkxPlayButton.bl_idname]) | 
					
						
							|  |  |  |     kmw.keymap_items.remove(kmw.keymap_items['tlm.build_lightmaps']) | 
					
						
							|  |  |  |     kmw.keymap_items.remove(kmw.keymap_items['tlm.clean_lightmaps']) | 
					
						
							|  |  |  |     kmn = bpy.context.window_manager.keyconfigs.user.keymaps.get('Node Editor') | 
					
						
							|  |  |  |     kmn.keymap_items.remove(kmn.keymap_items['lnx.add_call_group_node']) | 
					
						
							|  |  |  |     kmn.keymap_items.remove(kmn.keymap_items['lnx.add_group_tree_from_selected']) | 
					
						
							|  |  |  |     kmn.keymap_items.remove(kmn.keymap_items['lnx.edit_group_tree']) | 
					
						
							|  |  |  |     kmn.keymap_items.remove(kmn.keymap_items['node.tree_path_parent']) | 
					
						
							|  |  |  |     kmn.keymap_items.remove(kmn.keymap_items['lnx.ungroup_group_tree']) |