diff --git a/mainwindow.cpp b/mainwindow.cpp
index 5c4ac2c0c..8f14c4e1f 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -368,3 +368,17 @@ void MainWindow::on_actionSlip_Tool_triggered()
{
if (panel_timeline->focused()) panel_timeline->ui->toolSlipButton->click();
}
+
+void MainWindow::on_actionGo_to_Previous_Cut_triggered()
+{
+ if (panel_timeline->focused() || panel_viewer->hasFocus()) {
+ panel_timeline->previous_cut();
+ }
+}
+
+void MainWindow::on_actionGo_to_Next_Cut_triggered()
+{
+ if (panel_timeline->focused() || panel_viewer->hasFocus()) {
+ panel_timeline->next_cut();
+ }
+}
diff --git a/mainwindow.h b/mainwindow.h
index 11109de08..d60867fcd 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -101,6 +101,10 @@ private slots:
void on_actionSlip_Tool_triggered();
+ void on_actionGo_to_Previous_Cut_triggered();
+
+ void on_actionGo_to_Next_Cut_triggered();
+
private:
Ui::MainWindow *ui;
void setup_layout();
diff --git a/mainwindow.ui b/mainwindow.ui
index 657e3d5e9..23c9f2965 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -24,7 +24,7 @@
0
0
653
- 34
+ 29
diff --git a/olive.pro.user b/olive.pro.user
index 894eacd94..2bdb25d2c 100644
--- a/olive.pro.user
+++ b/olive.pro.user
@@ -1,6 +1,6 @@
-
+
EnvironmentId
diff --git a/panels/timeline.cpp b/panels/timeline.cpp
index 8d6319ac7..b2cbb74a7 100644
--- a/panels/timeline.cpp
+++ b/panels/timeline.cpp
@@ -64,6 +64,38 @@ void Timeline::next_frame() {
seek(playhead+1);
}
+void Timeline::previous_cut() {
+ bool seek_enabled = false;
+ long p_cut = 0;
+ for (int i=0;iclip_count();i++) {
+ Clip* c = sequence->get_clip(i);
+ if (c->timeline_out > p_cut && c->timeline_out < playhead) {
+ p_cut = c->timeline_out;
+ seek_enabled = true;
+ } else if (c->timeline_in > p_cut && c->timeline_in < playhead) {
+ p_cut = c->timeline_in;
+ seek_enabled = true;
+ }
+ }
+ if (seek_enabled) seek(p_cut);
+}
+
+void Timeline::next_cut() {
+ bool seek_enabled = false;
+ long n_cut = LONG_MAX;
+ for (int i=0;iclip_count();i++) {
+ Clip* c = sequence->get_clip(i);
+ if (c->timeline_out < n_cut && c->timeline_out > playhead) {
+ n_cut = c->timeline_out;
+ seek_enabled = true;
+ } else if (c->timeline_in < n_cut && c->timeline_in > playhead) {
+ n_cut = c->timeline_in;
+ seek_enabled = true;
+ }
+ }
+ if (seek_enabled) seek(n_cut);
+}
+
void Timeline::seek(long p) {
pause();
diff --git a/panels/timeline.h b/panels/timeline.h
index cebaa187a..703d691d0 100644
--- a/panels/timeline.h
+++ b/panels/timeline.h
@@ -82,6 +82,8 @@ public:
void go_to_start();
void previous_frame();
void next_frame();
+ void previous_cut();
+ void next_cut();
void seek(long p);
void toggle_play();
void play();
diff --git a/playback/cacher.h b/playback/cacher.h
index d99924864..1658c4c1c 100644
--- a/playback/cacher.h
+++ b/playback/cacher.h
@@ -10,7 +10,7 @@ class Cacher : public QThread
// Q_OBJECT
public:
Cacher(Clip* c);
- void run() override;
+ void run();
bool caching;
diff --git a/ui/timelineheader.h b/ui/timelineheader.h
index 1132e71b0..9dbead229 100644
--- a/ui/timelineheader.h
+++ b/ui/timelineheader.h
@@ -10,10 +10,10 @@ public:
explicit TimelineHeader(QWidget *parent = 0);
protected:
- void paintEvent(QPaintEvent*) override;
- void mousePressEvent(QMouseEvent*) override;
- void mouseMoveEvent(QMouseEvent*) override;
- void mouseReleaseEvent(QMouseEvent*) override;
+ void paintEvent(QPaintEvent*);
+ void mousePressEvent(QMouseEvent*);
+ void mouseMoveEvent(QMouseEvent*);
+ void mouseReleaseEvent(QMouseEvent*);
private:
bool dragging;
diff --git a/ui/timelinewidget.cpp b/ui/timelinewidget.cpp
index dab63191c..188d65a94 100644
--- a/ui/timelinewidget.cpp
+++ b/ui/timelinewidget.cpp
@@ -205,7 +205,6 @@ void TimelineWidget::mousePressEvent(QMouseEvent *event) {
case TIMELINE_TOOL_EDIT:
panel_timeline->seek(panel_timeline->drag_frame_start);
panel_timeline->selecting = true;
-
break;
case TIMELINE_TOOL_RAZOR:
{
@@ -807,24 +806,13 @@ void TimelineWidget::redraw_clips() {
for (int i=0;imedia_stream->audio_preview.size())/divider)*divider;
for (int j=0;jmedia_stream->audio_channels;j++) {
- int mid = channel_height*j+(channel_height/2);
+ int mid = clip_rect.top()+channel_height*j+(channel_height/2);
int offset = waveform_index+(j*2);
qint8 min = (float)clip->media_stream->audio_preview[offset] / 128.0f * (channel_height/2);
qint8 max = (float)clip->media_stream->audio_preview[offset+1] / 128.0f * (channel_height/2);
clip_painter.drawLine(clip_rect.left()+i, mid+min, clip_rect.left()+i, mid+max);
}
}
-
-// for (int i=waveform_x;imedia_stream->audio_channels;j++) {
-// int mid = channel_height*j+(channel_height/2);
-// int offset = i+(j*2);
-// qint8 min = (float)clip->media_stream->audio_preview[offset] / 128.0f * (channel_height/2);
-// qint8 max = (float)clip->media_stream->audio_preview[offset+1] / 128.0f * (channel_height/2);
-// clip_painter.drawLine(draw_x, mid+min, draw_x, mid+max);
-// }
-// draw_x++;
-// }
}
}
diff --git a/ui/timelinewidget.h b/ui/timelinewidget.h
index 92cd55b5f..15cf9990d 100644
--- a/ui/timelinewidget.h
+++ b/ui/timelinewidget.h
@@ -21,13 +21,13 @@ public:
void redraw_clips();
protected:
- void paintEvent(QPaintEvent*) override;
- void resizeEvent(QResizeEvent*) override;
+ void paintEvent(QPaintEvent*);
+ void resizeEvent(QResizeEvent*);
void mouseDoubleClickEvent(QMouseEvent *event);
- void mousePressEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dragLeaveEvent(QDragLeaveEvent *event);
diff --git a/ui/viewercontainer.h b/ui/viewercontainer.h
index 516d82bff..678868e3c 100644
--- a/ui/viewercontainer.h
+++ b/ui/viewercontainer.h
@@ -13,7 +13,7 @@ public:
void adjust();
protected:
- void resizeEvent(QResizeEvent *event) override;
+ void resizeEvent(QResizeEvent *event);
signals:
diff --git a/ui/viewerwidget.h b/ui/viewerwidget.h
index 079e6d397..bc2ac695d 100644
--- a/ui/viewerwidget.h
+++ b/ui/viewerwidget.h
@@ -19,10 +19,10 @@ public:
bool force_audio;
bool enable_paint;
protected:
- void paintEvent(QPaintEvent *e) override;
- void initializeGL() override;
+ void paintEvent(QPaintEvent *e);
+ void initializeGL();
// void resizeGL(int w, int h);
- void paintGL() override;
+ void paintGL();
private:
QTimer retry_timer;
private slots: