From d94bbdeebde4f16a77c388f9f28114b945db41d9 Mon Sep 17 00:00:00 2001 From: Good Guy Date: Fri, 16 Feb 2018 11:41:31 -0700 Subject: [PATCH] update shortcuts doc, period/comma alt shortcuts, popup deactivate fix, click2play enable --- cinelerra-5.1/cinelerra/cwindowgui.C | 48 +++++- cinelerra-5.1/cinelerra/cwindowgui.h | 8 +- cinelerra-5.1/cinelerra/editpanel.C | 126 ++++++++++------ cinelerra-5.1/cinelerra/editpanel.h | 8 +- cinelerra-5.1/cinelerra/mwindow.h | 10 +- cinelerra-5.1/cinelerra/mwindowedit.C | 8 +- cinelerra-5.1/cinelerra/mwindowgui.C | 14 ++ cinelerra-5.1/cinelerra/new.C | 2 +- cinelerra-5.1/doc/shortcuts.html | 204 +++++++++++++++++++++++++- cinelerra-5.1/guicast/bcpopupmenu.C | 2 +- 10 files changed, 355 insertions(+), 75 deletions(-) diff --git a/cinelerra-5.1/cinelerra/cwindowgui.C b/cinelerra-5.1/cinelerra/cwindowgui.C index 11114bc9..b4b8008d 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.C +++ b/cinelerra-5.1/cinelerra/cwindowgui.C @@ -503,32 +503,58 @@ int CWindowGUI::keypress_event() int shift_down = this->shift_down(); unlock_window(); stop_transport(0); - mwindow->gui->lock_window("CWindowGUI::keypress_event 2"); + mwindow->gui->lock_window("CWindowGUI::keypress_event 5"); if( alt_down ) mwindow->prev_edit_handle(shift_down); else mwindow->move_left(); mwindow->gui->unlock_window(); - lock_window("CWindowGUI::keypress_event 2"); + lock_window("CWindowGUI::keypress_event 6"); result = 1; } break; + + case ',': + if( !ctrl_down() && !alt_down() ) { + unlock_window(); + stop_transport(0); + mwindow->gui->lock_window("CWindowGUI::keypress_event 7"); + mwindow->move_left(); + mwindow->gui->unlock_window(); + lock_window("CWindowGUI::keypress_event 8"); + result = 1; + } + break; + case RIGHT: if( !ctrl_down() ) { int alt_down = this->alt_down(); int shift_down = this->shift_down(); unlock_window(); stop_transport(0); - mwindow->gui->lock_window("CWindowGUI::keypress_event 2"); + mwindow->gui->lock_window("CWindowGUI::keypress_event 8"); if( alt_down ) mwindow->next_edit_handle(shift_down); else mwindow->move_right(); mwindow->gui->unlock_window(); - lock_window("CWindowGUI::keypress_event 2"); + lock_window("CWindowGUI::keypress_event 9"); + result = 1; + } + break; + + case '.': + if( !ctrl_down() && !alt_down() ) { + unlock_window(); + stop_transport(0); + mwindow->gui->lock_window("CWindowGUI::keypress_event 10"); + mwindow->move_right(); + mwindow->gui->unlock_window(); + lock_window("CWindowGUI::keypress_event 11"); result = 1; } break; + } if(!result) result = transport->keypress_event(); @@ -726,10 +752,16 @@ CWrapper(set_inpoint) CWrapper(set_outpoint) CWrapper(unset_inoutpoint) CWrapper(toggle_label) -CWrapper(prev_label) -CWrapper(next_label) -CWrapper(prev_edit) -CWrapper(next_edit) + +#define CWrapper_cut(fn) void CWindowEditing::fn(int cut) { \ + mwindow->gui->lock_window("CWrapper::" #fn); \ + EditPanel::fn(cut); \ + mwindow->gui->unlock_window(); \ +} +CWrapper_cut(prev_label) +CWrapper_cut(next_label) +CWrapper_cut(prev_edit) +CWrapper_cut(next_edit) void CWindowEditing::to_clip() { diff --git a/cinelerra-5.1/cinelerra/cwindowgui.h b/cinelerra-5.1/cinelerra/cwindowgui.h index 8da0b3b0..8753fa43 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.h +++ b/cinelerra-5.1/cinelerra/cwindowgui.h @@ -170,10 +170,10 @@ public: void unset_inoutpoint(); void to_clip(); void toggle_label(); - void prev_label(); - void next_label(); - void prev_edit(); - void next_edit(); + void prev_label(int cut); + void next_label(int cut); + void prev_edit(int cut); + void next_edit(int cut); MWindow *mwindow; CWindow *cwindow; diff --git a/cinelerra-5.1/cinelerra/editpanel.C b/cinelerra-5.1/cinelerra/editpanel.C index 37929141..60e154b2 100644 --- a/cinelerra-5.1/cinelerra/editpanel.C +++ b/cinelerra-5.1/cinelerra/editpanel.C @@ -343,36 +343,34 @@ void EditPanel::toggle_label() mwindow->toggle_label(is_mwindow); } -void EditPanel::prev_label() +void EditPanel::prev_label(int cut) { int shift_down = subwindow->shift_down(); - int snap = subwindow->ctrl_down() && subwindow->alt_down(); int have_mwindow_lock = mwindow->gui->get_window_lock(); if( have_mwindow_lock ) mwindow->gui->unlock_window(); stop_transport("EditPanel::prev_label 1"); mwindow->gui->lock_window("EditPanel::prev_label 2"); - if( snap ) - mwindow->snap_left_label(); + if( cut ) + mwindow->cut_left_label(); else mwindow->prev_label(shift_down); if( !have_mwindow_lock ) mwindow->gui->unlock_window(); } -void EditPanel::next_label() +void EditPanel::next_label(int cut) { int shift_down = subwindow->shift_down(); - int snap = subwindow->ctrl_down() && subwindow->alt_down(); int have_mwindow_lock = mwindow->gui->get_window_lock(); if( have_mwindow_lock ) mwindow->gui->unlock_window(); stop_transport("EditPanel::next_label 1"); mwindow->gui->lock_window("EditPanel::next_label 2"); - if( snap ) - mwindow->snap_right_label(); + if( cut ) + mwindow->cut_right_label(); else mwindow->next_label(shift_down); if( !have_mwindow_lock ) @@ -381,10 +379,9 @@ void EditPanel::next_label() -void EditPanel::prev_edit() +void EditPanel::prev_edit(int cut) { int shift_down = subwindow->shift_down(); - int snap = subwindow->ctrl_down() && subwindow->alt_down(); int have_mwindow_lock = mwindow->gui->get_window_lock(); if( have_mwindow_lock ) mwindow->gui->unlock_window(); @@ -392,8 +389,8 @@ void EditPanel::prev_edit() mwindow->gui->lock_window("EditPanel::prev_edit 2"); - if( snap ) - mwindow->snap_left_edit(); + if( cut ) + mwindow->cut_left_edit(); else mwindow->prev_edit_handle(shift_down); @@ -401,10 +398,9 @@ void EditPanel::prev_edit() mwindow->gui->unlock_window(); } -void EditPanel::next_edit() +void EditPanel::next_edit(int cut) { int shift_down = subwindow->shift_down(); - int snap = subwindow->ctrl_down() && subwindow->alt_down(); int have_mwindow_lock = mwindow->gui->get_window_lock(); if( have_mwindow_lock ) mwindow->gui->unlock_window(); @@ -412,8 +408,8 @@ void EditPanel::next_edit() mwindow->gui->lock_window("EditPanel::next_edit 2"); - if( snap ) - mwindow->snap_right_edit(); + if( cut ) + mwindow->cut_right_edit(); else mwindow->next_edit_handle(shift_down); @@ -633,14 +629,17 @@ int EditInPoint::handle_event() int EditInPoint::keypress_event() { int key = get_keypress(); - if( key == '[' || key == '<' ) { - panel->set_inpoint(); - return 1; + if( ctrl_down() ) { + if( key == 't' ) { + panel->unset_inoutpoint(); + return 1; + } } - if(ctrl_down() && get_keypress() == 't') - { - panel->unset_inoutpoint(); - return 1; + else if( !alt_down() ) { + if( key == '[' || key == '<' ) { + panel->set_inpoint(); + return 1; + } } return 0; } @@ -663,14 +662,17 @@ int EditOutPoint::handle_event() int EditOutPoint::keypress_event() { int key = get_keypress(); - if( key == ']' || key == '>' ) { - panel->set_outpoint(); - return 1; + if( ctrl_down() ) { + if( key == 't' ) { + panel->unset_inoutpoint(); + return 1; + } } - if(ctrl_down() && get_keypress() == 't') - { - panel->unset_inoutpoint(); - return 1; + else if( !alt_down() ) { + if( key == ']' || key == '>' ) { + panel->set_outpoint(); + return 1; + } } return 0; } @@ -693,13 +695,23 @@ EditNextLabel::~EditNextLabel() } int EditNextLabel::keypress_event() { - if( ctrl_down() && get_keypress() == (!alt_down() ? RIGHT : '>') ) - return handle_event(); + if( ctrl_down() ) { + int key = get_keypress(); + if( (key == RIGHT || key == '.') && !alt_down() ) { + panel->next_label(0); + return 1; + } + if( key == '>' && alt_down() ) { + panel->next_label(1); + return 1; + } + } return 0; } int EditNextLabel::handle_event() { - panel->next_label(); + int cut = ctrl_down() && alt_down(); + panel->next_label(cut); return 1; } @@ -720,13 +732,23 @@ EditPrevLabel::~EditPrevLabel() } int EditPrevLabel::keypress_event() { - if( ctrl_down() && get_keypress() == (!alt_down() ? LEFT : '<') ) - return handle_event(); + if( ctrl_down() ) { + int key = get_keypress(); + if( (key == LEFT || key == ',') && !alt_down() ) { + panel->prev_label(0); + return 1; + } + if( key == '<' && alt_down() ) { + panel->prev_label(1); + return 1; + } + } return 0; } int EditPrevLabel::handle_event() { - panel->prev_label(); + int cut = ctrl_down() && alt_down(); + panel->prev_label(cut); return 1; } @@ -749,13 +771,23 @@ EditNextEdit::~EditNextEdit() } int EditNextEdit::keypress_event() { - if( alt_down() && get_keypress() == (!ctrl_down() ? RIGHT : '.') ) - return handle_event(); + if( alt_down() ) { + int key = get_keypress(); + if( (key == RIGHT || key == '.') && !ctrl_down() ) { + panel->next_edit(0); + return 1; + } + if( key == '.' && ctrl_down() ) { + panel->next_edit(1); + return 1; + } + } return 0; } int EditNextEdit::handle_event() { - panel->next_edit(); + int cut = ctrl_down() && alt_down(); + panel->next_edit(cut); return 1; } @@ -776,13 +808,23 @@ EditPrevEdit::~EditPrevEdit() } int EditPrevEdit::keypress_event() { - if( alt_down() && get_keypress() == (!ctrl_down() ? LEFT : ',') ) - return handle_event(); + if( alt_down() ) { + int key = get_keypress(); + if( (key == LEFT || key == ',') && !ctrl_down() ) { + panel->prev_edit(0); + return 1; + } + if( key == ',' && ctrl_down() ) { + panel->prev_edit(1); + return 1; + } + } return 0; } int EditPrevEdit::handle_event() { - panel->prev_edit(); + int cut = ctrl_down() && alt_down(); + panel->prev_edit(cut); return 1; } diff --git a/cinelerra-5.1/cinelerra/editpanel.h b/cinelerra-5.1/cinelerra/editpanel.h index c2b5de1e..e6839a68 100644 --- a/cinelerra-5.1/cinelerra/editpanel.h +++ b/cinelerra-5.1/cinelerra/editpanel.h @@ -444,10 +444,10 @@ public: virtual void unset_inoutpoint(); virtual void to_clip() = 0; virtual void toggle_label(); - virtual void prev_label(); - virtual void next_label(); - virtual void prev_edit(); - virtual void next_edit(); + virtual void prev_label(int cut); + virtual void next_label(int cut); + virtual void prev_edit(int cut); + virtual void next_edit(int cut); virtual double get_position(); virtual void set_position(double position); diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index b42081bf..49e36552 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -343,11 +343,11 @@ public: void cut(); void blade(double position); void cut(double start, double end, double new_position=-1); -// snap off edit from current position to handle/label - void snap_left_edit(); - void snap_right_edit(); - void snap_left_label(); - void snap_right_label(); +// cut edit from current position to handle/label + void cut_left_edit(); + void cut_right_edit(); + void cut_left_label(); + void cut_right_label(); // Calculate aspect ratio from pixel counts static int create_aspect_ratio(float &w, float &h, int width, int height); diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index e27d4037..c8619a1c 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -554,7 +554,7 @@ void MWindow::cut(double start, double end, double new_position) cwindow->refresh_frame(CHANGE_EDL); } -void MWindow::snap_left_edit() +void MWindow::cut_left_edit() { double start_pos = edl->local_session->get_selectionstart(1); double position = edl->prev_edit(start_pos); @@ -562,7 +562,7 @@ void MWindow::snap_left_edit() cut(position, start_pos, position); } -void MWindow::snap_right_edit() +void MWindow::cut_right_edit() { double end_pos = edl->local_session->get_selectionend(1); double position = edl->next_edit(end_pos); @@ -570,7 +570,7 @@ void MWindow::snap_right_edit() cut(end_pos, position, end_pos); } -void MWindow::snap_left_label() +void MWindow::cut_left_label() { double start_pos = edl->local_session->get_selectionstart(1); Label *left_label = edl->labels->prev_label(start_pos); @@ -580,7 +580,7 @@ void MWindow::snap_left_label() cut(position, start_pos, position); } -void MWindow::snap_right_label() +void MWindow::cut_right_label() { double end_pos = edl->local_session->get_selectionend(1); Label *right_label = edl->labels->next_label(end_pos); diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index ec33eba7..d1aea0fc 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -1195,6 +1195,13 @@ int MWindowGUI::keypress_event() } break; + case ',': + if( !ctrl_down() && !alt_down() ) { + mwindow->move_left(); + result = 1; + } + break; + case RIGHT: if( !ctrl_down() ) { if( alt_down() ) { @@ -1207,6 +1214,13 @@ int MWindowGUI::keypress_event() } break; + case '.': + if( !ctrl_down() && !alt_down() ) { + mwindow->move_right(); + result = 1; + } + break; + case UP: if( ctrl_down() && !alt_down() ) mwindow->expand_y(); diff --git a/cinelerra-5.1/cinelerra/new.C b/cinelerra-5.1/cinelerra/new.C index c7c9ba31..9877894b 100644 --- a/cinelerra-5.1/cinelerra/new.C +++ b/cinelerra-5.1/cinelerra/new.C @@ -126,7 +126,7 @@ int New::create_new_project(int load_mode) mwindow->update_project(load_mode); mwindow->session->changes_made = 0; mwindow->undo->update_undo_after(load_mode == LOADMODE_REPLACE ? - _("New Project") : _("Append Project"), LOAD_ALL); + _("New Project") : _("Append to Project"), LOAD_ALL); mwindow->gui->unlock_window(); return 0; } diff --git a/cinelerra-5.1/doc/shortcuts.html b/cinelerra-5.1/doc/shortcuts.html index e3b258c9..ae34111c 100644 --- a/cinelerra-5.1/doc/shortcuts.html +++ b/cinelerra-5.1/doc/shortcuts.html @@ -444,6 +444,12 @@
Concatenate tracks together + + + Append to proj + 'Shift-N' + Add set of tracks + add Subttl @@ -852,6 +858,12 @@ +Shift w/Alt Shift with Alt+x above, adds/removes audio + +
+
+ +Shift w/Ctrl + Loops play; all or between In/Out +

@@ -879,13 +891,13 @@ Edit operations In point - '[' + '[' or '<' Toggle In point timeline marker
Out point - ']' + ']' or '>' Toggle Out point timeline marker @@ -1128,6 +1140,42 @@ Shift-ctrl Move cursor to label right of cursor, expand selection + +
+ , (comma) +
+ Scroll window timeline display left (not insertion pt) + + +
+ , (comma) + Ctrl + Move cursor to label left of cursor (main shortcuts) + + +
+ , (comma) + Alt + Move cursor to edit boundary left of cursor position + + +
+ . (period) +
+ Scroll window timeline display right (not insertion pt) + + +
+ . (period) + Ctrl + Move cursor to label right of cursor (main shortcuts) + + +
+ . (period) + Alt + Move cursor to edit boundary right of cursor position +
UP (up arrow) @@ -1248,6 +1296,30 @@ 'Shift-tab’ Toggle all of the other tracks arming status + +
+
+ Double click + On plugin title bar, selects that area + + +
+
+ Double click + On an edit, selects that area + + +
+
+ Double click + On subtitle track, displays text in Line text + + +
+
+ Double click + On fade/speed, synch video/audio ganged +

@@ -1422,6 +1494,36 @@
Projector zoom + + Transport & + (plus 3 below) +
+ Same as in Main window + + + Edit Buttons + (plus 3 below) +
+ Same as in Main window + + +
+
+ Left click + Only Protect enabled, start/stop forward play + + +
+
+ Middle click + Only Protect enabled, start/stop play reverse + + +
+
+ Middle wheel + Only Protect enabled, plays forw/rev 1 frame + Viewer
@@ -1518,16 +1620,40 @@ +Shift w/Alt Shift with Alt+x above, adds/removes audio + +
+
+ +Shift w/Ctrl + Loops play; all or between In/Out + + +
+
+ Left click + Start or stop play forward + + +
+
+ Middle click + Start or stop play reverse + + +
+
+ Middle wheel + Plays forward or reverse 1 frame +
In point - '[' + '[' or '<' Toggle In point timeline marker
Out point - ']' + ']' or '>' Toggle Out point timeline marker @@ -1593,8 +1719,32 @@

- 'Left click' - Start or stop play in Viewer window +
+
+ + + Mixer + Menu Items + Shortcuts + Description + + +
+
+ Double click + On mixer window, pastes into timeline + + +
+
+
+
+ + + An Event +
+ Double click + Executes the item event (e.g. Load highlighted file)
@@ -1776,6 +1926,24 @@ (also+'Shift’) Copies selection to 2nd cut buffer and delete + +
+
+ Double click + On word in textbox, highlites that word + + +
+
+ Double click + On highlighted Probe order, enables/disables + + +
+
+ Triple click + In subtitle script text, loads line into line text +

@@ -1830,6 +1998,18 @@ 'Shift’ Hold down Shift and drag to move text icon + +
+
+ Double click + Visibility off- loads media in Viewer + + +
+
+ Single click + Visibility on- bigger thumbnail plays or stops +

@@ -1926,6 +2106,18 @@
Select the device picture + +
+
+ Double click + In Find window, centers there & turns yellow + + +
+
+ Double click + On batchbay line, selects and loads ch info +

diff --git a/cinelerra-5.1/guicast/bcpopupmenu.C b/cinelerra-5.1/guicast/bcpopupmenu.C index 4d3144b5..be17a0a3 100644 --- a/cinelerra-5.1/guicast/bcpopupmenu.C +++ b/cinelerra-5.1/guicast/bcpopupmenu.C @@ -473,7 +473,7 @@ int BC_PopupMenu::cursor_leave_event() if( popup_down ) { if( !get_button_down() && !menu_popup->cursor_inside() ) { status = BUTTON_UP; - deactivate_menu(); +// deactivate_menu(); } menu_popup->dispatch_cursor_leave(); } -- 2.26.2