aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-10-21 09:31:01 +0200
committerEike Ziller <eike.ziller@qt.io>2020-10-21 09:31:01 +0200
commitdbb62016052ad70e8e3dffb60a419504c9eb6dac (patch)
tree7926ab117c9932be15b8886ba5230048da97bc07 /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
parent526579b09d1be00ef2f0e371e0c57064777e6538 (diff)
parentcc6f35016ab6f7a1ce82a39582141ab8a35b7bce (diff)
Merge remote-tracking branch 'origin/4.14' into master
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp40
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();