From 6f98c44def0beef90913ef4f062f539aa7bb1743 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Thu, 4 Feb 2010 10:12:52 +0000 Subject: [PATCH] Fix issue with monitor switching svn path=/trunk/kdenlive/; revision=4291 --- src/mainwindow.cpp | 3 ++- src/monitor.cpp | 2 +- src/monitormanager.cpp | 6 +++--- src/monitormanager.h | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 408681da..ba410be3 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1470,6 +1470,7 @@ void MainWindow::newFile(bool showProjectSettings, bool force) connectDocumentInfo(doc); connectDocument(trackView, doc); } else m_timelineArea->setTabBarHidden(false); + m_monitorManager->activateMonitor("clip"); m_closeAction->setEnabled(m_timelineArea->count() > 1); } @@ -3267,7 +3268,7 @@ QPixmap MainWindow::createSchemePreviewIcon(const KSharedConfigPtr &config) void MainWindow::slotSwitchMonitors() { - m_monitorManager->slotSwitchMonitors(); + m_monitorManager->slotSwitchMonitors(m_clipMonitor->isActive()); if (m_projectMonitor->isActive()) m_activeTimeline->projectView()->setFocus(); else m_projectList->focusTree(); } diff --git a/src/monitor.cpp b/src/monitor.cpp index 0bf6bc3e..912df46e 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -509,7 +509,7 @@ bool Monitor::isActive() const void Monitor::activateMonitor() { if (!m_isActive) { - m_monitorManager->slotSwitchMonitors(); + m_monitorManager->slotSwitchMonitors(m_name == "clip"); } } diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index fbb506da..d76355a8 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -62,15 +62,15 @@ void MonitorManager::activateMonitor(QString name) m_activeMonitor = name; } -void MonitorManager::slotSwitchMonitors() +void MonitorManager::slotSwitchMonitors(bool activateClip) { if (m_blocked || m_clipMonitor == NULL) return; - if (m_clipMonitor->isActive()) { + if (!activateClip && m_clipMonitor->isActive()) { m_clipMonitor->stop(); m_projectMonitor->start(); m_activeMonitor = m_projectMonitor->name(); emit raiseClipMonitor(false); - } else { + } else if (activateClip && m_projectMonitor->isActive()){ m_projectMonitor->stop(); m_clipMonitor->start(); m_activeMonitor = m_clipMonitor->name(); diff --git a/src/monitormanager.h b/src/monitormanager.h index 7a7a42f0..80717eb4 100644 --- a/src/monitormanager.h +++ b/src/monitormanager.h @@ -51,7 +51,7 @@ public slots: void slotStart(); void slotEnd(); void slotResetProfiles(); - void slotSwitchMonitors(); + void slotSwitchMonitors(bool activateClip); private: Monitor *m_clipMonitor; -- 2.39.2