From 4aa44f8fa605ff1e76b0c9e6eb42d26e94ef240f Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 4 Jan 2019 22:45:08 +1100 Subject: [PATCH] implemented saving bezier handles and fixed selection crash --- project/effect.cpp | 12 ++++++++++++ ui/graphview.cpp | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/project/effect.cpp b/project/effect.cpp index d91019d79..0315e1c4f 100644 --- a/project/effect.cpp +++ b/project/effect.cpp @@ -701,6 +701,14 @@ void Effect::load(QXmlStreamReader& stream) { key.time = attr.value().toLong(); } else if (attr.name() == "type") { key.type = attr.value().toInt(); + } else if (attr.name() == "prehx") { + key.pre_handle_x = attr.value().toDouble(); + } else if (attr.name() == "prehy") { + key.pre_handle_y = attr.value().toDouble(); + } else if (attr.name() == "posthx") { + key.post_handle_x = attr.value().toDouble(); + } else if (attr.name() == "posthy") { + key.post_handle_y = attr.value().toDouble(); } } field->keyframes.append(key); @@ -740,6 +748,10 @@ void Effect::save(QXmlStreamWriter& stream) { stream.writeAttribute("value", save_data_to_string(field->type, key.data)); stream.writeAttribute("frame", QString::number(key.time)); stream.writeAttribute("type", QString::number(key.type)); + stream.writeAttribute("prehx", QString::number(key.pre_handle_x)); + stream.writeAttribute("prehy", QString::number(key.pre_handle_y)); + stream.writeAttribute("posthx", QString::number(key.post_handle_x)); + stream.writeAttribute("posthy", QString::number(key.post_handle_y)); stream.writeEndElement(); // key } stream.writeEndElement(); // field diff --git a/ui/graphview.cpp b/ui/graphview.cpp index fa15c25ce..a939b155d 100644 --- a/ui/graphview.cpp +++ b/ui/graphview.cpp @@ -392,7 +392,7 @@ void GraphView::mousePressEvent(QMouseEvent *event) { if (sel_key > -1) { for (int i=0;imodifiers() & Qt::ShiftModifier)) { + if ((event->modifiers() & Qt::ShiftModifier) && current_handle == BEZIER_HANDLE_NONE) { selected_keys.removeAt(i); selected_keys_fields.removeAt(i); }