diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-10-21 09:31:01 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-10-21 09:31:01 +0200 |
commit | dbb62016052ad70e8e3dffb60a419504c9eb6dac (patch) | |
tree | 7926ab117c9932be15b8886ba5230048da97bc07 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | |
parent | 526579b09d1be00ef2f0e371e0c57064777e6538 (diff) | |
parent | cc6f35016ab6f7a1ce82a39582141ab8a35b7bce (diff) |
Merge remote-tracking branch 'origin/4.14' into master
Change-Id: Id7ad82997873da828456a15c441620d93c6fc7e7
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp')
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp index 1f54bffdbd..1c08b408e6 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -262,10 +262,8 @@ QStringList QuickItemNodeInstance::allStates() const void QuickItemNodeInstance::updateDirtyNode(QQuickItem *item) { - if (s_unifiedRenderPath) { - item->update(); + if (s_unifiedRenderPath) return; - } DesignerSupport::updateDirtyNode(item); } @@ -417,23 +415,24 @@ QImage QuickItemNodeInstance::renderImage() const static double devicePixelRatio = qgetenv("FORMEDITOR_DEVICE_PIXEL_RATIO").toDouble(); size *= devicePixelRatio; - // Fake render loop signaling to update things like QML items as 3D textures - nodeInstanceServer()->quickView()->beforeSynchronizing(); - nodeInstanceServer()->quickView()->beforeRendering(); - QImage renderImage; #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (s_unifiedRenderPath) + if (s_unifiedRenderPath) { renderImage = nodeInstanceServer()->quickView()->grabWindow(); - else + } else { + // Fake render loop signaling to update things like QML items as 3D textures + nodeInstanceServer()->quickView()->beforeSynchronizing(); + nodeInstanceServer()->quickView()->beforeRendering(); + renderImage = designerSupport()->renderImageForItem(quickItem(), renderBoundingRect, size); + + nodeInstanceServer()->quickView()->afterRendering(); + } #else renderImage = nodeInstanceServer()->quickView()->grabWindow(); #endif - nodeInstanceServer()->quickView()->afterRendering(); - renderImage.setDevicePixelRatio(devicePixelRatio); return renderImage; @@ -447,27 +446,27 @@ QImage QuickItemNodeInstance::renderPreviewImage(const QSize &previewImageSize) static double devicePixelRatio = qgetenv("FORMEDITOR_DEVICE_PIXEL_RATIO").toDouble(); const QSize size = previewImageSize * devicePixelRatio; if (quickItem()->isVisible()) { - // Fake render loop signaling to update things like QML items as 3D textures - nodeInstanceServer()->quickView()->beforeSynchronizing(); - nodeInstanceServer()->quickView()->beforeRendering(); - QImage image; #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - if (s_unifiedRenderPath) + if (s_unifiedRenderPath) { image = nodeInstanceServer()->quickView()->grabWindow(); - else + } else { + // Fake render loop signaling to update things like QML items as 3D textures + nodeInstanceServer()->quickView()->beforeSynchronizing(); + nodeInstanceServer()->quickView()->beforeRendering(); + image = designerSupport()->renderImageForItem(quickItem(), previewItemBoundingRect, size); + nodeInstanceServer()->quickView()->afterRendering(); + } #else image = nodeInstanceServer()->quickView()->grabWindow(); #endif image = image.scaledToWidth(size.width()); - nodeInstanceServer()->quickView()->afterRendering(); - return image; } else { QImage transparentImage(size, QImage::Format_ARGB32_Premultiplied); @@ -686,7 +685,8 @@ void QuickItemNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParen if (quickItem()->parentItem()) { refresh(); - DesignerSupport::updateDirtyNode(quickItem()); + + updateDirtyNode(quickItem()); if (instanceIsValidLayoutable(oldParentInstance, oldParentProperty)) oldParentInstance->refreshLayoutable(); |