X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmonitormanager.cpp;h=8788f385f335f8e3adb595aae1fc92966c712410;hb=7caecc149e65907e4a57c8115c7cac12042e9308;hp=3cad95b4e229bac35a37859efef29934323e2a6f;hpb=7c5f778451bd87db882905afb0dd680aabc36400;p=kdenlive diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index 3cad95b4..8788f385 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -26,12 +26,6 @@ MonitorManager::MonitorManager(QWidget *parent) : QObject(parent) { - - -} - -void MonitorManager::setTimecode(Timecode tc) { - m_timecode = tc; } Timecode MonitorManager::timecode() { @@ -43,7 +37,6 @@ void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor) m_projectMonitor = projectMonitor; } - void MonitorManager::activateMonitor(QString name) { if (m_activeMonitor == name) return; if (name == "clip") { @@ -59,14 +52,92 @@ void MonitorManager::activateMonitor(QString name) { m_activeMonitor = name; } +void MonitorManager::switchMonitors() { + if (m_clipMonitor->isActive()) { + m_clipMonitor->stop(); + m_projectMonitor->start(); + m_projectMonitor->raise(); + m_activeMonitor = m_projectMonitor->name(); + emit raiseClipMonitor(false); + } else { + m_projectMonitor->stop(); + m_clipMonitor->start(); + m_activeMonitor = m_clipMonitor->name(); + emit raiseClipMonitor(true); + } +} + +void MonitorManager::stopActiveMonitor() { + if (m_clipMonitor->isActive()) m_clipMonitor->pause(); + else m_projectMonitor->pause(); +} + void MonitorManager::slotPlay() { - if (m_activeMonitor == "clip") m_clipMonitor->slotPlay(); + if (m_clipMonitor->isActive()) m_clipMonitor->slotPlay(); else m_projectMonitor->slotPlay(); } -void MonitorManager::resetProfiles(QString prof) { - //m_clipMonitor->resetProfile(prof); - m_projectMonitor->resetProfile(prof); +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_clipMonitor->isActive()) m_clipMonitor->slotForward(speed); + else m_projectMonitor->slotForward(speed); +} + +void MonitorManager::slotRewindOneFrame() { + if (m_clipMonitor->isActive()) m_clipMonitor->slotRewindOneFrame(); + else m_projectMonitor->slotRewindOneFrame(); +} + +void MonitorManager::slotForwardOneFrame() { + if (m_clipMonitor->isActive()) m_clipMonitor->slotForwardOneFrame(); + else m_projectMonitor->slotForwardOneFrame(); +} + +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_clipMonitor->isActive()) m_clipMonitor->slotEnd(); + else m_projectMonitor->slotEnd(); +} + +void MonitorManager::resetProfiles(Timecode tc) { + m_timecode = tc; + slotResetProfiles(); +} + +void MonitorManager::slotResetProfiles() { + activateMonitor("clip"); + m_clipMonitor->resetProfile(); + activateMonitor("project"); + m_projectMonitor->resetProfile(); + //m_projectMonitor->refreshMonitor(true); } #include "monitormanager.moc"