+void KeyframeHelper::mouseDoubleClickEvent(QMouseEvent * event)
+{
+ if (m_geom != NULL && event->button() == Qt::LeftButton) {
+ // check if we want to move a keyframe
+ int mousePos = qMax((int)(event->x() / m_scale - 5), 0);
+ Mlt::GeometryItem item;
+ if (m_geom->next_key(&item, mousePos) == 0 && item.frame() - mousePos < 10) {
+ // There is already a keyframe close to mouse click
+ emit removeKeyframe(item.frame());
+ return;
+ }
+ // add new keyframe
+ emit addKeyframe((int)(event->x() / m_scale));
+ }
+}
+
+// virtual
+void KeyframeHelper::mouseReleaseEvent(QMouseEvent * event)
+{
+ if (m_movingKeyframe) {
+ m_geom->insert(m_movingItem);
+ m_movingKeyframe = false;
+ emit keyframeMoved(m_position);
+ return;
+ }
+ QWidget::mouseReleaseEvent(event);
+}