74 C,
"asset_catalog_path");
89 bool add_separator =
true;
94 add_separator =
false;
96 PointerRNA op_ptr = layout->
op(
"SEQUENCER_OT_add_scene_strip_from_scene_asset",
107 add_separator =
false;
149 "SEQUENCER_OT_scene_strip_add_new",
IFACE_(
"Empty Scene"), ICON_ADD);
158 const bool show_assets = !(
tree.catalogs.is_empty() && loading_finished &&
159 tree.unassigned_assets.is_empty());
163 layout->
label(
IFACE_(
"Assets"), ICON_ASSET_MANAGER);
166 if (!loading_finished) {
167 layout->
label(
IFACE_(
"Loading Asset Libraries"), ICON_INFO);
174 if (!
tree.unassigned_assets.is_empty()) {
175 layout->
menu_contents(
"SEQUENCER_MT_scene_add_unassigned_assets");
179 layout->
label(
IFACE_(
"No scene assets."), ICON_NONE);
187 if (scenes_len > 10) {
188 layout->
op(
"SEQUENCER_OT_scene_strip_add",
195 layout->
label(
IFACE_(
"Scene Strip"), ICON_SCENE_DATA);
199 if (scene == active_scene) {
202 if (scene->id.asset_data) {
205 PointerRNA op_ptr = layout->
op(
"SEQUENCER_OT_scene_strip_add",
218 STRNCPY(type.
idname,
"SEQUENCER_MT_scene_add_catalog_assets");
229 STRNCPY(type.
idname,
"SEQUENCER_MT_scene_add_unassigned_assets");
235 "Scene assets not assigned to a catalog.\n"
236 "Catalogs can be assigned in the Asset Browser");
Main runtime representation of an asset.
SpaceSeq * CTX_wm_space_seq(const bContext *C)
Main * CTX_data_main(const bContext *C)
Scene * CTX_data_sequencer_scene(const bContext *C)
std::optional< blender::StringRefNull > CTX_data_string_get(const bContext *C, const char *member)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
int BLI_listbase_count(const ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * STRNCPY(char(&dst)[N], const char *src)
@ SEQ_VIEW_SEQUENCE_PREVIEW
constexpr bool is_empty() const
void foreach_child(ItemIterFn callback) const
bool has_children() const
AssetLibraryReference all_library_reference()
void all_library_reload_catalogs_if_dirty()
bool is_loaded(const AssetLibraryReference *library_reference)
void asset_reading_region_listen_fn(const wmRegionListenerParams *params)
AssetItemTree build_filtered_all_catalog_tree(const AssetLibraryReference &library_ref, const bContext &C, const AssetFilterSettings &filter_settings, FunctionRef< bool(const AssetMetaData &)> meta_data_filter={})
void draw_menu_for_catalog(const asset_system::AssetCatalogTreeItem &item, const StringRefNull menu_name, uiLayout &layout)
void operator_asset_reference_props_set(const asset_system::AssetRepresentation &asset, PointerRNA &ptr)
static void sequencer_add_scene_draw(const bContext *C, Menu *menu)
static bool all_loading_finished()
static bool sequencer_add_menu_poll(const bContext *C, MenuType *)
MenuType add_scene_menu_type()
static void sequencer_add_catalog_assets_draw(const bContext *C, Menu *menu)
MenuType add_unassigned_assets_menu_type()
static void sequencer_add_unassigned_assets_draw(const bContext *C, Menu *menu)
MenuType add_catalog_assets_menu_type()
static asset::AssetItemTree build_catalog_tree(const bContext &C)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
SpaceSeq_Runtime * runtime
std::shared_ptr< asset::AssetItemTree > assets_for_menu
void operator_context_set(blender::wm::OpCallContext opcontext)
void label(blender::StringRef name, int icon)
void separator(float factor=1.0f, LayoutSeparatorType type=LayoutSeparatorType::Auto)
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)
void menu_contents(blender::StringRef menuname)