diff --git a/src/monitor/glwidget.cpp b/src/monitor/glwidget.cpp index a6a76188e501e7dbdd78e58fb7660d83f7c3ac40..c809a6990fd87e1be705f18841b4b472264aea2b 100644 --- a/src/monitor/glwidget.cpp +++ b/src/monitor/glwidget.cpp @@ -130,7 +130,7 @@ GLWidget::GLWidget(int id, QObject *parent) m_blackClip->set("out", 3); connect(&m_refreshTimer, &QTimer::timeout, this, &GLWidget::refresh); m_producer = m_blackClip; - + rootContext()->setContextProperty("markersModel", 0); if (!initGPUAccel()) { disableGPUAccel(); } @@ -956,6 +956,8 @@ int GLWidget::setProducer(const std::shared_ptr &producer, bool i removeAudioOverlay(); } m_producer = m_blackClip; + // Reset markersModel + rootContext()->setContextProperty("markersModel", 0); } // redundant check. postcondition of above is m_producer != null if (m_producer) { diff --git a/src/monitor/monitor.cpp b/src/monitor/monitor.cpp index 65705bf38e555320c2a2c7fff52dfc0497fc34a5..9e6a8440d4f9d7a13ad3379db88e9aedc7b1e9f1 100644 --- a/src/monitor/monitor.cpp +++ b/src/monitor/monitor.cpp @@ -1353,7 +1353,6 @@ void Monitor::slotOpenClip(const std::shared_ptr &controller, int i disconnect(m_controller->getMarkerModel().get(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)), this, SLOT(checkOverlay())); } m_controller = controller; - loadQmlScene(MonitorSceneDefault); m_snaps.reset(new SnapModel()); m_glMonitor->getControllerProxy()->resetZone(); if (controller) { @@ -1367,6 +1366,7 @@ void Monitor::slotOpenClip(const std::shared_ptr &controller, int i return; } m_glMonitor->setRulerInfo((int)m_controller->frameDuration(), controller->getMarkerModel()); + loadQmlScene(MonitorSceneDefault); m_timePos->setRange(0, (int)m_controller->frameDuration()); updateMarkers(); connect(m_glMonitor->getControllerProxy(), &MonitorProxy::addSnap, this, &Monitor::addSnapPoint, Qt::DirectConnection); @@ -1389,6 +1389,7 @@ void Monitor::slotOpenClip(const std::shared_ptr &controller, int i m_glMonitor->getControllerProxy()->setClipHasAV(controller->hasAudioAndVideo()); // hasEffects = controller->hasEffects(); } else { + loadQmlScene(MonitorSceneDefault); m_glMonitor->setProducer(nullptr, isActive()); m_glMonitor->setAudioThumb(); m_audioMeterWidget->audioChannels = 0; diff --git a/src/monitor/qmlmanager.cpp b/src/monitor/qmlmanager.cpp index 803f8f952b6b5216d660f2e29aa8131d3e15d1d9..2aa3ad8db2ccfaf2a55831a555158d0ad8d653c5 100644 --- a/src/monitor/qmlmanager.cpp +++ b/src/monitor/qmlmanager.cpp @@ -62,6 +62,8 @@ void QmlManager::setScene(Kdenlive::MonitorId id, MonitorSceneType type, QSize p } m_sceneType = type; QQuickItem *root = nullptr; + const QFont ft = QFontDatabase::systemFont(QFontDatabase::FixedFont); + m_view->rootContext()->setContextProperty("fixedFont", ft); switch (type) { case MonitorSceneGeometry: m_view->setSource(QUrl(QStringLiteral("qrc:/qml/kdenlivemonitoreffectscene.qml"))); @@ -117,8 +119,6 @@ void QmlManager::setScene(Kdenlive::MonitorId id, MonitorSceneType type, QSize p if (root && duration > 0) { root->setProperty("duration", duration); } - const QFont ft = QFontDatabase::systemFont(QFontDatabase::FixedFont); - m_view->rootContext()->setContextProperty("fixedFont", ft); } void QmlManager::effectRectChanged()