mirror of
https://github.com/Relintai/godot-resources-as-sheets-plugin.git
synced 2025-04-25 16:54:59 +02:00
55 lines
1.0 KiB
GDScript
55 lines
1.0 KiB
GDScript
@tool
|
|
extends OptionButton
|
|
|
|
@export @onready var editor_view := $"../../../../.."
|
|
|
|
var recent_paths := []
|
|
|
|
|
|
func _ready():
|
|
item_selected.connect(_on_item_selected)
|
|
|
|
|
|
func load_paths(paths):
|
|
clear()
|
|
for x in paths:
|
|
add_path_to_recent(x, true)
|
|
|
|
selected = 0
|
|
|
|
|
|
func add_path_to_recent(path : String, is_loading : bool = false):
|
|
if path in recent_paths: return
|
|
|
|
var idx_in_array := recent_paths.find(path)
|
|
if idx_in_array != -1:
|
|
remove_item(idx_in_array)
|
|
recent_paths.remove_at(idx_in_array)
|
|
|
|
recent_paths.append(path)
|
|
add_item(path)
|
|
select(get_item_count() - 1)
|
|
|
|
if !is_loading:
|
|
editor_view.save_data()
|
|
|
|
|
|
func remove_selected_path_from_recent():
|
|
if get_item_count() == 0:
|
|
return
|
|
|
|
var idx_in_array = selected
|
|
recent_paths.remove_at(idx_in_array)
|
|
remove_item(idx_in_array)
|
|
|
|
if get_item_count() != 0:
|
|
select(0)
|
|
editor_view.display_folder(recent_paths[0])
|
|
editor_view.save_data()
|
|
|
|
|
|
func _on_item_selected(index : int):
|
|
editor_view.current_path = recent_paths[index]
|
|
editor_view.node_folder_path.text = recent_paths[index]
|
|
editor_view.refresh()
|