diff options
author | Keränen Pasi <pasi.keranen@digia.com> | 2013-12-17 16:25:57 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-12-18 09:02:08 +0200 |
commit | 96b8a5a65d0dcb0bc7ba6235bdbfadda68bc62c0 (patch) | |
tree | 5a299add525a069cc6a2616d352d6ee6bc165449 /src/datavisualizationqml2 | |
parent | d0ce5b1a785bdb1e94dd8688b26e6a69c22f9f4f (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.cpp | 21 | ||||
-rw-r--r-- | src/datavisualizationqml2/abstractdeclarative_p.h | 1 |
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 |