New Quick Open Dialog

- Updated list view with thumbnails, and separate file name.
  - Added a grid view which has larger icons.
  - Added toggle to filter out files from addons.
  - Store history for each opened resource type.

New Editor settings for Quick Open:
  - Startup display mode (grid or list):
      - Determined by the requested resource type.
      - Whatever was last used.
  - Toggle to filter out files from addons (for persistence).

Notes
  - The dialog is now created once in EditorNode, and globally available for other components.
  - A fixed number of result scenes are instantiated, and reused based on query.
  - Drop support for multiselect.
This commit is contained in:
Stijn Hinlopen
2023-12-02 21:33:38 +01:00
parent f4af8201ba
commit 06791e1acd
18 changed files with 1269 additions and 463 deletions

View File

@ -414,6 +414,24 @@ void EditorResourcePreview::_update_thumbnail_sizes() {
}
}
EditorResourcePreview::PreviewItem EditorResourcePreview::get_resource_preview_if_available(const String &p_path) {
PreviewItem item;
{
MutexLock lock(preview_mutex);
HashMap<String, EditorResourcePreview::Item>::Iterator I = cache.find(p_path);
if (!I) {
return item;
}
EditorResourcePreview::Item &cached_item = I->value;
item.preview = cached_item.preview;
item.small_preview = cached_item.small_preview;
}
preview_sem.post();
return item;
}
void EditorResourcePreview::queue_edited_resource_preview(const Ref<Resource> &p_res, Object *p_receiver, const StringName &p_receiver_func, const Variant &p_userdata) {
ERR_FAIL_NULL(p_receiver);
ERR_FAIL_COND(!p_res.is_valid());