From 9071e3eed233e2e6f12c42bdf45763be63d86053 Mon Sep 17 00:00:00 2001 From: Awbert <119314310+SweetyAngel@users.noreply.github.com> Date: Sat, 11 May 2024 13:22:29 +0300 Subject: [PATCH 1/3] Add ability to change disk (#20) --- Scripts/file_dialog.gd | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Scripts/file_dialog.gd b/Scripts/file_dialog.gd index e47fb9b..0e83e7d 100644 --- a/Scripts/file_dialog.gd +++ b/Scripts/file_dialog.gd @@ -25,6 +25,8 @@ var zoom: Vector2; var active: bool = false; signal ui_close +var change_disks_regex: RegEx = RegEx.new() + func change_dir(path) -> void: query = "" if !dir: dir = DirAccess.open(path) @@ -79,6 +81,23 @@ func _input(event: InputEvent) -> void: else: handled = false + change_disks_regex.compile("^Ctrl\\+Alt\\+[A-Z]{1}$") + if change_disks_regex.search(key_event.as_text()) != null: + var disk = key_event.as_text()[-1] + + if disk not in get_all_disks(): + editor.warn("[color=yellow]WARNING[/color]: There is no disk [b][color=#77f0e8]%s[/color][/b] connected.\nJust warning" % disk) + else: + editor.save_data({ + "current_file": '', + "current_dir": 'D://', + "settings": editor.get_property_value(LuaSingleton.settings), + "theme": LuaSingleton.theme + }) + editor.warn("[color=yellow]WARNING[/color]: You changed disk to [b][color=#77f0e8]%s[/color][/b].\nJust warning" % disk) + dir.change_dir("%s://" % disk) + change_dir("%s://" % disk) + erased = false if current_dirs_count <= search_limit and !handled: if key_event.keycode == KEY_BACKSPACE: @@ -230,6 +249,18 @@ func is_closer(old: Array, new: Array) -> bool: return false +func get_all_disks(): + var dir_access = DirAccess.open("res://") + var disk_list = [] + + for i in range(65, 91): + var disk = String.chr(i) + if dir_access.open(disk + ":/") != null: + disk_list.append(disk) + dir_access.change_dir("res://") + + return disk_list + # global_position is slightly off, so we customize it a little. func gp() -> Vector2: var vec = global_position; From ce24a9c20ec4d9d390fa3149c9089566e4b205d2 Mon Sep 17 00:00:00 2001 From: Awbert <119314310+SweetyAngel@users.noreply.github.com> Date: Sun, 12 May 2024 10:24:30 +0300 Subject: [PATCH 2/3] Minor fix --- Scripts/file_dialog.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Scripts/file_dialog.gd b/Scripts/file_dialog.gd index 0e83e7d..b692514 100644 --- a/Scripts/file_dialog.gd +++ b/Scripts/file_dialog.gd @@ -81,7 +81,7 @@ func _input(event: InputEvent) -> void: else: handled = false - change_disks_regex.compile("^Ctrl\\+Alt\\+[A-Z]{1}$") + change_disks_regex.compile("^Ctrl\\+Alt\\+[A-Za-z]$") if change_disks_regex.search(key_event.as_text()) != null: var disk = key_event.as_text()[-1] @@ -90,7 +90,7 @@ func _input(event: InputEvent) -> void: else: editor.save_data({ "current_file": '', - "current_dir": 'D://', + "current_dir": '%s://' % disk, "settings": editor.get_property_value(LuaSingleton.settings), "theme": LuaSingleton.theme }) From 1f8251ce99cb78b65460efc90bf89a1a45ee9aea Mon Sep 17 00:00:00 2001 From: Awbert <119314310+SweetyAngel@users.noreply.github.com> Date: Sun, 12 May 2024 16:57:42 +0300 Subject: [PATCH 3/3] Optimized disks search --- Scripts/file_dialog.gd | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Scripts/file_dialog.gd b/Scripts/file_dialog.gd index b692514..1c07176 100644 --- a/Scripts/file_dialog.gd +++ b/Scripts/file_dialog.gd @@ -250,16 +250,12 @@ func is_closer(old: Array, new: Array) -> bool: return false func get_all_disks(): - var dir_access = DirAccess.open("res://") - var disk_list = [] + var disks: Array = [] - for i in range(65, 91): - var disk = String.chr(i) - if dir_access.open(disk + ":/") != null: - disk_list.append(disk) - dir_access.change_dir("res://") + for i in range(DirAccess.get_drive_count()): + disks.append(DirAccess.get_drive_name(i)[0]) - return disk_list + return disks # global_position is slightly off, so we customize it a little. func gp() -> Vector2: