|
@@ -201,9 +201,8 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref<
|
|
|
if (has_small_texture) {
|
|
|
ResourceSaver::save(cache_base + "_small.png", r_small_texture);
|
|
|
}
|
|
|
- Error err;
|
|
|
- FileAccess *f = FileAccess::open(cache_base + ".txt", FileAccess::WRITE, &err);
|
|
|
- ERR_FAIL_COND_MSG(err != OK, "Cannot create file '" + cache_base + ".txt'.");
|
|
|
+ FileAccess *f = FileAccess::open(cache_base + ".txt", FileAccess::WRITE);
|
|
|
+ ERR_FAIL_COND_MSG(!f, "Cannot create file '" + cache_base + ".txt'. Check user write permissions.");
|
|
|
f->store_line(itos(thumbnail_size));
|
|
|
f->store_line(itos(has_small_texture));
|
|
|
f->store_line(itos(FileAccess::get_modified_time(p_item.path)));
|
|
@@ -295,11 +294,17 @@ void EditorResourcePreview::_thread() {
|
|
|
//update modified time
|
|
|
|
|
|
f = FileAccess::open(file, FileAccess::WRITE);
|
|
|
- f->store_line(itos(thumbnail_size));
|
|
|
- f->store_line(itos(has_small_texture));
|
|
|
- f->store_line(itos(modtime));
|
|
|
- f->store_line(md5);
|
|
|
- memdelete(f);
|
|
|
+ if (!f) {
|
|
|
+ // Not returning as this would leave the thread hanging and would require
|
|
|
+ // some proper cleanup/disabling of resource preview generation.
|
|
|
+ ERR_PRINTS("Cannot create file '" + file + "'. Check user write permissions.");
|
|
|
+ } else {
|
|
|
+ f->store_line(itos(thumbnail_size));
|
|
|
+ f->store_line(itos(has_small_texture));
|
|
|
+ f->store_line(itos(modtime));
|
|
|
+ f->store_line(md5);
|
|
|
+ memdelete(f);
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
memdelete(f);
|