summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-11-29 16:25:19 +0200
committerPasi Keränen <pasi.keranen@digia.com>2013-12-02 10:10:12 +0200
commit7b621b89e40b9006bc8ffbb8595bba336fb60d42 (patch)
treef77e137a3ae78596a864400ac1f238fe24b240fa /src/datavisualization/engine/abstract3dcontroller.cpp
parent94235c2e633845951ce6c947965789bb3f8ee7c4 (diff)
Fixes retina issues with C++ widget graphs.
Task-id: QTRD-2660 Change-Id: Icd36c082f45077a1ebb3372838f43a50fd277076 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp68
1 files changed, 29 insertions, 39 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 7820cb31..7165ca58 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -69,6 +69,8 @@ Abstract3DController::Abstract3DController(QRect boundRect, QObject *parent) :
&Abstract3DController::handleInputPositionChanged);
connect(m_scene, &Q3DScene::needRender, this,
&Abstract3DController::emitNeedRender);
+ connect(m_scene, &Q3DScene::devicePixelRatioChanged, this,
+ &Abstract3DController::handlePixelRatioChanged);
}
Abstract3DController::~Abstract3DController()
@@ -401,27 +403,22 @@ void Abstract3DController::wheelEvent(QWheelEvent *event)
void Abstract3DController::setSize(const int width, const int height)
{
- m_boundingRect.setWidth(width);
- m_boundingRect.setHeight(height);
+ float devicePixelRatio = m_scene->devicePixelRatio();
m_scene->setViewportSize(width, height);
+ m_boundingRect.setWidth(width * devicePixelRatio);
+ m_boundingRect.setHeight(height * devicePixelRatio);
m_changeTracker.boundingRectChanged = true;
emitNeedRender();
}
-const QSize Abstract3DController::size()
-{
- return m_boundingRect.size();
-}
-
-const QRect Abstract3DController::boundingRect()
-{
- return m_boundingRect;
-}
-
void Abstract3DController::setBoundingRect(const QRect boundingRect)
{
- m_boundingRect = boundingRect;
+ float devicePixelRatio = m_scene->devicePixelRatio();
+ m_boundingRect = QRect(boundingRect.x() * devicePixelRatio,
+ boundingRect.y() * devicePixelRatio,
+ boundingRect.width() * devicePixelRatio,
+ boundingRect.height() * devicePixelRatio);
m_scene->setViewport(boundingRect);
m_changeTracker.boundingRectChanged = true;
@@ -430,58 +427,46 @@ void Abstract3DController::setBoundingRect(const QRect boundingRect)
void Abstract3DController::setWidth(const int width)
{
- m_boundingRect.setWidth(width);
+ m_boundingRect.setWidth(width * m_scene->devicePixelRatio());
m_scene->setViewportSize(width, m_scene->viewport().height());
m_changeTracker.sizeChanged = true;
emitNeedRender();
}
-int Abstract3DController::width()
-{
- return m_boundingRect.width();
-}
-
void Abstract3DController::setHeight(const int height)
{
- m_boundingRect.setHeight(height);
+ m_boundingRect.setHeight(height * m_scene->devicePixelRatio());
m_scene->setViewportSize(m_scene->viewport().width(), height);
m_changeTracker.sizeChanged = true;
emitNeedRender();
}
-int Abstract3DController::height()
-{
- return m_boundingRect.height();
-}
-
void Abstract3DController::setX(const int x)
{
- m_boundingRect.setX(x);
+ m_boundingRect.setX(x * m_scene->devicePixelRatio());
+ m_scene->setViewport( QRect(x,
+ m_scene->viewport().y(),
+ m_scene->viewport().width(),
+ m_scene->viewport().height()));
m_changeTracker.positionChanged = true;
emitNeedRender();
}
-int Abstract3DController::x()
-{
- return m_boundingRect.x();
-}
-
void Abstract3DController::setY(const int y)
{
- m_boundingRect.setY(y);
+ m_boundingRect.setY(y * m_scene->devicePixelRatio());
+ m_scene->setViewport( QRect(m_scene->viewport().x(),
+ y,
+ m_scene->viewport().width(),
+ m_scene->viewport().height()));
m_changeTracker.positionChanged = true;
emitNeedRender();
}
-int Abstract3DController::y()
-{
- return m_boundingRect.y();
-}
-
QRect Abstract3DController::primarySubViewport() const
{
return m_scene->primarySubViewport();
@@ -502,9 +487,14 @@ void Abstract3DController::setSecondarySubViewport(const QRect &secondarySubView
m_scene->setSecondarySubViewport(secondarySubViewport);
}
-void Abstract3DController::updateDevicePixelRatio(float ratio)
+void Abstract3DController::handlePixelRatioChanged(float ratio)
{
- m_scene->setDevicePixelRatio(ratio);
+ m_boundingRect.setX(ratio * m_scene->viewport().x());
+ m_boundingRect.setY(ratio * m_scene->viewport().y());
+ m_boundingRect.setWidth(ratio * m_scene->viewport().width());
+ m_boundingRect.setHeight(ratio * m_scene->viewport().height());
+ m_changeTracker.boundingRectChanged = true;
+ emitNeedRender();
}
void Abstract3DController::setAxisX(Q3DAbstractAxis *axis)