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