Repository: godotengine/godot
File: editor/docks/filesystem_dock.cpp (C++)

Code before:
			if (thumbnail.is_valid()) {
				files->set_item_icon(p_index, _apply_thumbnail_filter(thumbnail, p_path));
			}
		}
	}
}

void FileSystemDock::_tree_thumbnail_done(const String &p_path, const Ref<Texture2D> &p_preview, const Ref<Texture2D> &p_small_preview, int p_update_id, ObjectID p_item) {
	TreeItem *item = ObjectDB::get_instance<TreeItem>(p_item);
	if (item && tree_update_id == p_update_id && p_small_preview.is_valid()) {
		item->set_icon(0, _apply_thumbnail_filter(p_small_preview, p_path));
	}
}

Ref<CanvasTexture> FileSystemDock::_apply_thumbnail_filter(const Ref<Texture2D> p_thumbnail, const String &p_file_path) const {
	Ref<CanvasTexture> thumbnail_wrapped;
	thumbnail_wrapped.instantiate();
	thumbnail_wrapped->set_diffuse_texture(p_thumbnail);

	if (!p_file_path.is_empty()) {
		int index;
		EditorFileSystemDirectory *dir = EditorFileSystem::get_singleton()->find_file(p_file_path, &index);

		if (dir) {
			if (dir->get_file_import_is_valid(index)) {
				const String &file_type = dir->get_file_type(index);

				if (file_type == SNAME("CompressedTexture2D") || file_type == SNAME("Image")) {
					const String extension = p_file_path.get_extension();

					if (extension != "svg" && extension != "svgz") {
						thumbnail_wrapped->set_texture_filter(CanvasItem::TextureFilter::TEXTURE_FILTER_NEAREST_WITH_MIPMAPS);
					}
				}
			}
		}
	}

	return thumbnail_wrapped;
}

void FileSystemDock::_toggle_file_display() {
	_set_file_display(file_list_display_mode != FILE_LIST_DISPLAY_LIST);
	emit_signal(SNAME("display_mode_changed"));
}

void FileSystemDock::_set_file_display(bool p_active) {
	if (p_active) {
		file_list_display_mode = FILE_LIST_DISPLAY_LIST;
		button_file_list_display_mode->set_button_icon(get_editor_theme_icon(SNAME("FileThumbnail")));
		button_file_list_display_mode->set_tooltip_text(TTRC("View items as a grid of thumbnails."));

Review comment (suggestion):
```suggestion
				const StringName &file_type = dir->get_file_type(index);
```

Code after:
			if (thumbnail.is_valid()) {
				files->set_item_icon(p_index, _apply_thumbnail_filter(thumbnail, p_path));
			}
		}
	}
}

void FileSystemDock::_tree_thumbnail_done(const String &p_path, const Ref<Texture2D> &p_preview, const Ref<Texture2D> &p_small_preview, int p_update_id, ObjectID p_item) {
	TreeItem *item = ObjectDB::get_instance<TreeItem>(p_item);
	if (item && tree_update_id == p_update_id && p_small_preview.is_valid()) {
		item->set_icon(0, _apply_thumbnail_filter(p_small_preview, p_path));
	}
}

Ref<Texture2D> FileSystemDock::_apply_thumbnail_filter(const Ref<Texture2D> &p_thumbnail, const String &p_file_path) const {
	if (!p_file_path.is_empty()) {
		int index;
		EditorFileSystemDirectory *dir = EditorFileSystem::get_singleton()->find_file(p_file_path, &index);

		if (dir) {
			if (dir->get_file_import_is_valid(index)) {
				const StringName &file_type = dir->get_file_type(index);

				if (file_type == SNAME("CompressedTexture2D") || file_type == SNAME("Image")) {
					const String extension = p_file_path.get_extension();

					if (extension != "svg" && extension != "svgz") {
						Ref<CanvasTexture> thumbnail_wrapped;
						thumbnail_wrapped.instantiate();
						thumbnail_wrapped->set_diffuse_texture(p_thumbnail);
						thumbnail_wrapped->set_texture_filter(CanvasItem::TextureFilter::TEXTURE_FILTER_NEAREST_WITH_MIPMAPS);
						return thumbnail_wrapped;
					}
				}
			}
		}
	}

	return p_thumbnail;
}

void FileSystemDock::_toggle_file_display() {
	_set_file_display(file_list_display_mode != FILE_LIST_DISPLAY_LIST);
	emit_signal(SNAME("display_mode_changed"));
}

void FileSystemDock::_set_file_display(bool p_active) {
	if (p_active) {
		file_list_display_mode = FILE_LIST_DISPLAY_LIST;
		button_file_list_display_mode->set_button_icon(get_editor_theme_icon(SNAME("FileThumbnail")));
		button_file_list_display_mode->set_tooltip_text(TTRC("View items as a grid of thumbnails."));