]> git.sesse.net Git - kdenlive/commitdiff
Fix possible crash in geom widget
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 30 Oct 2012 14:43:01 +0000 (15:43 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 30 Oct 2012 14:43:01 +0000 (15:43 +0100)
src/geometrywidget.cpp
src/onmonitoritems/onmonitorrectitem.cpp

index 27c0f8eb466124e3067db387f8061d34f81abfa9..304a1094ac678d4698429737e78d989b6761c628 100644 (file)
@@ -353,8 +353,8 @@ void GeometryWidget::setupParam(const QDomElement elem, int minframe, int maxfra
     m_geomPath = new OnMonitorPathItem(m_monitor->render->dar());
     connect(m_geomPath, SIGNAL(changed()), this, SLOT(slotUpdatePath()));
     m_geomPath->setPen(QPen(Qt::red));
-    m_scene->addItem(m_geomPath);
     m_geomPath->setPoints(m_geometry);
+    m_scene->addItem(m_geomPath);
     m_scene->centerView();
     slotPositionChanged(0, false);
 }
@@ -523,7 +523,11 @@ void GeometryWidget::slotDeleteKeyframe(int pos)
     }
 
     m_timeline->update();
-    if (m_geomPath) m_geomPath->setPoints(m_geometry);
+    if (m_geomPath) {
+       m_scene->removeItem(m_geomPath);
+       m_geomPath->setPoints(m_geometry);
+       m_scene->addItem(m_geomPath);
+    }
     slotPositionChanged(pos, false);
     emit parameterChanged();
 }
@@ -608,7 +612,11 @@ void GeometryWidget::slotUpdateGeometry()
             geom->insert(item2);
         }
     }
-    if (m_geomPath) m_geomPath->setPoints(m_geometry);
+    if (m_geomPath) {
+       m_scene->removeItem(m_geomPath);
+       m_geomPath->setPoints(m_geometry);
+       m_scene->addItem(m_geomPath);
+    }
     emit parameterChanged();
 }
 
@@ -861,7 +869,11 @@ void GeometryWidget::importKeyframes(const QString &data, int maximum)
        m_geometry->insert(item);
     }
     m_timeline->setKeyGeometry(m_geometry, m_outPoint - m_inPoint);
-    if (m_geomPath) m_geomPath->setPoints(m_geometry);
+    if (m_geomPath) {
+       m_scene->removeItem(m_geomPath);
+       m_geomPath->setPoints(m_geometry);
+       m_scene->addItem(m_geomPath);
+    }
     slotPositionChanged(-1, false);
     emit parameterChanged();
 }
index 37f918f356b978754b7cccb7615234d8b0487312..20152e6fca4de6e398ec38d44008ea7a546e0999 100644 (file)
@@ -56,8 +56,8 @@ rectActions OnMonitorRectItem::getMode(QPointF pos)
     right.lineTo(pol.at(2));
 
     QPainterPath mouseArea;
-    qreal xsize = 10;
-    qreal ysize = 10;
+    qreal xsize = 12;
+    qreal ysize = 12;
     if (getView()) {
         xsize /= m_view->matrix().m11();
        ysize /= m_view->matrix().m22();