@@ -158,11 +158,14 @@ func _on_dir_expanded(item: TreeItem, refresh := false) -> void:
158158 return
159159
160160 var files : Array = _list_dir (path )
161- if files .size () > 0 :
161+ if files .size () > 0 or refresh :
162162 # Files are loaded, now remove the dummy file or old items.
163163 for child in item .get_children ():
164164 child .free ()
165165
166+ if files .is_empty () and refresh :
167+ _add_dummy .call_deferred (item )
168+
166169 for f in files :
167170 var full_path = path .rstrip ("/" ) + "/" + f .name
168171 _create_tree_item .call_deferred (item , f .name , full_path , f .is_dir )
@@ -386,15 +389,18 @@ func create_context_menu() -> void:
386389
387390func _on_context_menu_item_pressed (id : int ) -> void :
388391 var item = tree .get_selected ()
389- if not item : return
392+ var meta = item .get_metadata (0 ) if item else null
393+ if not meta : return
394+
390395 match id :
391396 ContextMenu .SAVE_AS :
392- var meta = item .get_metadata (0 )
393397 _show_file_dialog (meta .path , false , meta .is_dir )
394398 ContextMenu .UPLOAD :
395- var meta = item .get_metadata (0 )
396399 _show_file_dialog (meta .path , true )
397400 ContextMenu .DELETE :
398- var meta = item .get_metadata (0 )
399401 _show_delete_dialog (meta .path , meta .is_dir )
402+ ContextMenu .SYNCHRONIZE :
403+ _on_dir_expanded (item , true )
404+ ContextMenu .COPY_PATH :
405+ DisplayServer .clipboard_set (meta .path )
400406
0 commit comments