X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Feditpopup.C;h=4150beee73da49c1aeb2573106e7b616e4db86f2;hp=9df236a73f3e283ffea2bc49775e44168e2d497c;hb=HEAD;hpb=e719f1246ff9bb42b055306396c9160640a88884 diff --git a/cinelerra-5.1/cinelerra/editpopup.C b/cinelerra-5.1/cinelerra/editpopup.C index 9df236a7..865f7781 100644 --- a/cinelerra-5.1/cinelerra/editpopup.C +++ b/cinelerra-5.1/cinelerra/editpopup.C @@ -67,6 +67,8 @@ void EditPopup::create_objects() { add_item(open_edl = new EditPopupOpenEDL(mwindow, this)); add_item(new EditPopupClearSelect(mwindow, this)); + add_item(new EditPopupSelectEdits(mwindow, this)); + add_item(new EditPopupDeselectEdits(mwindow, this)); add_item(new EditPopupCopy(mwindow, this)); add_item(new EditPopupCut(mwindow, this)); add_item(new EditPopupMute(mwindow, this)); @@ -79,6 +81,7 @@ void EditPopup::create_objects() add_item(new EditPopupOverwritePlugins(mwindow, this)); add_item(new EditCollectEffects(mwindow, this)); add_item(new EditPasteEffects(mwindow, this)); + add_item(new EditPopupTimecode(mwindow, this)); } int EditPopup::activate_menu(Track *track, Edit *edit, @@ -158,6 +161,34 @@ int EditPopupClearSelect::handle_event() return 1; } +EditPopupSelectEdits::EditPopupSelectEdits(MWindow *mwindow, EditPopup *popup) + : BC_MenuItem(_("Select Edits"),_("Ctrl-Alt-'"),'\'') +{ + this->mwindow = mwindow; + this->popup = popup; + set_ctrl(1); + set_alt(1); +} + +int EditPopupSelectEdits::handle_event() +{ + mwindow->select_edits(1); + return 1; +} + +EditPopupDeselectEdits::EditPopupDeselectEdits(MWindow *mwindow, EditPopup *popup) + : BC_MenuItem(_("Deselect Edits")) +{ + this->mwindow = mwindow; + this->popup = popup; +} + +int EditPopupDeselectEdits::handle_event() +{ + mwindow->select_edits(0); + return 1; +} + EditPopupCopy::EditPopupCopy(MWindow *mwindow, EditPopup *popup) : BC_MenuItem(_("Copy"),_("Ctrl-c"),'c') { @@ -202,11 +233,12 @@ int EditPopupCut::handle_event() } EditPopupCutPack::EditPopupCutPack(MWindow *mwindow, EditPopup *popup) - : BC_MenuItem(_("Cut pack"),_("Ctrl-z"),'z') + : BC_MenuItem(_("Cut pack"),_("Ctrl-Alt-z"),'z') { this->mwindow = mwindow; this->popup = popup; set_ctrl(1); + set_alt(); } int EditPopupCutPack::handle_event() @@ -309,7 +341,7 @@ int EditPopupOverwritePlugins::handle_event() EditCollectEffects::EditCollectEffects(MWindow *mwindow, EditPopup *popup) - : BC_MenuItem(_("Collect Effects"), "Ctrl-e", 'e') + : BC_MenuItem(_("Collect Effects")) { this->mwindow = mwindow; this->popup = popup; @@ -324,7 +356,7 @@ int EditCollectEffects::handle_event() } EditPasteEffects::EditPasteEffects(MWindow *mwindow, EditPopup *popup) - : BC_MenuItem(_("Paste Effects"), "Ctrl-Shift-E", 'E') + : BC_MenuItem(_("Paste Effects")) { this->mwindow = mwindow; this->popup = popup; @@ -339,4 +371,33 @@ int EditPasteEffects::handle_event() return 1; } +EditPopupTimecode::EditPopupTimecode(MWindow *mwindow, EditPopup *popup) + : BC_MenuItem(_("Timecode"),_("Ctrl-!"),'!') +{ + this->mwindow = mwindow; + this->popup = popup; + set_ctrl(1); + set_shift(1); +} + +int EditPopupTimecode::handle_event() +{ + if( mwindow->session->current_operation != NO_OPERATION ) return 1; + Edit *edit = popup->edit; + if( !edit || !edit->asset ) return 1; + Asset *asset = edit->asset; + double timecode = asset->timecode != -2 ? asset->timecode : + FFMPEG::get_timecode(asset->path, + edit->track->data_type, edit->channel, + mwindow->edl->session->frame_rate); + asset->timecode = timecode; + if( timecode >= 0 ) { + int64_t pos = edit->startproject + edit->startsource; + double position = edit->track->from_units(pos); + mwindow->set_timecode_offset(timecode - position); + } + else + mwindow->set_timecode_offset(0); + return 1; +}