diff options
Diffstat (limited to 'src/plugins/qmldesigner/qmldesignerprojectmanager.cpp')
-rw-r--r-- | src/plugins/qmldesigner/qmldesignerprojectmanager.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 366f1ef04e..95ad8eff6a 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -138,7 +138,7 @@ public: ImageCacheCollector collector{connectionManager, QSize{300, 300}, QSize{1000, 1000}, - ImageCacheCollectorNullImageHandling::DontCaptureNullImage}; + ImageCacheCollectorNullImageHandling::CaptureNullImage}; PreviewTimeStampProvider timeStampProvider; AsynchronousImageFactory factory; QPointer<::ProjectExplorer::Target> activeTarget; @@ -167,6 +167,11 @@ QmlDesignerProjectManager::QmlDesignerProjectManager() QObject::connect(sessionManager, &::ProjectExplorer::SessionManager::projectRemoved, [&](auto *project) { projectRemoved(project); }); + + QObject::connect(&m_previewTimer, + &QTimer::timeout, + this, + &QmlDesignerProjectManager::generatePreview); } QmlDesignerProjectManager::~QmlDesignerProjectManager() = default; @@ -196,13 +201,8 @@ void QmlDesignerProjectManager::currentEditorChanged(::Core::IEditor *) if (!m_projectData || !m_projectData->activeTarget) return; - ::QmlProjectManager::QmlBuildSystem *qmlBuildSystem = getQmlBuildSystem( - m_projectData->activeTarget); + m_previewTimer.start(10000); - if (qmlBuildSystem) { - m_projectData->collector.setTarget(m_projectData->activeTarget); - m_projectData->factory.generate(qmlBuildSystem->mainFilePath().toString().toUtf8()); - } } void QmlDesignerProjectManager::editorsClosed(const QList<::Core::IEditor *> &) {} @@ -221,6 +221,20 @@ void QmlDesignerProjectManager::aboutToRemoveProject(::ProjectExplorer::Project void QmlDesignerProjectManager::projectRemoved(::ProjectExplorer::Project *) {} +void QmlDesignerProjectManager::generatePreview() +{ + if (!m_projectData || !m_projectData->activeTarget) + return; + + ::QmlProjectManager::QmlBuildSystem *qmlBuildSystem = getQmlBuildSystem( + m_projectData->activeTarget); + + if (qmlBuildSystem) { + m_projectData->collector.setTarget(m_projectData->activeTarget); + m_projectData->factory.generate(qmlBuildSystem->mainFilePath().toString().toUtf8()); + } +} + QmlDesignerProjectManager::ImageCacheData *QmlDesignerProjectManager::imageCacheData() { std::call_once(imageCacheFlag, [this]() { |