X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fassetpopup.C;h=f4364542542808acfe1a6276a8f2c19ffd8b6cdd;hb=3b4b6f588c4f2643316afcbc486ca6a35c16a431;hp=5ff3a07ba01f15da1d5a8bb1de5caf4bf742fc26;hpb=0df48ad2d876409c5beeae2e21933a728ea76c33;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/assetpopup.C b/cinelerra-5.1/cinelerra/assetpopup.C index 5ff3a07b..f4364542 100644 --- a/cinelerra-5.1/cinelerra/assetpopup.C +++ b/cinelerra-5.1/cinelerra/assetpopup.C @@ -76,13 +76,16 @@ void AssetPopup::create_objects() BC_SubMenu *submenu; add_item(info = new AssetPopupInfo(mwindow, this)); add_item(format = new AWindowListFormat(mwindow, gui)); - add_item(new AssetPopupSort(mwindow, this)); + add_item(open_edl = new AssetPopupOpenEDL(mwindow, this)); + add_item(close_edl = new AssetPopupCloseEDL(mwindow, gui)); + add_item(to_clip = new AssetPopupToClip(mwindow, this)); + add_item(sort = new AssetPopupSort(mwindow, this)); add_item(index = new AssetPopupBuildIndex(mwindow, this)); add_item(view = new AssetPopupView(mwindow, this)); add_item(view_window = new AssetPopupViewWindow(mwindow, this)); add_item(open_mixer = new AssetPopupOpenMixer(mwindow, this)); add_item(insert_mixer = new AssetPopupInsertMixer(mwindow, this)); - add_item(new AssetPopupPaste(mwindow, this)); + add_item(paste = new AssetPopupPaste(mwindow, this)); add_item(menu_item = new BC_MenuItem(_("Match..."))); menu_item->add_submenu(submenu = new BC_SubMenu()); submenu->add_submenuitem(new AssetMatchSize(mwindow, this)); @@ -179,6 +182,71 @@ int AssetPopupInfo::handle_event() } +AssetPopupOpenEDL::AssetPopupOpenEDL(MWindow *mwindow, AssetPopup *popup) + : BC_MenuItem(_("Open EDL")) +{ + this->mwindow = mwindow; + this->popup = popup; +} +AssetPopupOpenEDL::~AssetPopupOpenEDL() +{ +} + +int AssetPopupOpenEDL::handle_event() +{ + int assets_total = mwindow->session->drag_assets->size(); + if( assets_total ) { + popup->unlock_window(); + Indexable *idxbl = mwindow->session->drag_assets->get(0); + EDL *edl = idxbl && !idxbl->is_asset ? (EDL *)idxbl : 0; + if( edl ) + mwindow->stack_push(edl); + else + eprintf(_("media is not EDL:\n%s"), idxbl->path); + popup->lock_window("AssetPopupOpenEDL::handle_event"); + } + return 1; +} + +AssetPopupCloseEDL::AssetPopupCloseEDL(MWindow *mwindow, AWindowGUI *gui) + : BC_MenuItem(_("Close EDL")) +{ + this->mwindow = mwindow; + this->gui = gui; +} +AssetPopupCloseEDL::~AssetPopupCloseEDL() +{ +} + +int AssetPopupCloseEDL::handle_event() +{ + gui->unlock_window(); + mwindow->gui->lock_window("AssetPopupCloseEDL::handle_event"); + mwindow->stack_pop(); + mwindow->gui->unlock_window(); + gui->lock_window("AssetPopupCloseEDL::handle_event"); + return 1; +} + + +AssetPopupToClip::AssetPopupToClip(MWindow *mwindow, AssetPopup *popup) + : BC_MenuItem(_("EDL to clip")) +{ + this->mwindow = mwindow; + this->popup = popup; +} + +AssetPopupToClip::~AssetPopupToClip() +{ +} + +int AssetPopupToClip::handle_event() +{ + mwindow->media_to_clip(); + return 1; +} + + AssetPopupBuildIndex::AssetPopupBuildIndex(MWindow *mwindow, AssetPopup *popup) : BC_MenuItem(_("Rebuild index")) { @@ -381,9 +449,8 @@ AssetPopupProjectRemove::~AssetPopupProjectRemove() int AssetPopupProjectRemove::handle_event() { popup->gui->unlock_window(); - mwindow->remove_assets_from_project(1, 1, - mwindow->session->drag_assets, - mwindow->session->drag_clips); + mwindow->remove_assets_from_project(1, 1, 1, + mwindow->session->drag_assets, 0); popup->gui->lock_window("AssetPopupProjectRemove::handle_event"); return 1; } @@ -427,6 +494,7 @@ void AssetListMenu::create_objects() { add_item(load_file = new AssetPopupLoadFile(mwindow, gui)); add_item(format = new AWindowListFormat(mwindow, gui)); + add_item(close_edl = new AssetPopupCloseEDL(mwindow, gui)); add_item(select_used = new AssetSelectUsed(mwindow, gui)); BC_SubMenu *submenu; select_used->add_submenu(submenu = new BC_SubMenu());