Fix FileSystem dock won't show any file folders
This commit is contained in:
parent
5241d30bfa
commit
72856d633a
10 changed files with 358 additions and 214 deletions
|
|
@ -59,11 +59,9 @@ bool FileAccess::exists(const String &p_name) {
|
|||
return true;
|
||||
}
|
||||
|
||||
Ref<FileAccess> f = open(p_name, READ);
|
||||
if (f.is_null()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
// Using file_exists because it's faster then trying to open the file.
|
||||
Ref<FileAccess> ret = create_for_path(p_name);
|
||||
return ret->file_exists(p_name);
|
||||
}
|
||||
|
||||
void FileAccess::_set_access_type(AccessType p_access) {
|
||||
|
|
|
|||
|
|
@ -362,6 +362,24 @@ Variant ResourceFormatImporter::get_resource_metadata(const String &p_path) cons
|
|||
|
||||
return pat.metadata;
|
||||
}
|
||||
|
||||
Error ResourceFormatImporter::get_resource_import_info(const String &p_path, StringName &r_type, ResourceUID::ID &r_uid, String &r_import_group_file) const {
|
||||
PathAndType pat;
|
||||
Error err = _get_path_and_type(p_path, pat);
|
||||
|
||||
if (err == OK) {
|
||||
r_type = pat.type;
|
||||
r_uid = pat.uid;
|
||||
r_import_group_file = pat.group_file;
|
||||
} else {
|
||||
r_type = "";
|
||||
r_uid = ResourceUID::INVALID_ID;
|
||||
r_import_group_file = "";
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
void ResourceFormatImporter::get_classes_used(const String &p_path, HashSet<StringName> *r_classes) {
|
||||
PathAndType pat;
|
||||
Error err = _get_path_and_type(p_path, pat);
|
||||
|
|
|
|||
|
|
@ -93,6 +93,9 @@ public:
|
|||
String get_import_settings_hash() const;
|
||||
|
||||
String get_import_base_path(const String &p_for_file) const;
|
||||
|
||||
Error get_resource_import_info(const String &p_path, StringName &r_type, ResourceUID::ID &r_uid, String &r_import_group_file) const;
|
||||
|
||||
ResourceFormatImporter();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -957,36 +957,39 @@ String ResourceLoader::_path_remap(const String &p_path, bool *r_translation_rem
|
|||
new_path = path_remaps[new_path];
|
||||
} else {
|
||||
// Try file remap.
|
||||
Error err;
|
||||
Ref<FileAccess> f = FileAccess::open(new_path + ".remap", FileAccess::READ, &err);
|
||||
if (f.is_valid()) {
|
||||
VariantParser::StreamFile stream;
|
||||
stream.f = f;
|
||||
// Usually, there's no remap file and FileAccess::exists() is faster then FileAccess::open().
|
||||
if (FileAccess::exists(new_path + ".remap")) {
|
||||
Error err;
|
||||
Ref<FileAccess> f = FileAccess::open(new_path + ".remap", FileAccess::READ, &err);
|
||||
if (f.is_valid()) {
|
||||
VariantParser::StreamFile stream;
|
||||
stream.f = f;
|
||||
|
||||
String assign;
|
||||
Variant value;
|
||||
VariantParser::Tag next_tag;
|
||||
String assign;
|
||||
Variant value;
|
||||
VariantParser::Tag next_tag;
|
||||
|
||||
int lines = 0;
|
||||
String error_text;
|
||||
while (true) {
|
||||
assign = Variant();
|
||||
next_tag.fields.clear();
|
||||
next_tag.name = String();
|
||||
int lines = 0;
|
||||
String error_text;
|
||||
while (true) {
|
||||
assign = Variant();
|
||||
next_tag.fields.clear();
|
||||
next_tag.name = String();
|
||||
|
||||
err = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, nullptr, true);
|
||||
if (err == ERR_FILE_EOF) {
|
||||
break;
|
||||
} else if (err != OK) {
|
||||
ERR_PRINT("Parse error: " + p_path + ".remap:" + itos(lines) + " error: " + error_text + ".");
|
||||
break;
|
||||
}
|
||||
err = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, nullptr, true);
|
||||
if (err == ERR_FILE_EOF) {
|
||||
break;
|
||||
} else if (err != OK) {
|
||||
ERR_PRINT("Parse error: " + p_path + ".remap:" + itos(lines) + " error: " + error_text + ".");
|
||||
break;
|
||||
}
|
||||
|
||||
if (assign == "path") {
|
||||
new_path = value;
|
||||
break;
|
||||
} else if (next_tag.name != "remap") {
|
||||
break;
|
||||
if (assign == "path") {
|
||||
new_path = value;
|
||||
break;
|
||||
} else if (next_tag.name != "remap") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue