]> git.sesse.net Git - kdenlive/commitdiff
Fix manually turning off the monitor scene causes the button to do so to be hidden...
authorTill Theato <root@ttill.de>
Sun, 29 Apr 2012 22:48:04 +0000 (00:48 +0200)
committerTill Theato <root@ttill.de>
Sun, 29 Apr 2012 22:48:04 +0000 (00:48 +0200)
src/monitor.cpp
src/monitor.h
src/monitoreditwidget.h

index 18555e1ba54df7d6fa15b22bb5690d3e31bccc85..aebf23cda1c4453c168b0c5c932be05c213878c9 100644 (file)
@@ -187,7 +187,7 @@ Monitor::Monitor(Kdenlive::MONITORID id, MonitorManager *manager, QString profil
 
     if (id == Kdenlive::projectMonitor) {
         m_effectWidget = new MonitorEditWidget(render, videoBox);
-       connect(m_effectWidget, SIGNAL(showEdit(bool)), this, SLOT(slotShowEffectScene(bool)));
+       connect(m_effectWidget, SIGNAL(showEdit(bool, bool)), this, SLOT(slotShowEffectScene(bool, bool)));
         m_toolbar->addAction(m_effectWidget->getVisibilityAction());
         videoBox->layout()->addWidget(m_effectWidget);
         m_effectWidget->hide();
@@ -987,40 +987,43 @@ void Monitor::slotSetSelectedClip(Transition* item)
 }
 
 
-void Monitor::slotShowEffectScene(bool show)
+void Monitor::slotShowEffectScene(bool show, bool manuallyTriggered)
 {
     if (m_id == Kdenlive::projectMonitor) {
-       if (!m_effectWidget->getVisibilityAction()->isChecked()) show = false;
-       if (m_effectWidget->isVisible() == show) return;
-       setUpdatesEnabled(false);
-       if (show) {
-           if (videoSurface) {
-               videoSurface->setVisible(!show);
-               // Preview is handeled internally through the Render::showFrame method
-               render->disablePreview(show);
-           } else {
+        if (!m_effectWidget->getVisibilityAction()->isChecked())
+            show = false;
+        if (m_effectWidget->isVisible() == show)
+            return;
+        setUpdatesEnabled(false);
+        if (show) {
+            if (videoSurface) {
+                videoSurface->setVisible(false);
+                // Preview is handeled internally through the Render::showFrame method
+                render->disablePreview(true);
 #ifdef USE_OPENGL
-               m_glWidget->setVisible(!show);
+            } else {
+                m_glWidget->setVisible(false);
 #endif
-           }
-           m_effectWidget->setVisible(show);
+            }
+            m_effectWidget->setVisible(true);
             m_effectWidget->getScene()->slotZoomFit();
-           emit requestFrameForAnalysis(show);
-       }
-       else {      
-           m_effectWidget->setVisible(show);
-           emit requestFrameForAnalysis(show);
-           if (videoSurface) {
-               videoSurface->setVisible(!show);
-               // Preview is handeled internally through the Render::showFrame method
-               render->disablePreview(show);
-           } else {
+            emit requestFrameForAnalysis(true);
+        } else {    
+            m_effectWidget->setVisible(false);
+            emit requestFrameForAnalysis(false);
+            if (videoSurface) {
+                videoSurface->setVisible(true);
+                // Preview is handeled internally through the Render::showFrame method
+                render->disablePreview(false);
+            
 #ifdef USE_OPENGL
-               m_glWidget->setVisible(!show);
+            } else {
+                m_glWidget->setVisible(true);
 #endif
-           }
-       }
-       m_effectWidget->showVisibilityButton(show);
+            }
+        }
+        if (!manuallyTriggered)
+            m_effectWidget->showVisibilityButton(show);
         setUpdatesEnabled(true);
         videoBox->setEnabled(show);
         //render->doRefresh();
index d7e1380c75785fb814e6d44a963196b798c53cda..1ae380f8b1b9534c28f3159cee5e1b00ea19e6c2 100644 (file)
@@ -201,7 +201,7 @@ public slots:
     void setTimePos(const QString &pos);
     QStringList getZoneInfo() const;
     /** @brief Display the on monitor effect scene (to adjust geometry over monitor). */
-    void slotShowEffectScene(bool show = true);
+    void slotShowEffectScene(bool show = true, bool manuallyTriggered = false);
     bool effectSceneDisplayed();
 
     /** @brief Sets m_selectedClip to @param item. Used for looping it. */
index 4b52c41493fbde30b2299923b4cad2bb6d4e0489..a5479d91b60bff01965e12752fb68e2222f3aa2f 100644 (file)
@@ -70,7 +70,7 @@ private:
 
 signals:
     /** true = show edit monitor, false = show normal monitor */
-    void showEdit(bool show);
+    void showEdit(bool show, bool manuallyTriggered = true);
 };