summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-12-17 16:25:57 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-12-18 09:02:08 +0200
commit96b8a5a65d0dcb0bc7ba6235bdbfadda68bc62c0 (patch)
tree5a299add525a069cc6a2616d352d6ee6bc165449 /src/datavisualizationqml2
parentd0ce5b1a785bdb1e94dd8688b26e6a69c22f9f4f (diff)
Fixes update on move to retina display on Mac OS X and Qt 5.2
Task-id: QTRD-2565 Change-Id: I4c6fdf0b595f44bc83c1f7fa3540ee311a74e17e Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp21
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h1
2 files changed, 10 insertions, 12 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index 148612cd..587ea879 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -20,13 +20,13 @@
#include "q3dvalueaxis.h"
#include <QThread>
#include <QGuiApplication>
+#include <QSGSimpleRectNode>
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) :
QQuickItem(parent),
- m_controller(0),
- m_isFirstRender(true)
+ m_controller(0)
{
connect(this, &QQuickItem::windowChanged, this, &AbstractDeclarative::handleWindowChanged);
setAntialiasing(true);
@@ -121,7 +121,6 @@ void AbstractDeclarative::geometryChanged(const QRectF &newGeometry, const QRect
void AbstractDeclarative::itemChange(ItemChange change, const ItemChangeData & value)
{
QQuickItem::itemChange(change, value);
-
updateWindowParameters();
}
@@ -131,11 +130,15 @@ void AbstractDeclarative::updateWindowParameters()
QQuickWindow *win = window();
Q3DScene *scene = m_controller->scene();
if (win) {
- if (win->devicePixelRatio() != scene->devicePixelRatio())
+ if (win->devicePixelRatio() != scene->devicePixelRatio()) {
scene->setDevicePixelRatio(win->devicePixelRatio());
+ win->update();
+ }
- if (win->size() != scene->d_ptr->windowSize())
+ if (win->size() != scene->d_ptr->windowSize()) {
scene->d_ptr->setWindowSize(QSize(win->width(), win->height()));
+ win->update();
+ }
QPointF point = QQuickItem::mapToScene(QPointF(m_cachedGeometry.x(), m_cachedGeometry.y()));
if (m_controller) {
@@ -146,11 +149,7 @@ void AbstractDeclarative::updateWindowParameters()
void AbstractDeclarative::render()
{
- // Needed to catch the window size change upon first render call
- if (m_isFirstRender) {
- m_isFirstRender = false;
- updateWindowParameters();
- }
+ updateWindowParameters();
// Clear the background as that is not done by default
glViewport(0, 0, window()->width(), window()->height());
@@ -189,7 +188,7 @@ void AbstractDeclarative::mouseDoubleClickEvent(QMouseEvent *event)
void AbstractDeclarative::touchEvent(QTouchEvent *event)
{
m_controller->touchEvent(event);
- update();
+ window()->update();
}
void AbstractDeclarative::mousePressEvent(QMouseEvent *event)
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index 65017b05..42cf13a4 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -97,7 +97,6 @@ signals:
private:
Abstract3DController *m_controller;
QRectF m_cachedGeometry;
- bool m_isFirstRender;
};
QT_DATAVISUALIZATION_END_NAMESPACE