switch move/swap tracks, add mv trk shortcut, update msg
authorGood Guy <good1.2guy@gmail.com>
Wed, 30 Sep 2020 03:07:29 +0000 (21:07 -0600)
committerGood Guy <good1.2guy@gmail.com>
Wed, 30 Sep 2020 03:07:29 +0000 (21:07 -0600)
12 files changed:
cinelerra-5.1/cinelerra/mainmenu.C
cinelerra-5.1/cinelerra/mainmenu.h
cinelerra-5.1/cinelerra/mainmenu.inc
cinelerra-5.1/cinelerra/mwindow.h
cinelerra-5.1/cinelerra/mwindowedit.C
cinelerra-5.1/cinelerra/trackpopup.C
cinelerra-5.1/cinelerra/trackpopup.h
cinelerra-5.1/cinelerra/tracks.C
cinelerra-5.1/cinelerra/tracks.h
cinelerra-5.1/cinelerra/tracksedit.C
cinelerra-5.1/doc/shortcuts.html
cinelerra-5.1/msg/txt

index 4359595baebd2fb5efc9e5894473fb0f7031849c..56b18436e0efcc95f525be8610b2561e9a6bcee9 100644 (file)
@@ -207,13 +207,13 @@ void MainMenu::create_objects()
        add_menu(trackmenu = new BC_Menu(_("Tracks")));
        trackmenu->add_item(new MoveTracksUp(mwindow));
        trackmenu->add_item(new MoveTracksDown(mwindow));
        add_menu(trackmenu = new BC_Menu(_("Tracks")));
        trackmenu->add_item(new MoveTracksUp(mwindow));
        trackmenu->add_item(new MoveTracksDown(mwindow));
+       trackmenu->add_item(new RollTracksUp(mwindow));
+       trackmenu->add_item(new RollTracksDown(mwindow));
        trackmenu->add_item(new DeleteTracks(mwindow));
        trackmenu->add_item(new DeleteFirstTrack(mwindow));
        trackmenu->add_item(new DeleteLastTrack(mwindow));
        trackmenu->add_item(new ConcatenateTracks(mwindow));
        trackmenu->add_item(new AlignTimecodes(mwindow));
        trackmenu->add_item(new DeleteTracks(mwindow));
        trackmenu->add_item(new DeleteFirstTrack(mwindow));
        trackmenu->add_item(new DeleteLastTrack(mwindow));
        trackmenu->add_item(new ConcatenateTracks(mwindow));
        trackmenu->add_item(new AlignTimecodes(mwindow));
-       trackmenu->add_item(new SwapTracksUp(mwindow));
-       trackmenu->add_item(new SwapTracksDown(mwindow));
        AppendTracks *append_tracks;
        trackmenu->add_item(append_tracks = new AppendTracks(mwindow));
        append_tracks->create_objects();
        AppendTracks *append_tracks;
        trackmenu->add_item(append_tracks = new AppendTracks(mwindow));
        append_tracks->create_objects();
@@ -1345,7 +1345,8 @@ int MoveTracksUp::handle_event()
 MoveTracksDown::MoveTracksDown(MWindow *mwindow)
  : BC_MenuItem(_("Move tracks down"), _("Shift-Down"), DOWN)
 {
 MoveTracksDown::MoveTracksDown(MWindow *mwindow)
  : BC_MenuItem(_("Move tracks down"), _("Shift-Down"), DOWN)
 {
-       set_shift(); this->mwindow = mwindow;
+       this->mwindow = mwindow;
+       set_shift();
 }
 
 int MoveTracksDown::handle_event()
 }
 
 int MoveTracksDown::handle_event()
@@ -1356,30 +1357,33 @@ int MoveTracksDown::handle_event()
 }
 
 
 }
 
 
-SwapTracksUp::SwapTracksUp(MWindow *mwindow)
- : BC_MenuItem(_("Swap tracks up"), 0, UP)
+RollTracksUp::RollTracksUp(MWindow *mwindow)
+ : BC_MenuItem(_("Roll tracks up"), _("Ctrl-Shift-Up"), UP)
 {
        this->mwindow = mwindow;
 {
        this->mwindow = mwindow;
+       set_ctrl();
        set_shift();
 }
 
        set_shift();
 }
 
-int SwapTracksUp::handle_event()
+int RollTracksUp::handle_event()
 {
        if( mwindow->session->current_operation == NO_OPERATION )
 {
        if( mwindow->session->current_operation == NO_OPERATION )
-               mwindow->swap_tracks_up();
+               mwindow->roll_tracks_up();
        return 1;
 }
 
        return 1;
 }
 
-SwapTracksDown::SwapTracksDown(MWindow *mwindow)
- : BC_MenuItem(_("Swap tracks down"), 0, DOWN)
+RollTracksDown::RollTracksDown(MWindow *mwindow)
+ : BC_MenuItem(_("Roll tracks down"), _("Ctrl-Shift-Down"), DOWN)
 {
 {
-       set_shift(); this->mwindow = mwindow;
+       this->mwindow = mwindow;
+       set_ctrl();
+       set_shift();
 }
 
 }
 
-int SwapTracksDown::handle_event()
+int RollTracksDown::handle_event()
 {
        if( mwindow->session->current_operation == NO_OPERATION )
 {
        if( mwindow->session->current_operation == NO_OPERATION )
-               mwindow->swap_tracks_down();
+               mwindow->roll_tracks_down();
        return 1;
 }
 
        return 1;
 }
 
index 97f9dd1c2391e666aa7ec99362343b5647394f27..c9127fa8d72b50b8ca381f1e1371b183075fec8f 100644 (file)
@@ -696,34 +696,34 @@ public:
 // ========================================== settings
 
 
 // ========================================== settings
 
 
-class MoveTracksUp : public BC_MenuItem
+class RollTracksUp : public BC_MenuItem
 {
 public:
 {
 public:
-       MoveTracksUp(MWindow *mwindow);
+       RollTracksUp(MWindow *mwindow);
        int handle_event();
        MWindow *mwindow;
 };
 
        int handle_event();
        MWindow *mwindow;
 };
 
-class MoveTracksDown : public BC_MenuItem
+class RollTracksDown : public BC_MenuItem
 {
 public:
 {
 public:
-       MoveTracksDown(MWindow *mwindow);
+       RollTracksDown(MWindow *mwindow);
        int handle_event();
        MWindow *mwindow;
 };
 
        int handle_event();
        MWindow *mwindow;
 };
 
-class SwapTracksUp : public BC_MenuItem
+class MoveTracksUp : public BC_MenuItem
 {
 public:
 {
 public:
-       SwapTracksUp(MWindow *mwindow);
+       MoveTracksUp(MWindow *mwindow);
        int handle_event();
        MWindow *mwindow;
 };
 
        int handle_event();
        MWindow *mwindow;
 };
 
-class SwapTracksDown : public BC_MenuItem
+class MoveTracksDown : public BC_MenuItem
 {
 public:
 {
 public:
-       SwapTracksDown(MWindow *mwindow);
+       MoveTracksDown(MWindow *mwindow);
        int handle_event();
        MWindow *mwindow;
 };
        int handle_event();
        MWindow *mwindow;
 };
index e9c3ffe02c23a453c8638e60f8ebefaf520b4c61..022dce4190c6ab4f4642154cb57f4b4c2919f4b4 100644 (file)
@@ -86,8 +86,8 @@ class ResetTranslation;
 class DefaultVTransition;
 class AddSubttlTrack;
 class PasteSubttl;
 class DefaultVTransition;
 class AddSubttlTrack;
 class PasteSubttl;
-class MoveTracksUp;
-class MoveTracksDown;
+class RollTracksUp;
+class RollTracksDown;
 class DeleteTracks;
 class ConcatenateTracks;
 class DeleteFirstTrack;
 class DeleteTracks;
 class ConcatenateTracks;
 class DeleteFirstTrack;
index 30e632bfab7d353bc457a34f36cc630d63e2abe7..c636d787f337f71a0ad33b94cca2bf5ec292e9e2 100644 (file)
@@ -515,14 +515,14 @@ public:
        void move_effect(Plugin *plugin, PluginSet *plugin_set, int64_t position);
        void move_plugins_up(PluginSet *plugin_set);
        void move_plugins_down(PluginSet *plugin_set);
        void move_effect(Plugin *plugin, PluginSet *plugin_set, int64_t position);
        void move_plugins_up(PluginSet *plugin_set);
        void move_plugins_down(PluginSet *plugin_set);
+       void roll_track_down(Track *track);
+       void roll_tracks_down();
+       void roll_track_up(Track *track);
+       void roll_tracks_up();
        void move_track_down(Track *track);
        void move_tracks_down();
        void move_track_up(Track *track);
        void move_tracks_up();
        void move_track_down(Track *track);
        void move_tracks_down();
        void move_track_up(Track *track);
        void move_tracks_up();
-       void swap_track_down(Track *track);
-       void swap_tracks_down();
-       void swap_track_up(Track *track);
-       void swap_tracks_up();
        void mute_selection();
        void new_folder(const char *new_folder, int is_clips);
        void delete_folder(char *folder);
        void mute_selection();
        void new_folder(const char *new_folder, int is_clips);
        void delete_folder(char *folder);
index 003844fe9a61698083240ba6f8dbd0a6ae059676..b35cd335e7457f48b25e3d50200dc6951af75883 100644 (file)
@@ -1192,10 +1192,10 @@ void MWindow::move_plugins_down(PluginSet *plugin_set)
        sync_parameters(CHANGE_EDL);
 }
 
        sync_parameters(CHANGE_EDL);
 }
 
-void MWindow::move_track_down(Track *track)
+void MWindow::roll_track_down(Track *track)
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->move_track_down(track);
+       edl->tracks->roll_track_down(track);
        save_backup();
        undo_after(_("move track down"), LOAD_ALL);
 
        save_backup();
        undo_after(_("move track down"), LOAD_ALL);
 
@@ -1205,10 +1205,10 @@ void MWindow::move_track_down(Track *track)
        save_backup();
 }
 
        save_backup();
 }
 
-void MWindow::move_tracks_down()
+void MWindow::roll_tracks_down()
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->move_tracks_down();
+       edl->tracks->roll_tracks_down();
        save_backup();
        undo_after(_("move tracks down"), LOAD_ALL);
 
        save_backup();
        undo_after(_("move tracks down"), LOAD_ALL);
 
@@ -1218,10 +1218,10 @@ void MWindow::move_tracks_down()
        save_backup();
 }
 
        save_backup();
 }
 
-void MWindow::move_track_up(Track *track)
+void MWindow::roll_track_up(Track *track)
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->move_track_up(track);
+       edl->tracks->roll_track_up(track);
        save_backup();
        undo_after(_("move track up"), LOAD_ALL);
        restart_brender();
        save_backup();
        undo_after(_("move track up"), LOAD_ALL);
        restart_brender();
@@ -1230,10 +1230,10 @@ void MWindow::move_track_up(Track *track)
        save_backup();
 }
 
        save_backup();
 }
 
-void MWindow::move_tracks_up()
+void MWindow::roll_tracks_up()
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->move_tracks_up();
+       edl->tracks->roll_tracks_up();
        save_backup();
        undo_after(_("move tracks up"), LOAD_ALL);
        restart_brender();
        save_backup();
        undo_after(_("move tracks up"), LOAD_ALL);
        restart_brender();
@@ -1242,10 +1242,10 @@ void MWindow::move_tracks_up()
 }
 
 
 }
 
 
-void MWindow::swap_track_down(Track *track)
+void MWindow::move_track_down(Track *track)
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->swap_track_down(track);
+       edl->tracks->move_track_down(track);
        save_backup();
        undo_after(_("swap track down"), LOAD_ALL);
 
        save_backup();
        undo_after(_("swap track down"), LOAD_ALL);
 
@@ -1255,10 +1255,10 @@ void MWindow::swap_track_down(Track *track)
        save_backup();
 }
 
        save_backup();
 }
 
-void MWindow::swap_tracks_down()
+void MWindow::move_tracks_down()
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->swap_tracks_down();
+       edl->tracks->move_tracks_down();
        save_backup();
        undo_after(_("swap tracks down"), LOAD_ALL);
 
        save_backup();
        undo_after(_("swap tracks down"), LOAD_ALL);
 
@@ -1268,10 +1268,10 @@ void MWindow::swap_tracks_down()
        save_backup();
 }
 
        save_backup();
 }
 
-void MWindow::swap_track_up(Track *track)
+void MWindow::move_track_up(Track *track)
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->swap_track_up(track);
+       edl->tracks->move_track_up(track);
        save_backup();
        undo_after(_("swap track up"), LOAD_ALL);
        restart_brender();
        save_backup();
        undo_after(_("swap track up"), LOAD_ALL);
        restart_brender();
@@ -1280,10 +1280,10 @@ void MWindow::swap_track_up(Track *track)
        save_backup();
 }
 
        save_backup();
 }
 
-void MWindow::swap_tracks_up()
+void MWindow::move_tracks_up()
 {
        undo_before();
 {
        undo_before();
-       edl->tracks->swap_tracks_up();
+       edl->tracks->move_tracks_up();
        save_backup();
        undo_after(_("swap tracks up"), LOAD_ALL);
        restart_brender();
        save_backup();
        undo_after(_("swap tracks up"), LOAD_ALL);
        restart_brender();
index 6dd1512e1584f7eb296ab97dc066cfef80065af8..f22825e44bc1fb78b5da244311996eb40bc30aba 100644 (file)
@@ -66,14 +66,14 @@ void TrackPopup::create_objects()
        add_item(new TrackAttachEffect(mwindow, this));
        add_item(new TrackMoveUp(mwindow, this));
        add_item(new TrackMoveDown(mwindow, this));
        add_item(new TrackAttachEffect(mwindow, this));
        add_item(new TrackMoveUp(mwindow, this));
        add_item(new TrackMoveDown(mwindow, this));
+       add_item(new TrackRollUp(mwindow, this));
+       add_item(new TrackRollDown(mwindow, this));
        add_item(new TrackPopupDeleteTrack(mwindow, this));
        add_item(new TrackPopupAddTrack(mwindow, this));
        add_item(new TrackPopupFindAsset(mwindow, this));
        add_item(new TrackPopupShow(mwindow, this));
        add_item(new TrackPopupUserTitle(mwindow, this));
        add_item(new TrackPopupTitleColor(mwindow, this));
        add_item(new TrackPopupDeleteTrack(mwindow, this));
        add_item(new TrackPopupAddTrack(mwindow, this));
        add_item(new TrackPopupFindAsset(mwindow, this));
        add_item(new TrackPopupShow(mwindow, this));
        add_item(new TrackPopupUserTitle(mwindow, this));
        add_item(new TrackPopupTitleColor(mwindow, this));
-       add_item(new TrackSwapUp(mwindow, this));
-       add_item(new TrackSwapDown(mwindow, this));
        resize_option = 0;
        matchsize_option = 0;
 }
        resize_option = 0;
        matchsize_option = 0;
 }
@@ -153,33 +153,33 @@ int TrackMoveDown::handle_event()
 }
 
 
 }
 
 
-TrackSwapUp::TrackSwapUp(MWindow *mwindow, TrackPopup *popup)
- : BC_MenuItem(_("Swap up"))
+TrackRollUp::TrackRollUp(MWindow *mwindow, TrackPopup *popup)
+ : BC_MenuItem(_("Roll up"))
 {
        this->mwindow = mwindow;
        this->popup = popup;
 }
 {
        this->mwindow = mwindow;
        this->popup = popup;
 }
-TrackSwapUp::~TrackSwapUp()
+TrackRollUp::~TrackRollUp()
 {
 }
 {
 }
-int TrackSwapUp::handle_event()
+int TrackRollUp::handle_event()
 {
 {
-       mwindow->swap_track_up(popup->track);
+       mwindow->roll_track_up(popup->track);
        return 1;
 }
 
        return 1;
 }
 
-TrackSwapDown::TrackSwapDown(MWindow *mwindow, TrackPopup *popup)
- : BC_MenuItem(_("Swap down"))
+TrackRollDown::TrackRollDown(MWindow *mwindow, TrackPopup *popup)
+ : BC_MenuItem(_("Roll down"))
 {
        this->mwindow = mwindow;
        this->popup = popup;
 }
 {
        this->mwindow = mwindow;
        this->popup = popup;
 }
-TrackSwapDown::~TrackSwapDown()
+TrackRollDown::~TrackRollDown()
 {
 }
 {
 }
-int TrackSwapDown::handle_event()
+int TrackRollDown::handle_event()
 {
 {
-       mwindow->swap_track_down(popup->track);
+       mwindow->roll_track_down(popup->track);
        return 1;
 }
 
        return 1;
 }
 
index b44a62d5a88ca48010e08e7460eaeaebac0220bd..e6aac8d7d7d3e032147caef79141e88f171e0292 100644 (file)
@@ -130,11 +130,11 @@ public:
        TrackPopup *popup;
 };
 
        TrackPopup *popup;
 };
 
-class TrackSwapUp : public BC_MenuItem
+class TrackRollUp : public BC_MenuItem
 {
 public:
 {
 public:
-       TrackSwapUp(MWindow *mwindow, TrackPopup *popup);
-       ~TrackSwapUp();
+       TrackRollUp(MWindow *mwindow, TrackPopup *popup);
+       ~TrackRollUp();
 
        int handle_event();
 
 
        int handle_event();
 
@@ -142,11 +142,11 @@ public:
        TrackPopup *popup;
 };
 
        TrackPopup *popup;
 };
 
-class TrackSwapDown : public BC_MenuItem
+class TrackRollDown : public BC_MenuItem
 {
 public:
 {
 public:
-       TrackSwapDown(MWindow *mwindow, TrackPopup *popup);
-       ~TrackSwapDown();
+       TrackRollDown(MWindow *mwindow, TrackPopup *popup);
+       ~TrackRollDown();
 
        int handle_event();
 
 
        int handle_event();
 
index d8357e2f61d8e865d1eebd62d2b3671de7c5c2f3..07524f1f342ccb296a1b32dfb9eda4b6e6b7071d 100644 (file)
@@ -782,7 +782,7 @@ Track *Tracks::get(int idx, int data_type)
        return 0;
 }
 
        return 0;
 }
 
-void Tracks::move_tracks(Track *src, Track *dst, int n)
+void Tracks::roll_tracks(Track *src, Track *dst, int n)
 {
        if( src == dst ) return;
        while( --n >= 0 && src ) {
 {
        if( src == dst ) return;
        while( --n >= 0 && src ) {
index 78d1fe591fe2a4735103804f51da8941f6bba670..cc1486d828f8dd32d852612ab4271a812d02cafb 100644 (file)
@@ -73,15 +73,15 @@ public:
 
        void equivalent_output(Tracks *tracks, double *result);
 
 
        void equivalent_output(Tracks *tracks, double *result);
 
-       void move_tracks(Track *src, Track *dst, int n);
+       void roll_tracks(Track *src, Track *dst, int n);
+       int roll_track_up(Track *track);
+       int roll_track_down(Track *track);
+       int roll_tracks_up();
+       int roll_tracks_down();
        int move_track_up(Track *track);
        int move_track_down(Track *track);
        int move_tracks_up();
        int move_tracks_down();
        int move_track_up(Track *track);
        int move_track_down(Track *track);
        int move_tracks_up();
        int move_tracks_down();
-       int swap_track_up(Track *track);
-       int swap_track_down(Track *track);
-       int swap_tracks_up();
-       int swap_tracks_down();
        void paste_audio_transition(PluginServer *server);
        void paste_video_transition(PluginServer *server, int first_track = 0);
 
        void paste_audio_transition(PluginServer *server);
        void paste_video_transition(PluginServer *server, int first_track = 0);
 
index a3dfca741e4a69f784285087a934e65b2ead7e98..8a8602f6090f8032b150d42b8cb001a757ab28c2 100644 (file)
@@ -851,7 +851,7 @@ int Tracks::copy(int copy_flags, double start, double end,
 
 
 
 
 
 
-int Tracks::move_track_up(Track *track)
+int Tracks::roll_track_up(Track *track)
 {
        if( first == last ) return 1;
        int n = 1;
 {
        if( first == last ) return 1;
        int n = 1;
@@ -865,11 +865,11 @@ int Tracks::move_track_up(Track *track)
                while( dst && !dst->master ) { dst = dst->previous; }
        }
        if( src == dst ) return 1;
                while( dst && !dst->master ) { dst = dst->previous; }
        }
        if( src == dst ) return 1;
-       move_tracks(src, dst, n);
+       roll_tracks(src, dst, n);
        return 0;
 }
 
        return 0;
 }
 
-int Tracks::move_track_down(Track *track)
+int Tracks::roll_track_down(Track *track)
 {
        if( first == last ) return 1;
        int n = 1;
 {
        if( first == last ) return 1;
        int n = 1;
@@ -890,12 +890,12 @@ int Tracks::move_track_down(Track *track)
        else
                dst = !dst ? first : dst->next;
        if( src == dst ) return 1;
        else
                dst = !dst ? first : dst->next;
        if( src == dst ) return 1;
-       move_tracks(src, dst, n);
+       roll_tracks(src, dst, n);
        return 0;
 }
 
 
        return 0;
 }
 
 
-int Tracks::move_tracks_up()
+int Tracks::roll_tracks_up()
 {
        if( first == last ) return 1;
        int n = 1;
 {
        if( first == last ) return 1;
        int n = 1;
@@ -905,11 +905,11 @@ int Tracks::move_tracks_up()
                while( nxt && !nxt->master ) { ++n;  nxt = nxt->next; }
        }
        if( src == dst ) return 1;
                while( nxt && !nxt->master ) { ++n;  nxt = nxt->next; }
        }
        if( src == dst ) return 1;
-       move_tracks(src, dst, n);
+       roll_tracks(src, dst, n);
        return 0;
 }
 
        return 0;
 }
 
-int Tracks::move_tracks_down()
+int Tracks::roll_tracks_down()
 {
        if( first == last ) return 1;
        int n = 1;
 {
        if( first == last ) return 1;
        int n = 1;
@@ -918,12 +918,12 @@ int Tracks::move_tracks_down()
                while( src && !src->master ) { ++n;  src = src->previous; }
        }
        if( src == dst ) return 1;
                while( src && !src->master ) { ++n;  src = src->previous; }
        }
        if( src == dst ) return 1;
-       move_tracks(src, dst, n);
+       roll_tracks(src, dst, n);
        return 0;
 }
 
 
        return 0;
 }
 
 
-int Tracks::swap_track_up(Track *track)
+int Tracks::move_track_up(Track *track)
 {
        Track *next_track = track->previous;
        if(!next_track) next_track = last;
 {
        Track *next_track = track->previous;
        if(!next_track) next_track = last;
@@ -933,7 +933,7 @@ int Tracks::swap_track_up(Track *track)
        return 0;
 }
 
        return 0;
 }
 
-int Tracks::swap_track_down(Track *track)
+int Tracks::move_track_down(Track *track)
 {
        Track *next_track = track->next;
        if(!next_track) next_track = first;
 {
        Track *next_track = track->next;
        if(!next_track) next_track = first;
@@ -944,7 +944,7 @@ int Tracks::swap_track_down(Track *track)
 }
 
 
 }
 
 
-int Tracks::swap_tracks_up()
+int Tracks::move_tracks_up()
 {
        int result = 0;
        Track *next = first;
 {
        int result = 0;
        Track *next = first;
@@ -961,7 +961,7 @@ int Tracks::swap_tracks_up()
        return result;
 }
 
        return result;
 }
 
-int Tracks::swap_tracks_down()
+int Tracks::move_tracks_down()
 {
        int result = 0;
        Track *prev = last;
 {
        int result = 0;
        Track *prev = last;
index 4c0c7730c69e3a71a718b6e6530fb4fb5a8e7ef5..a5bbc041b0bd2e4c3a8c6b19b45374bd32462e6a 100644 (file)
                <td height="26" align="left"><b><font face="Liberation Serif" size=4>    Tracks</font></b></td>
                <td align="left"><font face="Liberation Serif" size=4>Move tracks up</font></td>
                <td align="left"><font face="Liberation Serif" size=4>'Shift-Up'</font></td>
                <td height="26" align="left"><b><font face="Liberation Serif" size=4>    Tracks</font></b></td>
                <td align="left"><font face="Liberation Serif" size=4>Move tracks up</font></td>
                <td align="left"><font face="Liberation Serif" size=4>'Shift-Up'</font></td>
-               <td align="left"><font face="Liberation Serif" size=4>Circulate tracks up</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Swap tracks up</font></td>
        </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4>    Pulldown</font></td>
        </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4>    Pulldown</font></td>
-               <td align="left"><font face="Liberation Serif" size=4>Move trks down</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Move tracks dn</font></td>
                <td align="left"><font face="Liberation Serif" size=4>'Shift-Down'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>'Shift-Down'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Swap tracks down</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><b><font face="Liberation Serif" size=4>    Tracks</font></b></td>
+               <td align="left"><font face="Liberation Serif" size=4>Roll tracks up</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl-Shift-Up'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Circulate tracks up</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4>    Pulldown</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Roll tracks dn</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl-Shift-Dn'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Circulate tracks down</font></td>
        </tr>
        <tr>
                <td align="left"><font face="Liberation Serif" size=4>Circulate tracks down</font></td>
        </tr>
        <tr>
                <td align="left"><font face="Liberation Serif" size=4>Double click</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Between labels, highlights selection</font></td>
        </tr>
                <td align="left"><font face="Liberation Serif" size=4>Double click</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Between labels, highlights selection</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Over Automation Range values, changes value</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Toggle single trk</font></td>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Toggle single trk</font></td>
index c080f1b8f8fac8ab29b94a9e82e1efa404fcae52..e7113082f5bc1d27207b9f6a34a51cafbeaee0c4 100644 (file)
@@ -2,11 +2,12 @@ Email cin@lists.cinelerra-gg.org 4 help.
 For usage help, refer to the following:
   https://cinelerra-gg.org/download/CinelerraGG_Manual.pdf
   http://g-raffa.eu/Cinelerra/HOWTO/basics.html
 For usage help, refer to the following:
   https://cinelerra-gg.org/download/CinelerraGG_Manual.pdf
   http://g-raffa.eu/Cinelerra/HOWTO/basics.html
-Cinfinity icons selected in Preferences Sam (CC BY 3.0,
-  https://creativecommons.org/licenses/by/3.0/)
-Cakewalk and Neophyte themes by Olaf Wolff (CC BY 4.0,
-  https://creativecommons.org/licenses/by/4.0/)
 .
 .
+September 2020 New Features of note:
+  Motion plugin improvements by SGE for better results.
+  Camera and Projector menus now include easy range change.
+  Faster transition playing with cache + drag capable.
+  Histogram new feature of average frame calculation.
 August 2020 New Features of note:
   Bump Autos new feature; especially useful for speed.
   Language preference now in Settings->Preferences.
 August 2020 New Features of note:
   Bump Autos new feature; especially useful for speed.
   Language preference now in Settings->Preferences.