]> git.sesse.net Git - kdenlive/blobdiff - src/monitor.cpp
Merge branch 'audioAlign'
[kdenlive] / src / monitor.cpp
index 3a69d0f7e13926566876ab9f1aa7fe5a303c0504..18555e1ba54df7d6fa15b22bb5690d3e31bccc85 100644 (file)
@@ -187,6 +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)));
         m_toolbar->addAction(m_effectWidget->getVisibilityAction());
         videoBox->layout()->addWidget(m_effectWidget);
         m_effectWidget->hide();
@@ -986,24 +987,43 @@ void Monitor::slotSetSelectedClip(Transition* item)
 }
 
 
-void Monitor::slotEffectScene(bool show)
+void Monitor::slotShowEffectScene(bool show)
 {
     if (m_id == Kdenlive::projectMonitor) {
-        if (videoSurface) {
-            videoSurface->setVisible(!show);
-        } else {
+       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 {
 #ifdef USE_OPENGL
-            m_glWidget->setVisible(!show);
+               m_glWidget->setVisible(!show);
 #endif
-        }
-        m_effectWidget->setVisible(show);
-        m_effectWidget->getVisibilityAction()->setChecked(show);
-        emit requestFrameForAnalysis(show);
-        if (show) {
+           }
+           m_effectWidget->setVisible(show);
             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 {
+#ifdef USE_OPENGL
+               m_glWidget->setVisible(!show);
+#endif
+           }
+       }
+       m_effectWidget->showVisibilityButton(show);
+        setUpdatesEnabled(true);
         videoBox->setEnabled(show);
-        render->doRefresh();
+        //render->doRefresh();
     }
 }
 
@@ -1051,6 +1071,12 @@ void Monitor::reloadProducer(const QString &id)
         slotSetClipProducer(m_currentClip, m_currentClip->zone(), true);
 }
 
+void Monitor::setPalette ( const QPalette & p)
+{
+    QWidget::setPalette(p);
+    if (m_ruler) m_ruler->updatePalette();
+    
+}
 
 Overlay::Overlay(QWidget* parent) :
     QLabel(parent)