X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fassetpopup.C;h=d8142f02606b69a93f8c47de21974fdae712b72a;hb=5d8a7826b0f80f00622e46baf75453995a76e343;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..d8142f02 100644 --- a/cinelerra-5.1/cinelerra/assetpopup.C +++ b/cinelerra-5.1/cinelerra/assetpopup.C @@ -76,13 +76,15 @@ 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(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 +181,51 @@ 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; +} + + +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 +428,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; }