From 0ae1241304660559f42aee1293c0e18286f46b1d Mon Sep 17 00:00:00 2001 From: kobewi Date: Thu, 14 Dec 2023 18:18:44 +0100 Subject: [PATCH] Properly select the newly duplicated file --- editor/filesystem_dock.cpp | 10 ++++++++-- editor/filesystem_dock.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 224f4c20417..1b966fced11 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1296,6 +1296,13 @@ void FileSystemDock::_fs_changed() { _update_file_list(true); } + if (!select_after_scan.is_empty()) { + _navigate_to_path(select_after_scan); + select_after_scan.clear(); + import_dock_needs_update = true; + _update_import_dock(); + } + set_process(false); } @@ -1475,8 +1482,6 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin EditorNode::get_singleton()->add_io_error(TTR("Cannot move a folder into itself.") + "\n" + old_path + "\n"); return; } - const_cast(this)->current_path = new_path; - Ref da = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (p_item.is_file) { @@ -1916,6 +1921,7 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path, bool p_cop for (int i = 0; i < to_move.size(); i++) { if (to_move[i].path != new_paths[i]) { _try_duplicate_item(to_move[i], new_paths[i]); + select_after_scan = new_paths[i]; is_copied = true; } } diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index f6a96fc6a56..f70afaa65e0 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -225,6 +225,7 @@ private: int history_max_size; String current_path; + String select_after_scan; bool initialized = false;