]> git.sesse.net Git - kdenlive/commitdiff
Fix monitor scene sometimes forcing monitor minimum size
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 14 May 2012 19:27:30 +0000 (21:27 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 14 May 2012 19:27:30 +0000 (21:27 +0200)
src/geometrywidget.cpp
src/monitoreditwidget.cpp
src/monitoreditwidget.h
src/monitorscene.cpp

index b75909a3fc4d3fa34ac7d0639fc2c83708d20581..d0389e5a1cdc8c53939721df4e4cd334137d16bd 100644 (file)
@@ -57,7 +57,7 @@ GeometryWidget::GeometryWidget(Monitor* monitor, Timecode timecode, int clipPos,
     edit->removeCustomControls();
     edit->addCustomButton(KIcon("transform-crop"), i18n("Show previous keyframe"), this, SLOT(slotShowPreviousKeyFrame(bool)), true, KdenliveSettings::onmonitoreffects_geometryshowprevious());
     m_scene = edit->getScene();
-
+    m_scene->cleanup();
 
     /*
         Setup of timeline and keyframe controls
@@ -209,7 +209,7 @@ GeometryWidget::GeometryWidget(Monitor* monitor, Timecode timecode, int clipPos,
     connect(m_spinWidth,        SIGNAL(valueChanged(double)), this, SLOT(slotSetWidth(double)));
     connect(m_spinHeight,       SIGNAL(valueChanged(double)), this, SLOT(slotSetHeight(double)));
 
-    connect(m_spinSize,         SIGNAL(valueChanged(double)), this, SLOT(slotResize(double)));
+    connect(m_spinSize, SIGNAL(valueChanged(double)), this, SLOT(slotResize(double)));
 
     connect(m_opacity, SIGNAL(valueChanged(double)), this, SLOT(slotSetOpacity(double)));
     
@@ -287,7 +287,6 @@ void GeometryWidget::setupParam(const QDomElement elem, int minframe, int maxfra
 {
     m_inPoint = minframe;
     m_outPoint = maxframe;
-    m_scene->cleanup();
 
     if (m_geometry)
         m_geometry->parse(elem.attribute("value").toUtf8().data(), maxframe - minframe, m_monitor->render->frameRenderWidth(), m_monitor->render->renderHeight());
index 05cef9545907c5290d2874c5f56ac5df5d931769..d09a13c4c9cdb7da9559cad9312e96d5faf1821c 100644 (file)
@@ -67,7 +67,7 @@ MonitorEditWidget::MonitorEditWidget(Render* renderer, QWidget* parent) :
     m_ui.buttonZoomOriginal->setToolTip(i18n("Original size"));
 
     connect(m_ui.sliderZoom, SIGNAL(valueChanged(int)), m_scene, SLOT(slotZoom(int)));
-    connect(m_scene, SIGNAL(zoomChanged(int)), m_ui.sliderZoom, SLOT(setValue(int)));
+    connect(m_scene, SIGNAL(zoomChanged(int)), this, SLOT(slotZoom(int)));
     connect(m_ui.buttonZoomFit,      SIGNAL(clicked()), m_scene, SLOT(slotZoomFit()));
     connect(m_ui.buttonZoomOriginal, SIGNAL(clicked()), m_scene, SLOT(slotZoomOriginal()));
     m_scene->slotZoomFit();
@@ -84,6 +84,13 @@ MonitorEditWidget::~MonitorEditWidget()
     delete m_visibilityAction;
 }
 
+void MonitorEditWidget::slotZoom(int value)
+{
+    m_ui.sliderZoom->blockSignals(true);
+    m_ui.sliderZoom->setValue(value);
+    m_ui.sliderZoom->blockSignals(false);
+}
+
 void MonitorEditWidget::resetProfile(Render* renderer)
 {
     m_view->scale(((double) renderer->renderWidth()) / renderer->frameRenderWidth(), 1.0);
index a5479d91b60bff01965e12752fb68e2222f3aa2f..52bcb8c5a17b7907af634ea529ba3b518de48620 100644 (file)
@@ -60,7 +60,8 @@ public:
 private slots:
     /** @brief Sets the KdenliveSetting directupdate with true = update parameters (rerender frame) during mouse move (before mouse button is released) */
     void slotSetDirectUpdate(bool directUpdate);
-    
+    /** @brief Update zoom slider value */
+    void slotZoom(int value);
 private:
     Ui::MonitorEditWidget_UI m_ui;
     MonitorScene *m_scene;
index 297c94eede84fd827dd2eb578f25c4ac3f0a38d4..e4baa96e871496ff2896751055dea538da19ce37 100644 (file)
@@ -73,7 +73,7 @@ void MonitorScene::centerView()
 void MonitorScene::cleanup()
 {
     // Reset scene rect
-    setSceneRect(QRectF());
+    setSceneRect(m_frameBorder->boundingRect());
 }
 
 void MonitorScene::setUp()