#include <QObject>
#include <QTimer>
-
+#include <KDebug>
MonitorManager::MonitorManager(QWidget *parent) :
QObject(parent),
m_clipMonitor(NULL),
m_projectMonitor(NULL),
- m_activeMonitor(NULL),
- m_blocked(false)
+ m_activeMonitor(NULL)
{
}
m_monitorsList.append(clipMonitor);
m_monitorsList.append(projectMonitor);
- m_monitorsList.append(recMonitor);
+ if (recMonitor)
+ m_monitorsList.append(recMonitor);
}
void MonitorManager::appendMonitor(AbstractMonitor *monitor)
void MonitorManager::activateMonitor(QString name)
{
- kDebug()<<"//ACTIVATING MON: "<<name;
- if (m_blocked || m_clipMonitor == NULL || m_projectMonitor == NULL)
+ if (m_clipMonitor == NULL || m_projectMonitor == NULL)
return;
if (m_activeMonitor && m_activeMonitor->name() == name)
return;
m_activeMonitor = NULL;
for (int i = 0; i < m_monitorsList.count(); i++) {
- kDebug()<<"PARSING: "<<m_monitorsList.at(i)->name();
if (m_monitorsList.at(i)->name() == name) {
m_activeMonitor = m_monitorsList.at(i);
- emit raiseMonitor(m_activeMonitor);
}
else m_monitorsList.at(i)->stop();
}
- if (m_activeMonitor) m_activeMonitor->start();
+ if (m_activeMonitor) {
+ m_activeMonitor->parentWidget()->raise();
+ m_activeMonitor->start();
+ }
emit checkColorScopes();
}
-bool MonitorManager::isActive(const QString name) const
+bool MonitorManager::isActive(const QString &name) const
{
return m_activeMonitor ? m_activeMonitor->name() == name: false;
}
void MonitorManager::stopActiveMonitor()
{
- if (m_blocked) return;
if (m_activeMonitor == m_clipMonitor) m_clipMonitor->pause();
else m_projectMonitor->pause();
}
void MonitorManager::resetProfiles(Timecode tc)
{
- if (m_blocked) return;
m_timecode = tc;
slotResetProfiles();
//QTimer::singleShot(300, this, SLOT(slotResetProfiles()));
void MonitorManager::slotResetProfiles()
{
- if (m_blocked) return;
if (m_projectMonitor == NULL || m_clipMonitor == NULL) return;
+ blockSignals(true);
QString active = m_activeMonitor ? m_activeMonitor->name() : QString();
- activateMonitor("clip");
- m_clipMonitor->resetProfile(KdenliveSettings::current_profile());
- m_clipMonitor->updateTimecodeFormat();
- activateMonitor("project");
- m_projectMonitor->resetProfile(KdenliveSettings::current_profile());
- m_projectMonitor->updateTimecodeFormat();
- //m_projectMonitor->refreshMonitor(true);
+ if (!m_clipMonitor->render->hasProfile(KdenliveSettings::current_profile())) {
+ activateMonitor("clip");
+ m_clipMonitor->resetProfile(KdenliveSettings::current_profile());
+ m_clipMonitor->updateTimecodeFormat();
+ }
+ if (!m_projectMonitor->render->hasProfile(KdenliveSettings::current_profile())) {
+ activateMonitor("project");
+ m_projectMonitor->resetProfile(KdenliveSettings::current_profile());
+ m_projectMonitor->updateTimecodeFormat();
+ }
if (!active.isEmpty()) activateMonitor(active);
+ blockSignals(false);
+ if (m_activeMonitor) m_activeMonitor->parentWidget()->raise();
+ emit checkColorScopes();
}
void MonitorManager::slotRefreshCurrentMonitor()
}
}
+void MonitorManager::clearScopeSource()
+{
+ emit clearScopes();
+}
+
void MonitorManager::updateScopeSource()
{
emit checkColorScopes();
AbstractRender *MonitorManager::activeRenderer()
{
- if (m_activeMonitor) return m_activeMonitor->abstractRender();
+ if (m_activeMonitor) {
+ return m_activeMonitor->abstractRender();
+ }
return NULL;
}