X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmonitormanager.cpp;h=35ad43d85aa1c8456dab93df94e410649fb6ea33;hb=c3302003093710ee247ad84c0fe2ef3c579d417f;hp=178ffc1d1aec12e4cf3724bcbef75bde06284cc1;hpb=3b176bab2ad91159c0a4a7dbe5f278f646115218;p=kdenlive diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index 178ffc1d..35ad43d8 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -21,6 +21,7 @@ #include "monitormanager.h" #include "renderer.h" #include "kdenlivesettings.h" +#include "kdenlivedoc.h" #include @@ -31,21 +32,30 @@ MonitorManager::MonitorManager(QWidget *parent) : QObject(parent), + m_document(NULL), m_clipMonitor(NULL), m_projectMonitor(NULL), m_activeMonitor(NULL) { } -Timecode MonitorManager::timecode() +Timecode MonitorManager::timecode() const { return m_timecode; } +void MonitorManager::setDocument(KdenliveDoc *doc) +{ + m_document = doc; +} + void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor, RecMonitor *recMonitor) { m_clipMonitor = clipMonitor; m_projectMonitor = projectMonitor; + + connect(m_clipMonitor->render, SIGNAL(activateMonitor(Kdenlive::MONITORID)), this, SLOT(activateMonitor(Kdenlive::MONITORID))); + connect(m_projectMonitor->render, SIGNAL(activateMonitor(Kdenlive::MONITORID)), this, SLOT(activateMonitor(Kdenlive::MONITORID))); m_monitorsList.append(clipMonitor); m_monitorsList.append(projectMonitor); @@ -66,14 +76,20 @@ void MonitorManager::removeMonitor(AbstractMonitor *monitor) AbstractMonitor* MonitorManager::monitor(Kdenlive::MONITORID monitorName) { AbstractMonitor *monitor = NULL; - for (int i = 0; i < m_monitorsList.size(); i++) { + for (int i = 0; i < m_monitorsList.size(); ++i) { if (m_monitorsList[i]->id() == monitorName) { - monitor = m_monitorsList[i]; + monitor = m_monitorsList.at(i); } } return monitor; } +void MonitorManager::setConsumerProperty(const QString &name, const QString &value) +{ + if (m_clipMonitor) m_clipMonitor->render->setConsumerProperty(name, value); + if (m_projectMonitor) m_projectMonitor->render->setConsumerProperty(name, value); +} + bool MonitorManager::activateMonitor(Kdenlive::MONITORID name, bool forceRefresh) { if (m_clipMonitor == NULL || m_projectMonitor == NULL) @@ -83,7 +99,7 @@ bool MonitorManager::activateMonitor(Kdenlive::MONITORID name, bool forceRefresh return false; } m_activeMonitor = NULL; - for (int i = 0; i < m_monitorsList.count(); i++) { + for (int i = 0; i < m_monitorsList.count(); ++i) { if (m_monitorsList.at(i)->id() == name) { m_activeMonitor = m_monitorsList.at(i); } @@ -92,8 +108,9 @@ bool MonitorManager::activateMonitor(Kdenlive::MONITORID name, bool forceRefresh if (m_activeMonitor) { m_activeMonitor->blockSignals(true); m_activeMonitor->parentWidget()->raise(); + m_activeMonitor->blockSignals(false); m_activeMonitor->start(); - m_activeMonitor->blockSignals(false); + } emit checkColorScopes(); return (m_activeMonitor != NULL); @@ -188,7 +205,7 @@ void MonitorManager::slotEnd() else if (m_activeMonitor == m_projectMonitor) m_projectMonitor->slotEnd(); } -void MonitorManager::resetProfiles(Timecode tc) +void MonitorManager::resetProfiles(const Timecode &tc) { m_timecode = tc; slotResetProfiles(); @@ -197,7 +214,9 @@ void MonitorManager::resetProfiles(Timecode tc) void MonitorManager::slotResetProfiles() { - if (m_projectMonitor == NULL || m_clipMonitor == NULL) return; + if (m_projectMonitor == NULL || m_clipMonitor == NULL) { + return; + } blockSignals(true); Kdenlive::MONITORID active = m_activeMonitor ? m_activeMonitor->id() : Kdenlive::noMonitor; m_clipMonitor->resetProfile(KdenliveSettings::current_profile()); @@ -225,7 +244,7 @@ void MonitorManager::slotUpdateAudioMonitoring() if (m_projectMonitor) { m_projectMonitor->render->analyseAudio = KdenliveSettings::monitor_audio(); }*/ - for (int i = 0; i < m_monitorsList.count(); i++) { + for (int i = 0; i < m_monitorsList.count(); ++i) { if (m_monitorsList.at(i)->abstractRender()) m_monitorsList.at(i)->abstractRender()->analyseAudio = KdenliveSettings::monitor_audio(); } } @@ -253,4 +272,14 @@ void MonitorManager::slotSwitchFullscreen() if (m_activeMonitor) m_activeMonitor->slotSwitchFullScreen(); } +QString MonitorManager::getProjectFolder() const +{ + if (m_document == NULL) { + kDebug()<<" + + +NULL DOC!!"; + return QString(); + } + return m_document->projectFolder().path(KUrl::AddTrailingSlash); +} + + #include "monitormanager.moc"