diff options
author | Max Hilbrunner <mhilbrunner@users.noreply.github.com> | 2018-07-05 00:44:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-05 00:44:23 +0200 |
commit | c41d322e110988fafedef343c6864bf300019b07 (patch) | |
tree | d5fe98f2ac8c125d771a327244723375e7b2eaa3 /editor/filesystem_dock.cpp | |
parent | c538f2ff8014a3a411c5c3dd66de4ead6d341035 (diff) | |
parent | 4cd69e91fc096668e2000a06f6fc9ee673516cec (diff) | |
download | redot-engine-c41d322e110988fafedef343c6864bf300019b07.tar.gz |
Merge pull request #19183 from Nallebeorn/rename-main-scene
Update resource file project settings after renaming/moving the files
Diffstat (limited to 'editor/filesystem_dock.cpp')
-rw-r--r-- | editor/filesystem_dock.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index f2a8ffdafc..eebf1b6ab8 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -930,6 +930,21 @@ void FileSystemDock::_update_dependencies_after_move(const Map<String, String> & } } +void FileSystemDock::_update_project_settings_after_move(const Map<String, String> &p_renames) const { + + // Find all project settings of type FILE and replace them if needed + const Map<StringName, PropertyInfo> prop_info = ProjectSettings::get_singleton()->get_custom_property_info(); + for (const Map<StringName, PropertyInfo>::Element *E = prop_info.front(); E; E = E->next()) { + if (E->get().hint == PROPERTY_HINT_FILE) { + String old_path = GLOBAL_GET(E->key()); + if (p_renames.has(old_path)) { + ProjectSettings::get_singleton()->set_setting(E->key(), p_renames[old_path]); + } + }; + } + ProjectSettings::get_singleton()->save(); +} + void FileSystemDock::_update_favorite_dirs_list_after_move(const Map<String, String> &p_renames) const { Vector<String> favorite_dirs = EditorSettings::get_singleton()->get_favorite_dirs(); @@ -1012,6 +1027,7 @@ void FileSystemDock::_rename_operation_confirm() { _try_move_item(to_rename, new_path, file_renames, folder_renames); _update_dependencies_after_move(file_renames); _update_resource_paths_after_move(file_renames); + _update_project_settings_after_move(file_renames); _update_favorite_dirs_list_after_move(folder_renames); //Rescan everything @@ -1104,6 +1120,7 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path, bool overw if (is_moved) { _update_dependencies_after_move(file_renames); _update_resource_paths_after_move(file_renames); + _update_project_settings_after_move(file_renames); _update_favorite_dirs_list_after_move(folder_renames); print_line("call rescan!"); |