From ae872359d00d746eaaa307c4d249ea271463f543 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 23 Aug 2022 17:33:25 +0200 Subject: [PATCH] QmlDesigner: Render state previews for StateGroup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Render previews for all state groups in the document. Change-Id: I89d9c43a53eb3d9844b863278395fd9098a07772 Reviewed-by: Reviewed-by: Henning Gründl Reviewed-by: Qt CI Bot --- .../qt5previewnodeinstanceserver.cpp | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp index f61ba1a3421..80233e65ffc 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp @@ -77,13 +77,23 @@ void Qt5PreviewNodeInstanceServer::collectItemChangesAndSendChangeCommands() QVector 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 stateInstances = rootNodeInstance().stateInstances(); + + const QList 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));