m_keyframeFactor = 100.0 / (max - min);
m_keyframeDefault = e.attribute("default").toDouble();
m_selectedKeyframe = 0;
- m_editedKeyframe = -1;
// parse keyframes
const QStringList keyframes = e.attribute("keyframes").split(';', QString::SkipEmptyParts);
foreach(const QString &str, keyframes) {
double val = str.section(':', 1, 1).toDouble();
m_keyframes[pos] = val;
}
+ if (m_keyframes.find(m_editedKeyframe) == m_keyframes.end()) m_editedKeyframe = -1;
+ if (m_keyframes.find(m_editedKeyframe) == m_keyframes.end()) m_editedKeyframe = -1;
update();
return;
}
m_keyframeFactor = 100.0 / (max - min);
m_keyframeDefault = e.attribute("default").toDouble();
m_selectedKeyframe = 0;
- m_editedKeyframe = -1;
+
// parse keyframes
const QStringList keyframes = e.attribute("keyframes").split(';', QString::SkipEmptyParts);
foreach(const QString &str, keyframes) {
double val = str.section(':', 1, 1).toDouble();
m_keyframes[pos] = val;
}
+ if (m_keyframes.find(m_editedKeyframe) == m_keyframes.end()) m_editedKeyframe = -1;
update();
return;
}
const double scale = projectScene()->scale().x();
double maximumOffset = 6 / scale;
if (isSelected() || (parentItem() && parentItem()->isSelected())) {
- m_editedKeyframe = mouseOverKeyFrames(pos, maximumOffset);
- if (m_editedKeyframe != -1) return KEYFRAME;
+ int kf = mouseOverKeyFrames(pos, maximumOffset);
+ if (kf != -1) {
+ m_editedKeyframe = kf;
+ return KEYFRAME;
+ }
}
QRectF rect = sceneBoundingRect();
int addtransitionOffset = 10;
void ClipItem::insertKeyframe(QDomElement effect, int pos, int val)
{
if (effect.attribute("disabled") == "1") return;
+ effect.setAttribute("active_keyframe", pos);
+ m_editedKeyframe = pos;
QDomNodeList params = effect.elementsByTagName("parameter");
for (int i = 0; i < params.count(); i++) {
QDomElement e = params.item(i).toElement();
void ClipItem::movedKeyframe(QDomElement effect, int oldpos, int newpos, double value)
{
if (effect.attribute("disabled") == "1") return;
+ effect.setAttribute("active_keyframe", newpos);
QDomNodeList params = effect.elementsByTagName("parameter");
int start = cropStart().frames(m_fps);
int end = (cropStart() + cropDuration()).frames(m_fps) - 1;