QmlDesigner: Render state previews for StateGroup

Render previews for all state groups in the document.

Change-Id: I89d9c43a53eb3d9844b863278395fd9098a07772
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Thomas Hartmann
2022-08-23 17:33:25 +02:00
parent 8e65e2815c
commit ae872359d0

View File

@@ -77,13 +77,23 @@ void Qt5PreviewNodeInstanceServer::collectItemChangesAndSendChangeCommands()
QVector<ImageContainer> imageContainerVector;
imageContainerVector.append(ImageContainer(0, renderPreviewImage(), -1));
foreach (ServerNodeInstance instance, rootNodeInstance().stateInstances()) {
instance.activateState();
QImage previewImage = renderPreviewImage();
if (!previewImage.isNull())
imageContainerVector.append(ImageContainer(instance.instanceId(), renderPreviewImage(), instance.instanceId()));
instance.deactivateState();
}
QList<ServerNodeInstance> stateInstances = rootNodeInstance().stateInstances();
const QList<ServerNodeInstance> groupInstances = allGroupStateInstances();
for (ServerNodeInstance instance : groupInstances) {
stateInstances.append(instance.stateInstances());
}
for (ServerNodeInstance instance : qAsConst(stateInstances)) {
instance.activateState();
QImage previewImage = renderPreviewImage();
if (!previewImage.isNull())
imageContainerVector.append(ImageContainer(instance.instanceId(),
renderPreviewImage(),
instance.instanceId()));
instance.deactivateState();
}
nodeInstanceClient()->statePreviewImagesChanged(
StatePreviewImageChangedCommand(imageContainerVector));