mirror of
https://github.com/lihop/godot-xterm.git
synced 2024-11-22 17:50:25 +01:00
b5d3c6c9a5
Copied from Gut repo godot_4 branch commit: ba19a4c1b6f88160641a67a39729144046c6391f
82 lines
2.4 KiB
GDScript
82 lines
2.4 KiB
GDScript
@tool
|
|
extends Window
|
|
|
|
@onready var _ctrls = {
|
|
run_all = $Layout/CRunAll/ShortcutButton,
|
|
run_current_script = $Layout/CRunCurrentScript/ShortcutButton,
|
|
run_current_inner = $Layout/CRunCurrentInner/ShortcutButton,
|
|
run_current_test = $Layout/CRunCurrentTest/ShortcutButton,
|
|
panel_button = $Layout/CPanelButton/ShortcutButton,
|
|
}
|
|
|
|
func _ready():
|
|
for key in _ctrls:
|
|
var sc_button = _ctrls[key]
|
|
sc_button.connect('start_edit', _on_edit_start.bind(sc_button))
|
|
sc_button.connect('end_edit', _on_edit_end)
|
|
|
|
|
|
# show dialog when running scene from editor.
|
|
if(get_parent() == get_tree().root):
|
|
popup_centered()
|
|
|
|
# ------------
|
|
# Events
|
|
# ------------
|
|
func _on_Hide_pressed():
|
|
hide()
|
|
|
|
func _on_edit_start(which):
|
|
for key in _ctrls:
|
|
var sc_button = _ctrls[key]
|
|
if(sc_button != which):
|
|
sc_button.disable_set(true)
|
|
sc_button.disable_clear(true)
|
|
|
|
func _on_edit_end():
|
|
for key in _ctrls:
|
|
var sc_button = _ctrls[key]
|
|
sc_button.disable_set(false)
|
|
sc_button.disable_clear(false)
|
|
|
|
# ------------
|
|
# Public
|
|
# ------------
|
|
func get_run_all():
|
|
return _ctrls.run_all.get_shortcut()
|
|
|
|
func get_run_current_script():
|
|
return _ctrls.run_current_script.get_shortcut()
|
|
|
|
func get_run_current_inner():
|
|
return _ctrls.run_current_inner.get_shortcut()
|
|
|
|
func get_run_current_test():
|
|
return _ctrls.run_current_test.get_shortcut()
|
|
|
|
func get_panel_button():
|
|
return _ctrls.panel_button.get_shortcut()
|
|
|
|
|
|
func save_shortcuts(path):
|
|
var f = ConfigFile.new()
|
|
|
|
f.set_value('main', 'run_all', _ctrls.run_all.get_shortcut())
|
|
f.set_value('main', 'run_current_script', _ctrls.run_current_script.get_shortcut())
|
|
f.set_value('main', 'run_current_inner', _ctrls.run_current_inner.get_shortcut())
|
|
f.set_value('main', 'run_current_test', _ctrls.run_current_test.get_shortcut())
|
|
f.set_value('main', 'panel_button', _ctrls.panel_button.get_shortcut())
|
|
|
|
f.save(path)
|
|
|
|
|
|
func load_shortcuts(path):
|
|
var emptyShortcut = Shortcut.new()
|
|
var f = ConfigFile.new()
|
|
f.load(path)
|
|
|
|
_ctrls.run_all.set_shortcut(f.get_value('main', 'run_all', emptyShortcut))
|
|
_ctrls.run_current_script.set_shortcut(f.get_value('main', 'run_current_script', emptyShortcut))
|
|
_ctrls.run_current_inner.set_shortcut(f.get_value('main', 'run_current_inner', emptyShortcut))
|
|
_ctrls.run_current_test.set_shortcut(f.get_value('main', 'run_current_test', emptyShortcut))
|
|
_ctrls.panel_button.set_shortcut(f.get_value('main', 'panel_button', emptyShortcut))
|