Browse Source

Remove FileSystem dock errors on unimported files

* Removes error shown when file is in 'keep' mode
* Display a warning when attempting to open the file
* Closes #47296

(cherry picked from commit 4706297356a73f47cc071d46964bc8ce3b97cbba)
Juan Linietsky 4 years ago
parent
commit
16c0147d75
1 changed files with 19 additions and 1 deletions
  1. 19 1
      editor/filesystem_dock.cpp

+ 19 - 1
editor/filesystem_dock.cpp

@@ -831,6 +831,21 @@ void FileSystemDock::_select_file(const String &p_path, bool p_select_in_favorit
 			fpath = fpath.substr(0, fpath.length() - 1);
 		}
 	} else if (fpath != "Favorites") {
+		if (FileAccess::exists(fpath + ".import")) {
+			Ref<ConfigFile> config;
+			config.instance();
+			Error err = config->load(fpath + ".import");
+			if (err == OK) {
+				if (config->has_section_key("remap", "importer")) {
+					String importer = config->get_value("remap", "importer");
+					if (importer == "keep") {
+						EditorNode::get_singleton()->show_warning(TTR("Importing has been disabled for this file, so it can't be opened for editing."));
+						return;
+					}
+				}
+			}
+		}
+
 		if (ResourceLoader::get_resource_type(fpath) == "PackedScene") {
 			editor->open_request(fpath);
 		} else {
@@ -2488,7 +2503,10 @@ void FileSystemDock::_update_import_dock() {
 			break;
 		}
 
-		String type = cf->get_value("remap", "type");
+		String type;
+		if (cf->has_section_key("remap", "type")) {
+			type = cf->get_value("remap", "type");
+		}
 		if (import_type == "") {
 			import_type = type;
 		} else if (import_type != type) {