From: <j-...@us...> - 2011-10-24 01:26:07
|
Revision: 5984 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=5984&view=rev Author: j-b-m Date: 2011-10-24 01:26:01 +0000 (Mon, 24 Oct 2011) Log Message: ----------- Do not uselessly switch monitors at startup Modified Paths: -------------- trunk/kdenlive/src/monitormanager.cpp trunk/kdenlive/src/monitormanager.h trunk/kdenlive/src/renderer.cpp trunk/kdenlive/src/renderer.h Modified: trunk/kdenlive/src/monitormanager.cpp =================================================================== --- trunk/kdenlive/src/monitormanager.cpp 2011-10-23 22:14:50 UTC (rev 5983) +++ trunk/kdenlive/src/monitormanager.cpp 2011-10-24 01:26:01 UTC (rev 5984) @@ -26,14 +26,13 @@ #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) { } @@ -65,7 +64,7 @@ void MonitorManager::activateMonitor(QString 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; @@ -98,7 +97,6 @@ void MonitorManager::stopActiveMonitor() { - if (m_blocked) return; if (m_activeMonitor == m_clipMonitor) m_clipMonitor->pause(); else m_projectMonitor->pause(); } @@ -176,7 +174,6 @@ void MonitorManager::resetProfiles(Timecode tc) { - if (m_blocked) return; m_timecode = tc; slotResetProfiles(); //QTimer::singleShot(300, this, SLOT(slotResetProfiles())); @@ -184,20 +181,22 @@ 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); - m_activeMonitor->parentWidget()->raise(); + if (m_activeMonitor) m_activeMonitor->parentWidget()->raise(); emit checkColorScopes(); } Modified: trunk/kdenlive/src/monitormanager.h =================================================================== --- trunk/kdenlive/src/monitormanager.h 2011-10-23 22:14:50 UTC (rev 5983) +++ trunk/kdenlive/src/monitormanager.h 2011-10-24 01:26:01 UTC (rev 5984) @@ -76,7 +76,6 @@ Monitor *m_projectMonitor; Timecode m_timecode; AbstractMonitor *m_activeMonitor; - bool m_blocked; QList <AbstractMonitor *>m_monitorsList; signals: Modified: trunk/kdenlive/src/renderer.cpp =================================================================== --- trunk/kdenlive/src/renderer.cpp 2011-10-23 22:14:50 UTC (rev 5983) +++ trunk/kdenlive/src/renderer.cpp 2011-10-24 01:26:01 UTC (rev 5984) @@ -288,10 +288,13 @@ return clip; } +bool Render::hasProfile(const QString &profileName) const +{ + return m_activeProfile == profileName; +} + int Render::resetProfile(const QString &profileName, bool dropSceneList) { - QString scene; - if (!dropSceneList) scene = sceneList(); if (m_mltConsumer) { if (m_externalConsumer == KdenliveSettings::external_display()) { if (KdenliveSettings::external_display() && m_activeProfile == profileName) return 1; @@ -312,6 +315,8 @@ delete m_mltConsumer; m_mltConsumer = NULL; } + QString scene; + if (!dropSceneList) scene = sceneList(); int pos = 0; double current_fps = m_mltProfile->fps(); double current_dar = m_mltProfile->dar(); Modified: trunk/kdenlive/src/renderer.h =================================================================== --- trunk/kdenlive/src/renderer.h 2011-10-23 22:14:50 UTC (rev 5983) +++ trunk/kdenlive/src/renderer.h 2011-10-24 01:26:01 UTC (rev 5984) @@ -179,8 +179,11 @@ /** @brief Change the Mlt PROFILE * @param profileName The MLT profile name * @param dropSceneList If true, the current playlist will be deleted + * @return true if the profile was changed * . */ int resetProfile(const QString& profileName, bool dropSceneList = false); + /** @brief Returns true if the render uses profileName as current profile. */ + bool hasProfile(const QString& profileName) const; double fps() const; /** @brief Returns the width of a frame for this profile. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |