Bladeren bron

Merge pull request #84974 from KoBeWi/import_reimport

Reimport file when .import changes
Rémi Verschelde 1 jaar geleden
bovenliggende
commit
137b138be8
2 gewijzigde bestanden met toevoegingen van 16 en 1 verwijderingen
  1. 15 1
      editor/editor_file_system.cpp
  2. 1 0
      editor/editor_file_system.h

+ 15 - 1
editor/editor_file_system.cpp

@@ -150,6 +150,11 @@ uint64_t EditorFileSystemDirectory::get_file_modified_time(int p_idx) const {
 	return files[p_idx]->modified_time;
 }
 
+uint64_t EditorFileSystemDirectory::get_file_import_modified_time(int p_idx) const {
+	ERR_FAIL_INDEX_V(p_idx, files.size(), 0);
+	return files[p_idx]->import_modified_time;
+}
+
 String EditorFileSystemDirectory::get_file_script_class_name(int p_idx) const {
 	return files[p_idx]->script_class_name;
 }
@@ -720,7 +725,16 @@ bool EditorFileSystem::_update_scan_actions() {
 				int idx = ia.dir->find_file_index(ia.file);
 				ERR_CONTINUE(idx == -1);
 				String full_path = ia.dir->get_file_path(idx);
-				if (_test_for_reimport(full_path, false)) {
+
+				bool need_reimport = _test_for_reimport(full_path, false);
+				if (!need_reimport && FileAccess::exists(full_path + ".import")) {
+					uint64_t import_mt = ia.dir->get_file_import_modified_time(idx);
+					if (import_mt != FileAccess::get_modified_time(full_path + ".import")) {
+						need_reimport = true;
+					}
+				}
+
+				if (need_reimport) {
 					//must reimport
 					reimports.push_back(full_path);
 					Vector<String> dependencies = _get_dependencies(full_path);

+ 1 - 0
editor/editor_file_system.h

@@ -89,6 +89,7 @@ public:
 	Vector<String> get_file_deps(int p_idx) const;
 	bool get_file_import_is_valid(int p_idx) const;
 	uint64_t get_file_modified_time(int p_idx) const;
+	uint64_t get_file_import_modified_time(int p_idx) const;
 	String get_file_script_class_name(int p_idx) const; //used for scripts
 	String get_file_script_class_extends(int p_idx) const; //used for scripts
 	String get_file_script_class_icon_path(int p_idx) const; //used for scripts