+
+void Geometryval::slotGeometry()
+{
+ int pos = spinPos->value();
+ Mlt::GeometryItem item;
+ int error = m_geom->fetch(&item, pos);
+ if (error || item.key() == false) {
+ // no keyframe under cursor
+ return;
+ }
+ QRectF r = m_paramRect->sceneBoundingRect().normalized();
+
+ QDialog d(this);
+ m_view.setupUi(&d);
+ d.setWindowTitle(i18n("Frame Geometry"));
+ m_view.value_x->setMaximum(10000);
+ m_view.value_x->setMinimum(-10000);
+ m_view.value_y->setMaximum(10000);
+ m_view.value_y->setMinimum(-10000);
+ m_view.value_width->setMaximum(500000);
+ m_view.value_width->setMinimum(1);
+ m_view.value_height->setMaximum(500000);
+ m_view.value_height->setMinimum(1);
+
+ m_view.value_x->setValue(m_paramRect->pos().x());
+ m_view.value_y->setValue(m_paramRect->pos().y());
+ m_view.value_width->setValue(r.width());
+ m_view.value_height->setValue(r.height());
+ connect(m_view.button_reset , SIGNAL(clicked()) , this , SLOT(slotResetPosition()));
+
+ if (d.exec() == QDialog::Accepted) {
+ m_paramRect->setPos(m_view.value_x->value(), m_view.value_y->value());
+ m_paramRect->setRect(0, 0, m_view.value_width->value(), m_view.value_height->value());
+ slotUpdateTransitionProperties();
+ }
+}
+
+void Geometryval::slotResetPosition()
+{
+ m_view.value_x->setValue(0);
+ m_view.value_y->setValue(0);
+
+ if (m_frameSize.isNull()) {
+ m_view.value_width->setValue(m_realWidth);
+ m_view.value_height->setValue(m_profile.height);
+ } else {
+ m_view.value_width->setValue(m_frameSize.x());
+ m_view.value_height->setValue(m_frameSize.y());
+ }
+}
+
+void Geometryval::setFrameSize(QPoint p)
+{
+ m_frameSize = p;
+}
+
+
+void Geometryval::slotKeyframeMoved(int pos)
+{
+ slotPositionChanged(pos);
+ slotUpdateTransitionProperties();
+}
+