MusicTimer/addons/kanban_tasks/view/shortcuts.gd
2024-03-22 17:11:54 +01:00

121 lines
2.8 KiB
GDScript

@tool
extends Node
var delete := Shortcut.new()
var duplicate := Shortcut.new()
var create := Shortcut.new()
var rename := Shortcut.new()
var search := Shortcut.new()
var confirm := Shortcut.new()
var undo := Shortcut.new()
var redo := Shortcut.new()
var save := Shortcut.new()
var save_as := Shortcut.new()
## Returns whether a specific node should handle the shortcut.
static func should_handle_shortcut(node: Node) -> bool:
var focus_owner := node.get_viewport().gui_get_focus_owner()
return focus_owner and (node.is_ancestor_of(focus_owner) or focus_owner == node)
func _ready() -> void:
__setup_shortcuts()
func __setup_shortcuts() -> void:
# delete
var ev_delete := InputEventKey.new()
if OS.get_name() == "macOS":
ev_delete.keycode = KEY_BACKSPACE
ev_delete.meta_pressed = true
else:
ev_delete.keycode = KEY_DELETE
delete.events.append(ev_delete)
# duplicate
var ev_dupe := InputEventKey.new()
if OS.get_name() == "macOS":
ev_dupe.keycode = KEY_D
ev_dupe.meta_pressed = true
else:
ev_dupe.keycode = KEY_D
ev_dupe.ctrl_pressed = true
duplicate.events.append(ev_dupe)
# create
var ev_create := InputEventKey.new()
if OS.get_name() == "macOS":
ev_create.keycode = KEY_A
ev_create.meta_pressed = true
else:
ev_create.keycode = KEY_A
ev_create.ctrl_pressed = true
create.events.append(ev_create)
# rename
var ev_rename := InputEventKey.new()
ev_rename.keycode = KEY_F2
rename.events.append(ev_rename)
# search
var ev_search := InputEventKey.new()
if OS.get_name() == "macOS":
ev_search.keycode = KEY_F
ev_search.meta_pressed = true
else:
ev_search.keycode = KEY_F
ev_search.ctrl_pressed = true
search.events.append(ev_search)
# confirm
var ev_confirm := InputEventKey.new()
ev_confirm.keycode = KEY_ENTER
confirm.events.append(ev_confirm)
# undo
var ev_undo := InputEventKey.new()
if OS.get_name() == "macOS":
ev_undo.keycode = KEY_Z
ev_undo.meta_pressed = true
else:
ev_undo.keycode = KEY_Z
ev_undo.ctrl_pressed = true
undo.events.append(ev_undo)
# redo
var ev_redo := InputEventKey.new()
if OS.get_name() == "macOS":
ev_redo.keycode = KEY_Z
ev_redo.meta_pressed = true
ev_redo.shift_pressed = true
else:
ev_redo.keycode = KEY_Z
ev_redo.ctrl_pressed = true
ev_redo.shift_pressed = true
redo.events.append(ev_redo)
# save
var ev_save := InputEventKey.new()
if OS.get_name() == "macOS":
ev_save.keycode = KEY_S
ev_save.meta_pressed = true
else:
ev_save.keycode = KEY_S
ev_save.ctrl_pressed = true
save.events.append(ev_save)
# save as
var ev_save_as := InputEventKey.new()
if OS.get_name() == "macOS":
ev_save_as.keycode = KEY_S
ev_save_as.meta_pressed = true
ev_save_as.shift_pressed = true
else:
ev_save_as.keycode = KEY_S
ev_save_as.ctrl_pressed = true
ev_save_as.shift_pressed = true
save_as.events.append(ev_save_as)