X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.C;h=9fe3c292fe40489b544be6128632707d3504b136;hb=827586949547b489a6a842729ad01a983f3eb051;hp=8718915fdfffd7df1784374d67f4129f65da17de;hpb=4a6b59824b2db18e6cc49b43a971923d5e5903ae;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index 8718915f..9fe3c292 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -148,9 +148,9 @@ void MainMenu::create_objects() editmenu->add_item(new Cut(mwindow)); editmenu->add_item(new Copy(mwindow)); editmenu->add_item(new Paste(mwindow)); - editmenu->add_item(new Clear(mwindow)); editmenu->add_item(new PasteSilence(mwindow)); - editmenu->add_item(new MuteSelection(mwindow)); + editmenu->add_item(clear_menu = new EditClearMenu(mwindow)); + clear_menu->create_objects(); editmenu->add_item(new TrimSelection(mwindow)); editmenu->add_item(new SelectAll(mwindow)); editmenu->add_item(new BC_MenuItem("-")); @@ -161,7 +161,6 @@ void MainMenu::create_objects() editmenu->add_item(new MenuTransitionLength(mwindow)); editmenu->add_item(new DetachTransitions(mwindow)); editmenu->add_item(new BC_MenuItem("-")); - editmenu->add_item(new ClearLabels(mwindow)); editmenu->add_item(new CutCommercials(mwindow)); editmenu->add_item(new PasteSubttl(mwindow)); @@ -203,7 +202,8 @@ void MainMenu::create_objects() trackmenu->add_item(new MoveTracksUp(mwindow)); trackmenu->add_item(new MoveTracksDown(mwindow)); trackmenu->add_item(new DeleteTracks(mwindow)); - trackmenu->add_item(new DeleteTrack(mwindow)); + trackmenu->add_item(new DeleteFirstTrack(mwindow)); + trackmenu->add_item(new DeleteLastTrack(mwindow)); trackmenu->add_item(new ConcatenateTracks(mwindow)); AppendTracks *append_tracks; trackmenu->add_item(append_tracks = new AppendTracks(mwindow)); @@ -955,6 +955,35 @@ int Paste::handle_event() return 1; } +EditClearSubMenu::EditClearSubMenu(BC_MenuItem *menu_item) + : BC_SubMenu() +{ + this->menu_item = menu_item; +} +EditClearSubMenu::~EditClearSubMenu() +{ +} + +EditClearMenu::EditClearMenu(MWindow *mwindow) + : BC_MenuItem(_("Clear...")) +{ + this->mwindow = mwindow; + this->clear_sub_menu = 0; +} +EditClearMenu::~EditClearMenu() +{ +} + +void EditClearMenu::create_objects() +{ + add_submenu(clear_sub_menu = new EditClearSubMenu(this)); + clear_sub_menu->add_item(new Clear(mwindow)); + clear_sub_menu->add_item(new MuteSelection(mwindow)); + clear_sub_menu->add_item(new ClearSelect(mwindow)); + clear_sub_menu->add_item(new ClearLabels(mwindow)); + clear_sub_menu->add_item(new ClearHardEdges(mwindow)); +}; + Clear::Clear(MWindow *mwindow) : BC_MenuItem(_("Clear"), _("Del"), DELETE) { @@ -998,6 +1027,17 @@ int SelectAll::handle_event() return 1; } +ClearHardEdges::ClearHardEdges(MWindow *mwindow) : BC_MenuItem(_("Clear Hard Edges")) +{ + this->mwindow = mwindow; +} + +int ClearHardEdges::handle_event() +{ + mwindow->clear_hard_edges(); + return 1; +} + ClearLabels::ClearLabels(MWindow *mwindow) : BC_MenuItem(_("Clear labels")) { this->mwindow = mwindow; @@ -1009,6 +1049,19 @@ int ClearLabels::handle_event() return 1; } +ClearSelect::ClearSelect(MWindow *mwindow) : BC_MenuItem(_("Clear Select"),"Ctrl-Shift-A",'A') +{ + set_ctrl(1); + set_shift(1); + this->mwindow = mwindow; +} + +int ClearSelect::handle_event() +{ + mwindow->clear_select(); + return 1; +} + CutCommercials::CutCommercials(MWindow *mwindow) : BC_MenuItem(_("Cut ads")) { this->mwindow = mwindow; @@ -1221,23 +1274,42 @@ int DeleteTracks::handle_event() return 1; } -DeleteTrack::DeleteTrack(MWindow *mwindow) +DeleteFirstTrack::DeleteFirstTrack(MWindow *mwindow) + : BC_MenuItem(_("Delete first track"), "Shift-D", 'D') +{ + set_shift(1); + this->mwindow = mwindow; +} + +int DeleteFirstTrack::handle_event() +{ + if( mwindow->session->current_operation == NO_OPERATION ) { + Track *track = mwindow->edl->tracks->first; + if( track ) mwindow->delete_track(track); + } + return 1; +} + +DeleteLastTrack::DeleteLastTrack(MWindow *mwindow) : BC_MenuItem(_("Delete last track"), "d", 'd') { this->mwindow = mwindow; } -int DeleteTrack::handle_event() +int DeleteLastTrack::handle_event() { - if( mwindow->session->current_operation == NO_OPERATION ) - mwindow->delete_track(); + if( mwindow->session->current_operation == NO_OPERATION ) { + Track *track = mwindow->edl->tracks->last; + if( track ) mwindow->delete_track(track); + } return 1; } MoveTracksUp::MoveTracksUp(MWindow *mwindow) : BC_MenuItem(_("Move tracks up"), _("Shift-Up"), UP) { - set_shift(); this->mwindow = mwindow; + this->mwindow = mwindow; + set_shift(); } int MoveTracksUp::handle_event()