From 215c784f8ed280c968bdd90b86e6067ad949c81e Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 2 Jan 2019 22:43:35 +1100 Subject: [PATCH] fixed keyframe save/load and goto next key --- mainwindow.cpp | 4 ++-- project/effect.cpp | 27 +++++++++++++++++---------- project/effectrow.cpp | 2 +- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 1f4094bce..e1cb1764e 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -80,13 +80,13 @@ void MainWindow::setup_layout(bool reset) { #endif // load panels from file - if (!reset) { + if (!reset) { QFile panel_config(get_data_path() + "/layout"); if (panel_config.exists() && panel_config.open(QFile::ReadOnly)) { restoreState(panel_config.readAll(), 0); panel_config.close(); } - } + } layout()->update(); } diff --git a/project/effect.cpp b/project/effect.cpp index 1be29a308..bf20bd12a 100644 --- a/project/effect.cpp +++ b/project/effect.cpp @@ -610,7 +610,7 @@ void Effect::load(QXmlStreamReader& stream) { stream.readNext(); // read keyframes - if (stream.name() == "keyframes" && stream.isStartElement()) { + /*if (stream.name() == "keyframes" && stream.isStartElement()) { for (int k=0;kkeyframes[field_index].data = load_data_from_string(field->type, stream.text().toString()); - field_index++; + row->setKeyframing(true); + + EffectKeyframe key; + for (int k=0;ktype, attr.value().toString()); + } else if (attr.name() == "frame") { + key.time = attr.value().toLong(); + } else if (attr.name() == "type") { + key.type = attr.value().toInt(); + } + } + field->keyframes.append(key); } } } else { @@ -714,9 +724,6 @@ void Effect::save(QXmlStreamWriter& stream) { EffectRow* row = rows.at(i); if (row->savable) { stream.writeStartElement("row"); // row - stream.writeStartElement("keyframes"); // keyframes - stream.writeAttribute("enabled", QString::number(row->isKeyframing())); - stream.writeEndElement(); // keyframes for (int j=0;jfieldCount();j++) { EffectField* field = row->field(j); stream.writeStartElement("field"); // field diff --git a/project/effectrow.cpp b/project/effectrow.cpp index db86e75f3..c980c37f3 100644 --- a/project/effectrow.cpp +++ b/project/effectrow.cpp @@ -129,7 +129,7 @@ void EffectRow::goto_next_key() { for (int j=0;jkeyframes.size();j++) { long comp = f->keyframes.at(i).time - c->clip_in + c->timeline_in; if (comp > sequence->playhead) { - key = qMax(comp, key); + key = qMin(comp, key); } } }