aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/qmldesignerprojectmanager.cpp')
-rw-r--r--src/plugins/qmldesigner/qmldesignerprojectmanager.cpp28
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]() {