void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const Ref<Texture> &p_image) { switch (p_type) { case EditorAssetLibrary::IMAGE_QUEUE_ICON: { item->call("set_image", p_type, p_index, p_image); icon = p_image; } break; case EditorAssetLibrary::IMAGE_QUEUE_THUMBNAIL: { for (int i = 0; i < preview_images.size(); i++) { if (preview_images[i].id == p_index) { preview_images[i].button->set_icon(p_image); break; } } //item->call("set_image",p_type,p_index,p_image); } break; case EditorAssetLibrary::IMAGE_QUEUE_SCREENSHOT: { for (int i = 0; i < preview_images.size(); i++) { if (preview_images[i].id == p_index) { preview_images[i].image = p_image; if (preview_images[i].button->is_pressed()) { _preview_click(p_index); } break; } } //item->call("set_image",p_type,p_index,p_image); } break; } }
void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const Ref<Texture> &p_image) { switch (p_type) { case EditorAssetLibrary::IMAGE_QUEUE_ICON: { item->call("set_image", p_type, p_index, p_image); icon = p_image; } break; case EditorAssetLibrary::IMAGE_QUEUE_THUMBNAIL: { for (int i = 0; i < preview_images.size(); i++) { if (preview_images[i].id == p_index) { if (preview_images[i].is_video) { Ref<Image> overlay = get_icon("PlayOverlay", "EditorIcons")->get_data(); Ref<Image> thumbnail = p_image->get_data(); Point2 overlay_pos = Point2((thumbnail->get_width() - overlay->get_width()) / 2, (thumbnail->get_height() - overlay->get_height()) / 2); thumbnail->lock(); thumbnail->blend_rect(overlay, overlay->get_used_rect(), overlay_pos); thumbnail->unlock(); Ref<ImageTexture> tex; tex.instance(); tex->create_from_image(thumbnail); preview_images[i].button->set_icon(tex); } else { preview_images[i].button->set_icon(p_image); } break; } } //item->call("set_image",p_type,p_index,p_image); } break; case EditorAssetLibrary::IMAGE_QUEUE_SCREENSHOT: { for (int i = 0; i < preview_images.size(); i++) { if (preview_images[i].id == p_index) { preview_images[i].image = p_image; if (preview_images[i].button->is_pressed()) { _preview_click(p_index); } break; } } //item->call("set_image",p_type,p_index,p_image); } break; } }
void EditorAssetLibraryItemDescription::add_preview(int p_id, bool p_video, const String &p_url) { Preview preview; preview.id = p_id; preview.video_link = p_url; preview.is_video = p_video; preview.button = memnew(Button); preview.button->set_flat(true); preview.button->set_icon(get_icon("ThumbnailWait", "EditorIcons")); preview.button->set_toggle_mode(true); preview.button->connect("pressed", this, "_preview_click", varray(p_id)); preview_hb->add_child(preview.button); if (!p_video) { preview.image = get_icon("ThumbnailWait", "EditorIcons"); } if (preview_images.size() == 0 && !p_video) { _preview_click(p_id); } preview_images.push_back(preview); }