]> git.sesse.net Git - kdenlive/commitdiff
Fix issue with monitor switching
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 4 Feb 2010 10:12:52 +0000 (10:12 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 4 Feb 2010 10:12:52 +0000 (10:12 +0000)
svn path=/trunk/kdenlive/; revision=4291

src/mainwindow.cpp
src/monitor.cpp
src/monitormanager.cpp
src/monitormanager.h

index 408681daea3e8c91556e2f0ce5fca4e76c5b65de..ba410be36966df118b4b98a01ea1b6e7ac3fb806 100644 (file)
@@ -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();
 }
index 0bf6bc3e1efab46d2b1c87daf75942b3bb6c8a44..912df46e763d7807ecef0a5888d3e2ba6f2b0977 100644 (file)
@@ -509,7 +509,7 @@ bool Monitor::isActive() const
 void Monitor::activateMonitor()
 {
     if (!m_isActive) {
-        m_monitorManager->slotSwitchMonitors();
+        m_monitorManager->slotSwitchMonitors(m_name == "clip");
     }
 }
 
index fbb506dabb4bc53ddb51526adc22041606253738..d76355a864b8296e8374c1ee7e9b031ea7a40a5a 100644 (file)
@@ -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();
index 7a7a42f090b611e96efd0dfbb2651a55d5ba17ec..80717eb461641d21b32502d23f59b2f4be674330 100644 (file)
@@ -51,7 +51,7 @@ public slots:
     void slotStart();
     void slotEnd();
     void slotResetProfiles();
-    void slotSwitchMonitors();
+    void slotSwitchMonitors(bool activateClip);
 
 private:
     Monitor *m_clipMonitor;