- QString previous = item->keyframes(item->selectedEffectIndex());
- item->updateKeyframeEffect();
- QString next = item->keyframes(item->selectedEffectIndex());
- EditKeyFrameCommand *command = new EditKeyFrameCommand(this, item->track(), item->startPos(), item->selectedEffectIndex(), previous, next, false);
+ QDomElement oldEffect = item->selectedEffect().cloneNode().toElement();
+
+ // check if we want to remove keyframe
+ double val = mapToScene(event->pos()).toPoint().y();
+ QRectF br = item->sceneBoundingRect();
+ double maxh = 100.0 / br.height();
+ val = (br.bottom() - val) * maxh;
+ int start = item->cropStart().frames(m_document->fps());
+ int end = (item->cropStart() + item->cropDuration()).frames(m_document->fps()) - 1;
+ if ((val < -50 || val > 150) && item->editedKeyFramePos() != start && item->editedKeyFramePos() != end) {
+ //delete keyframe
+ kDebug() << "// DELETE KFR: " << item->editedKeyFramePos();
+ item->movedKeyframe(item->getEffectAt(item->selectedEffectIndex()), item->selectedKeyFramePos(), -1, 0);
+ } else item->movedKeyframe(item->getEffectAt(item->selectedEffectIndex()), item->selectedKeyFramePos(), item->editedKeyFramePos(), item->editedKeyFrameValue());
+ QDomElement newEffect = item->selectedEffect().cloneNode().toElement();
+ //item->updateKeyframeEffect();
+ //QString next = item->keyframes(item->selectedEffectIndex());
+ //EditKeyFrameCommand *command = new EditKeyFrameCommand(this, item->track(), item->startPos(), item->selectedEffectIndex(), previous, next, false);
+ EditEffectCommand *command = new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), oldEffect, newEffect, item->selectedEffectIndex(), false);
+