X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmonitormanager.cpp;h=9a94f2379d8a2a3c213c813658bea3a1c4370a55;hb=cabe5babbc054d37e135c04a3e1ecb7252793f5e;hp=35c48917c9ac81ba77a94b2f9b889441f1695b9c;hpb=14f569ce3fd9ef0783e7355de459984c9a977163;p=kdenlive diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index 35c48917..9a94f237 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -18,35 +18,33 @@ ***************************************************************************/ -#include -#include - #include "monitormanager.h" +#include "kdenlivesettings.h" + #include -MonitorManager::MonitorManager(QWidget *parent) - : QObject(parent) { -} +#include +#include -void MonitorManager::setTimecode(Timecode tc) { - m_timecode = tc; + +MonitorManager::MonitorManager(QWidget *parent) : + QObject(parent) +{ } -Timecode MonitorManager::timecode() { +Timecode MonitorManager::timecode() +{ return m_timecode; } -void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor) { +void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor) +{ m_clipMonitor = clipMonitor; m_projectMonitor = projectMonitor; } -bool MonitorManager::projectMonitorFocused() { - if (m_activeMonitor != "clip") return true; - return false; -} - -void MonitorManager::activateMonitor(QString name) { +void MonitorManager::activateMonitor(QString name) +{ if (m_activeMonitor == name) return; if (name == "clip") { m_projectMonitor->stop(); @@ -61,8 +59,9 @@ void MonitorManager::activateMonitor(QString name) { m_activeMonitor = name; } -void MonitorManager::switchMonitors() { - if (m_activeMonitor == "clip") { +void MonitorManager::switchMonitors() +{ + if (m_clipMonitor->isActive()) { m_clipMonitor->stop(); m_projectMonitor->start(); m_projectMonitor->raise(); @@ -76,44 +75,91 @@ void MonitorManager::switchMonitors() { } } -void MonitorManager::slotPlay() { - if (m_activeMonitor == "clip") m_clipMonitor->slotPlay(); +void MonitorManager::stopActiveMonitor() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->pause(); + else m_projectMonitor->pause(); +} + +void MonitorManager::slotPlay() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotPlay(); else m_projectMonitor->slotPlay(); } -void MonitorManager::slotRewind(double speed) { - if (m_activeMonitor == "clip") m_clipMonitor->slotRewind(speed); +void MonitorManager::slotPlayZone() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotPlayZone(); + else m_projectMonitor->slotPlayZone(); +} + +void MonitorManager::slotLoopZone() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotLoopZone(); + else m_projectMonitor->slotLoopZone(); +} + +void MonitorManager::slotRewind(double speed) +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotRewind(speed); else m_projectMonitor->slotRewind(speed); } -void MonitorManager::slotForward(double speed) { - if (m_activeMonitor == "clip") m_clipMonitor->slotForward(speed); +void MonitorManager::slotForward(double speed) +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotForward(speed); else m_projectMonitor->slotForward(speed); } -void MonitorManager::slotRewindOneFrame() { - if (m_activeMonitor == "clip") m_clipMonitor->slotRewindOneFrame(); +void MonitorManager::slotRewindOneFrame() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotRewindOneFrame(); else m_projectMonitor->slotRewindOneFrame(); } -void MonitorManager::slotForwardOneFrame() { - if (m_activeMonitor == "clip") m_clipMonitor->slotForwardOneFrame(); +void MonitorManager::slotForwardOneFrame() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotForwardOneFrame(); else m_projectMonitor->slotForwardOneFrame(); } -void MonitorManager::slotStart() { - if (m_activeMonitor == "clip") m_clipMonitor->slotStart(); +void MonitorManager::slotRewindOneSecond() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotRewindOneFrame(m_timecode.fps()); + else m_projectMonitor->slotRewindOneFrame(m_timecode.fps()); +} + +void MonitorManager::slotForwardOneSecond() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotForwardOneFrame(m_timecode.fps()); + else m_projectMonitor->slotForwardOneFrame(m_timecode.fps()); +} + +void MonitorManager::slotStart() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotStart(); else m_projectMonitor->slotStart(); } -void MonitorManager::slotEnd() { - if (m_activeMonitor == "clip") m_clipMonitor->slotEnd(); +void MonitorManager::slotEnd() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->slotEnd(); else m_projectMonitor->slotEnd(); } -void MonitorManager::resetProfiles(QString prof) { - m_clipMonitor->resetProfile(prof); - m_projectMonitor->resetProfile(prof); +void MonitorManager::resetProfiles(Timecode tc) +{ + m_timecode = tc; + QTimer::singleShot(300, this, SLOT(slotResetProfiles())); +} + +void MonitorManager::slotResetProfiles() +{ + activateMonitor("clip"); + m_clipMonitor->resetProfile(); + activateMonitor("project"); + m_projectMonitor->resetProfile(); + //m_projectMonitor->refreshMonitor(true); } #include "monitormanager.moc"