nested sequence enhancements

This commit is contained in:
itsmattkc
2019-01-22 14:15:12 +11:00
parent b4b1b8f95c
commit 584b8670c0
4 changed files with 23 additions and 5 deletions
+3
View File
@@ -1494,6 +1494,9 @@ void MainWindow::nest() {
s->clips.append(copy);
}
// relink clips in new nested sequences
panel_timeline->relink_clips_using_ids(selected_clips, s->clips);
// add sequence to project
Media* m = panel_project->new_sequence(ca, s, false, nullptr);
+9 -3
View File
@@ -61,10 +61,15 @@ void open_clip(Clip* clip, bool multithreaded) {
}
} else {
clip->open = true;
clip->finished_opening = true;
}
}
void close_clip(Clip* clip, bool wait) {
// qDebug() << "closing" << clip->name;
clip->finished_opening = false;
// destroy opengl texture in main thread
if (clip->texture != nullptr) {
delete clip->texture;
@@ -94,8 +99,9 @@ void close_clip(Clip* clip, bool wait) {
close_clip_worker(clip);
}
} else {
if (clip->media != nullptr && clip->media->get_type() == MEDIA_TYPE_SEQUENCE)
if (clip->media != nullptr && clip->media->get_type() == MEDIA_TYPE_SEQUENCE) {
closeActiveClips(clip->media->to_sequence());
}
clip->open = false;
}
@@ -385,8 +391,8 @@ void closeActiveClips(Sequence *s) {
if (c != nullptr) {
if (c->media != nullptr && c->media->get_type() == MEDIA_TYPE_SEQUENCE) {
closeActiveClips(c->media->to_sequence());
if (c->open) close_clip(c, true);
} else if (c->open) {
if (c->finished_opening) close_clip(c, true);
} else if (c->finished_opening) {
close_clip(c, true);
}
}
+2 -2
View File
@@ -169,7 +169,7 @@ GLuint compose_sequence(Viewer* viewer,
}
clip_is_active = true;
if (c->track >= 0) audio_track_count++;
} else if (c->open) {
} else if (c->finished_opening) {
close_clip(c, false);
}
} else {
@@ -181,7 +181,7 @@ GLuint compose_sequence(Viewer* viewer,
if (is_clip_active(c, playhead)) {
if (!c->open) open_clip(c, !rendering);
clip_is_active = true;
} else if (c->open) {
} else if (c->finished_opening) {
close_clip(c, false);
}
}
+9
View File
@@ -22,6 +22,7 @@
#include "dialogs/newsequencedialog.h"
#include "mainwindow.h"
#include "ui/rectangleselect.h"
#include "playback/playback.h"
#include "debug.h"
#include "project/effect.h"
@@ -548,6 +549,14 @@ void TimelineWidget::mouseDoubleClickEvent(QMouseEvent *event) {
sequence->selections.append(s);
update_ui(false);
}
} else if (panel_timeline->tool == TIMELINE_TOOL_POINTER) {
int clip_index = getClipIndexFromCoords(panel_timeline->cursor_frame, panel_timeline->cursor_track);
if (clip_index >= 0) {
Clip* c = sequence->clips.at(clip_index);
if (c->media != nullptr && c->media->get_type() == MEDIA_TYPE_SEQUENCE) {
set_sequence(c->media->to_sequence());
}
}
}
}