nicer effects panel, improved split selection

This commit is contained in:
itsmattkc
2018-08-11 20:06:20 +10:00
parent abba6bf8b4
commit 7e6d4dce20
20 changed files with 302 additions and 155 deletions
+19 -4
View File
@@ -50,7 +50,7 @@ Timeline::Timeline(QWidget *parent) :
ui(new Ui::Timeline),
last_frame(0)
{
default_track_height = (QGuiApplication::primaryScreen()->logicalDotsPerInch() / 96) * default_track_height;
default_track_height = (QGuiApplication::primaryScreen()->logicalDotsPerInch() / 96) * TRACK_DEFAULT_HEIGHT;
ui->setupUi(this);
@@ -215,7 +215,7 @@ int Timeline::calculate_track_height(int track, int value) {
int index = (track < 0) ? qAbs(track + 1) : track;
QVector<int>& vector = (track < 0) ? video_track_heights : audio_track_heights;
while (vector.size() < index+1) {
vector.append(TRACK_DEFAULT_HEIGHT);
vector.append(default_track_height);
}
if (value > -1) {
vector[index] = value;
@@ -837,19 +837,34 @@ bool Timeline::split_selection(TimelineAction* ta) {
for (int i=0;i<selections.size();i++) {
const Selection& s = selections.at(i);
if (s.track == clip->track) {
if (clip->timeline_in < s.in && clip->timeline_out > s.out) {
if (clip->timeline_in < s.in && clip->timeline_out > s.out) {
Clip* split_A = clip->copy(sequence);
split_A->clip_in += (s.in - clip->timeline_in);
split_A->timeline_in = s.in;
split_A->timeline_out = s.out;
pre_splits.append(j);
post_splits.append(split_A);
post_splits.append(split_A);
Clip* split_B = clip->copy(sequence);
split_B->clip_in += (s.out - clip->timeline_in);
split_B->timeline_in = s.out;
secondary_post_splits.append(split_B);
if (clip->opening_transition != NULL) {
delete split_B->opening_transition;
split_B->opening_transition = NULL;
delete split_A->opening_transition;
split_A->opening_transition = NULL;
}
if (clip->closing_transition != NULL) {
ta->delete_transition(sequence, j, TA_CLOSING_TRANSITION);
delete split_A->closing_transition;
split_A->closing_transition = NULL;
}
ta->set_timeline_out(sequence, j, s.in);
split = true;
} else {