void Geometryval::slotUpdateTransitionProperties() { int pos = m_timePos.getValue(); Mlt::GeometryItem item; int error = m_geom->next_key(&item, pos); if (error || item.frame() != pos) { // no keyframe under cursor return; } QRectF r = m_paramRect->rect().normalized(); QPointF rectpos = m_paramRect->pos(); item.x(rectpos.x() / m_dar); item.y(rectpos.y()); item.w(r.width() / m_dar); item.h(r.height()); m_geom->insert(item); updateTransitionPath(); emit parameterChanged(); }
void Geometryval::slotAddFrame(int pos) { int frame = m_timePos.getValue(); if (pos == -1) pos = frame; Mlt::GeometryItem item; item.frame(pos); QRectF r = m_paramRect->rect().normalized(); QPointF rectpos = m_paramRect->pos(); item.x(rectpos.x() / m_dar); item.y(rectpos.y()); item.w(r.width() / m_dar); item.h(r.height()); item.mix(spinTransp->value()); m_geom->insert(item); buttonAdd->setEnabled(false); buttonDelete->setEnabled(true); widget->setEnabled(true); spinTransp->setEnabled(true); frameOptions->setEnabled(true); m_reset->setEnabled(true); m_helper->update(); emit parameterChanged(); }