You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			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()
 |