From 5c1b4cd479fda29ef7ad74e194d71f8a11d58aa6 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 24 Jun 2018 15:47:00 -0700 Subject: [PATCH] prepping for linked clip rewrite --- README.md | 3 +++ olive.pro.user | 2 +- project/sequence.cpp | 3 ++- ui/timelinewidget.cpp | 25 ++++++++++++++----------- 4 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..23eb29d38 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +#Olive Video Editor + +Olive is a non-linear video editor for Windows, macOS, and Linux. Binaries are not available as of yet, but will be very soon. If you're building from source, you'll need Qt and FFmpeg (recommended versions are Qt 5.5 and FFmpeg 3.4.2). \ No newline at end of file diff --git a/olive.pro.user b/olive.pro.user index d1a52b33f..330905635 100644 --- a/olive.pro.user +++ b/olive.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/project/sequence.cpp b/project/sequence.cpp index 0c71a8f58..9efe45429 100644 --- a/project/sequence.cpp +++ b/project/sequence.cpp @@ -41,7 +41,8 @@ void Sequence::delete_clip(int i) { // finally remove from vector delete clips.at(i); - clips.removeAt(i); +// clips[i] = NULL; + clips.removeAt(i); } long Sequence::getEndFrame() { diff --git a/ui/timelinewidget.cpp b/ui/timelinewidget.cpp index 92fe2a652..95c6de0f3 100644 --- a/ui/timelinewidget.cpp +++ b/ui/timelinewidget.cpp @@ -252,21 +252,24 @@ void TimelineWidget::mouseReleaseEvent(QMouseEvent *event) { QVector delete_areas; for (int i=0;ighosts.size();i++) { const Ghost& g = panel_timeline->ghosts.at(i); + if (g.old_in != g.in || g.old_out != g.out || g.track != g.old_track || g.clip_in != g.old_clip_in) { + Clip* c = g.clip->copy(); - Clip* c = g.clip->copy(); + c->timeline_in = g.in; + c->timeline_out = g.out; + c->track = g.track; - c->timeline_in = g.in; - c->timeline_out = g.out; - c->track = g.track; + delete_areas.append({g.in, g.out, g.track}); - delete_areas.append({g.in, g.out, g.track}); - - copy_clips.append(c); + copy_clips.append(c); + } } - panel_timeline->delete_areas_and_relink(delete_areas); - for (int i=0;iadd_clip(copy_clips.at(i)); + if (copy_clips.size() > 0) { + panel_timeline->delete_areas_and_relink(delete_areas); + for (int i=0;iadd_clip(copy_clips.at(i)); + } } } else { // move clips