From: Till Theato Date: Sun, 29 Apr 2012 22:48:04 +0000 (+0200) Subject: Fix manually turning off the monitor scene causes the button to do so to be hidden... X-Git-Url: https://git.sesse.net/?p=kdenlive;a=commitdiff_plain;h=caa4bf968380c770beec66fbf879683c060442f8 Fix manually turning off the monitor scene causes the button to do so to be hidden too. --- diff --git a/src/monitor.cpp b/src/monitor.cpp index 18555e1b..aebf23cd 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -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(); diff --git a/src/monitor.h b/src/monitor.h index d7e1380c..1ae380f8 100644 --- a/src/monitor.h +++ b/src/monitor.h @@ -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. */ diff --git a/src/monitoreditwidget.h b/src/monitoreditwidget.h index 4b52c414..a5479d91 100644 --- a/src/monitoreditwidget.h +++ b/src/monitoreditwidget.h @@ -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); };