From f36c55cd4724a8023ff34036b74c96982714f63a Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 15 Oct 2012 12:31:40 +0200 Subject: Adding DesignerWindowManager for Qt Quick Designer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DesignerWindowManager implements a render path just for Qt Quick Designer, which is single threaded and does not open visible windows. Change-Id: I02b0d1b819a7a5391b9bb14ee6efa1a32e0c8ad7 Reviewed-by: Samuel Rødal --- src/quick/designer/designersupport.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/quick/designer/designersupport.cpp') diff --git a/src/quick/designer/designersupport.cpp b/src/quick/designer/designersupport.cpp index c06e8f0579..78445d7179 100644 --- a/src/quick/designer/designersupport.cpp +++ b/src/quick/designer/designersupport.cpp @@ -46,9 +46,13 @@ #include #include #include +#include #include #include +#include "designerwindowmanager_p.h" + + QT_BEGIN_NAMESPACE DesignerSupport::DesignerSupport() @@ -119,6 +123,7 @@ QImage DesignerSupport::renderImageForItem(QQuickItem *referencedItem, const QRe return QImage(); renderTexture->setRect(boundingRect); renderTexture->setSize(imageSize); + renderTexture->markDirtyTexture(); renderTexture->updateTexture(); QImage renderImage = renderTexture->toImage(); @@ -138,6 +143,14 @@ bool DesignerSupport::isDirty(QQuickItem *referencedItem, DirtyType dirtyType) return QQuickItemPrivate::get(referencedItem)->dirtyAttributes & dirtyType; } +void DesignerSupport::addDirty(QQuickItem *referencedItem, DesignerSupport::DirtyType dirtyType) +{ + if (referencedItem == 0) + return; + + QQuickItemPrivate::get(referencedItem)->dirtyAttributes |= dirtyType; +} + void DesignerSupport::resetDirty(QQuickItem *referencedItem) { if (referencedItem == 0) @@ -410,4 +423,14 @@ void DesignerSupport::updateDirtyNode(QQuickItem *item) QQuickWindowPrivate::get(item->window())->updateDirtyNode(item); } +void DesignerSupport::activateDesignerWindowManager() +{ + QQuickWindowManager::setInstance(new DesignerWindowManager); +} + +void DesignerSupport::createOpenGLContext(QQuickWindow *window) +{ + DesignerWindowManager::createOpenGLContext(window); +} + QT_END_NAMESPACE -- cgit v1.2.3 From cc39a7d7affe37741292989c634aec3f60660c0e Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 15 Oct 2012 15:22:08 +0200 Subject: Fix crash in the qmlpuppet at finishing Task-number: QTCREATORBUG-8042 Change-Id: I30a5b40d6441ea1631ba11a97b062720e70ddca8 Reviewed-by: Thomas Hartmann --- src/quick/designer/designersupport.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/quick/designer/designersupport.cpp') diff --git a/src/quick/designer/designersupport.cpp b/src/quick/designer/designersupport.cpp index 78445d7179..55a0b53df7 100644 --- a/src/quick/designer/designersupport.cpp +++ b/src/quick/designer/designersupport.cpp @@ -420,7 +420,8 @@ bool DesignerSupport::isValidHeight(QQuickItem *item) void DesignerSupport::updateDirtyNode(QQuickItem *item) { - QQuickWindowPrivate::get(item->window())->updateDirtyNode(item); + if (item->window()) + QQuickWindowPrivate::get(item->window())->updateDirtyNode(item); } void DesignerSupport::activateDesignerWindowManager() -- cgit v1.2.3 From 13e1c40b7be52dbb3b82116c514a6e8b6b5499b6 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 16 Oct 2012 16:33:44 +0200 Subject: Add polishItems to the designer support Change-Id: Ibec0b1f6c438f0c7b40c81ec81cd092768701f34 Reviewed-by: Thomas Hartmann --- src/quick/designer/designersupport.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/quick/designer/designersupport.cpp') diff --git a/src/quick/designer/designersupport.cpp b/src/quick/designer/designersupport.cpp index 55a0b53df7..1b0fea9190 100644 --- a/src/quick/designer/designersupport.cpp +++ b/src/quick/designer/designersupport.cpp @@ -434,4 +434,9 @@ void DesignerSupport::createOpenGLContext(QQuickWindow *window) DesignerWindowManager::createOpenGLContext(window); } +void DesignerSupport::polishItems(QQuickWindow *window) +{ + QQuickWindowPrivate::get(window)->polishItems(); +} + QT_END_NAMESPACE -- cgit v1.2.3