+
+void Geometryval::slotResetPosition()
+{
+ spinX->setValue(0);
+ spinY->setValue(0);
+
+ if (m_frameSize.isNull()) {
+ spinWidth->setValue(m_realWidth);
+ spinHeight->setValue(m_profile.height);
+ } else {
+ spinWidth->setValue(m_frameSize.x());
+ spinHeight->setValue(m_frameSize.y());
+ }
+}
+
+void Geometryval::setFrameSize(const QPoint &p)
+{
+ m_frameSize = p;
+}
+
+
+void Geometryval::slotKeyframeMoved(int pos)
+{
+ slotPositionChanged(pos);
+ slotUpdateTransitionProperties();
+ QTimer::singleShot(100, this, SIGNAL(parameterChanged()));
+}
+
+void Geometryval::slotSwitchOptions()
+{
+ if (frameOptions->isHidden()) {
+ frameOptions->setHidden(false);
+ m_editOptions->setChecked(true);
+ } else {
+ frameOptions->setHidden(true);
+ m_editOptions->setChecked(false);
+ }
+ //adjustSize();
+}
+
+void Geometryval::slotGeometryX(int value)
+{
+ if (!keyframeSelected())
+ return;
+ m_paramRect->setPos(value, spinY->value());
+ slotUpdateTransitionProperties();
+}
+
+void Geometryval::slotGeometryY(int value)
+{
+ if (!keyframeSelected())
+ return;
+ m_paramRect->setPos(spinX->value(), value);
+ slotUpdateTransitionProperties();
+}
+
+void Geometryval::slotGeometryWidth(int value)
+{
+ if (!keyframeSelected())
+ return;
+ m_paramRect->setRect(0, 0, value, spinHeight->value());
+ slotUpdateTransitionProperties();
+}
+
+void Geometryval::slotGeometryHeight(int value)
+{
+ if (!keyframeSelected())
+ return;
+ m_paramRect->setRect(0, 0, spinWidth->value(), value);
+ slotUpdateTransitionProperties();
+}
+
+void Geometryval::slotUpdateGeometry()
+{
+ QRectF r = m_paramRect->rect().normalized();
+
+ spinX->blockSignals(true);
+ spinY->blockSignals(true);
+ spinWidth->blockSignals(true);
+ spinHeight->blockSignals(true);
+ spinResize->blockSignals(true);
+
+ spinX->setValue(m_paramRect->pos().x());
+ spinY->setValue(m_paramRect->pos().y());
+ spinWidth->setValue(r.width());
+ spinHeight->setValue(r.height());
+ spinResize->setValue(m_paramRect->rect().width() * 100 / m_realWidth);
+
+ spinX->blockSignals(false);
+ spinY->blockSignals(false);
+ spinWidth->blockSignals(false);
+ spinHeight->blockSignals(false);
+ spinResize->blockSignals(false);
+}
+
+bool Geometryval::keyframeSelected()
+{
+ Mlt::GeometryItem item;
+ int pos = m_timePos.getValue();
+ if (m_geom->fetch(&item, pos) || item.key() == false) return false;
+ return true;
+}
+
+
+void Geometryval::slotUpdateRange(int inPoint, int outPoint)
+{
+ m_helper->setKeyGeometry(m_geom, outPoint - inPoint - 1);
+ m_helper->update();
+ m_timePos.setRange(0, outPoint - inPoint - 1);
+}
+
+#include "geometryval.moc"