]> git.sesse.net Git - kdenlive/blobdiff - src/cornerswidget.cpp
const'ref. Fix indent
[kdenlive] / src / cornerswidget.cpp
index 46f2a1336131621ccf160432f3a63f8f5b2c79f1..20546a7900ee994918473e6834d351af69574634 100644 (file)
@@ -36,44 +36,31 @@ inline int lerp( const int a, const int b, double t )
     return a + (b - a) * t;
 }
 
-CornersWidget::CornersWidget(Monitor *monitor, QDomElement e, int minFrame, int maxFrame, Timecode tc, int activeKeyframe, QWidget* parent) :
+CornersWidget::CornersWidget(Monitor *monitor, const QDomElement& e, int minFrame, int maxFrame, const Timecode &tc, int activeKeyframe, QWidget* parent) :
         KeyframeEdit(e, minFrame, maxFrame, tc, activeKeyframe, parent),
         m_monitor(monitor),
         m_showScene(true),
         m_pos(0)
 {
     MonitorEditWidget *edit = monitor->getEffectEdit();
-    edit->showVisibilityButton(true);
     m_scene = edit->getScene();
+    m_scene->cleanup();
 
-    m_item = new OnMonitorCornersItem(m_scene);
+    m_item = new OnMonitorCornersItem();
     m_scene->addItem(m_item);
 
     // TODO: Better Icons
-    QToolButton *buttonShowControls = new QToolButton();
-    buttonShowControls->setIcon(KIcon("transform-move"));
-    buttonShowControls->setToolTip(i18n("Show additional controls"));
-    buttonShowControls->setCheckable(true);
-    buttonShowControls->setAutoRaise(true);
-    buttonShowControls->setChecked(KdenliveSettings::onmonitoreffects_cornersshowcontrols());
-    connect(buttonShowControls, SIGNAL(toggled(bool)), this, SLOT(slotShowControls(bool)));
-    edit->addCustomControl(buttonShowControls);
-
-    QToolButton *buttonShowLines = new QToolButton();
-    buttonShowLines->setIcon(KIcon("insert-horizontal-rule"));
-    buttonShowLines->setToolTip(i18n("Show/Hide the lines connecting the corners"));
-    buttonShowLines->setCheckable(true);
-    buttonShowControls->setAutoRaise(true);
-    buttonShowLines->setChecked(KdenliveSettings::onmonitoreffects_cornersshowlines());
-    connect(buttonShowLines, SIGNAL(toggled(bool)), this, SLOT(slotShowLines(bool)));
-    edit->addCustomControl(buttonShowLines);
-
-    connect(edit, SIGNAL(showEdit(bool)), this, SLOT(slotShowScene(bool)));
-    connect(m_monitor, SIGNAL(renderPosition(int)), this, SLOT(slotCheckMonitorPosition(int)));
-    connect(m_scene, SIGNAL(actionFinished()), this, SLOT(slotUpdateProperties()));
+    edit->removeCustomControls();
+    edit->addCustomButton(KIcon("transform-move"), i18n("Show additional controls"), this, SLOT(slotShowControls(bool)),
+                          true, KdenliveSettings::onmonitoreffects_cornersshowcontrols());
+    edit->addCustomButton(KIcon("insert-horizontal-rule"), i18n("Show/Hide the lines connecting the corners"), this, SLOT(slotShowLines(bool)),
+                          true, KdenliveSettings::onmonitoreffects_cornersshowlines());
+
+    connect(m_item, SIGNAL(changed()), this, SLOT(slotUpdateProperties()));
     connect(m_scene, SIGNAL(addKeyframe()), this, SLOT(slotInsertKeyframe()));
 
-    connect(keyframe_list, SIGNAL(cellChanged(int, int)), this, SLOT(slotUpdateItem()));
+    connect(keyframe_list, SIGNAL(cellChanged(int,int)), this, SLOT(slotUpdateItem()));
+    m_scene->centerView();
 }
 
 CornersWidget::~CornersWidget()
@@ -82,13 +69,11 @@ CornersWidget::~CornersWidget()
     delete m_item;
     if (m_monitor) {
         MonitorEditWidget *edit = m_monitor->getEffectEdit();
-        edit->showVisibilityButton(false);
         edit->removeCustomControls();
-        m_monitor->slotEffectScene(false);
     }
 }
 
-void CornersWidget::addParameter(QDomElement e, int activeKeyframe)
+void CornersWidget::addParameter(const QDomElement &e, int activeKeyframe)
 {
     KeyframeEdit::addParameter(e, activeKeyframe);
 
@@ -178,20 +163,6 @@ QList<QPointF> CornersWidget::getPoints(QTableWidgetItem* keyframe)
     return points;
 }
 
-void CornersWidget::slotCheckMonitorPosition(int renderPos)
-{
-    if (m_showScene)
-        emit checkMonitorPosition(renderPos);
-}
-
-void CornersWidget::slotShowScene(bool show)
-{
-    m_showScene = show;
-    if (!m_showScene)
-        m_monitor->slotEffectScene(false);
-    else
-        slotCheckMonitorPosition(m_monitor->render->seekFramePosition());
-}
 
 void CornersWidget::slotShowLines(bool show)
 {
@@ -209,8 +180,8 @@ void CornersWidget::slotSyncPosition(int relTimelinePos)
 {
     if (keyframe_list->rowCount()) {
         relTimelinePos = qBound(0, relTimelinePos, m_max);
-        if (relTimelinePos != m_pos) {
-            m_pos = relTimelinePos;
+        if (relTimelinePos != m_pos - m_min) {
+            m_pos = relTimelinePos + m_min;
             slotUpdateItem();
         }
     }
@@ -252,7 +223,7 @@ void CornersWidget::slotInsertKeyframe()
 
     QPolygonF pol = m_item->polygon();
     double val;
-    for (int i = 0; i < keyframe_list->columnCount(); i++) {
+    for (int i = 0; i < keyframe_list->columnCount(); ++i) {
         if (i < 8) {
             if (i % 2 == 0)
                 val = pol.at(i / 2).x() / (double)m_monitor->render->frameRenderWidth();
@@ -275,4 +246,5 @@ void CornersWidget::slotInsertKeyframe()
     keyframe_list->selectRow(row);
 }
 
+
 #include "cornerswidget.moc"