From: Jean-Baptiste Mardelle Date: Tue, 30 Oct 2012 14:43:01 +0000 (+0100) Subject: Fix possible crash in geom widget X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=c7b4c141f7ebb5d5a5932ea4ec3d0506c41082fd;p=kdenlive Fix possible crash in geom widget --- diff --git a/src/geometrywidget.cpp b/src/geometrywidget.cpp index 27c0f8eb..304a1094 100644 --- a/src/geometrywidget.cpp +++ b/src/geometrywidget.cpp @@ -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(); } diff --git a/src/onmonitoritems/onmonitorrectitem.cpp b/src/onmonitoritems/onmonitorrectitem.cpp index 37f918f3..20152e6f 100644 --- a/src/onmonitoritems/onmonitorrectitem.cpp +++ b/src/onmonitoritems/onmonitorrectitem.cpp @@ -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();