diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-09 08:29:11 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-09 10:36:34 +0200 |
commit | 997bc1f796938eb8347adfd79b6756ea8b2b3ab9 (patch) | |
tree | 774caa0e102ad2eaf9300571dfba2906ba95889c /src/datavisualization/engine | |
parent | 0144b397eff1340497ac2e599f7d9238bf99609c (diff) |
Invalid point/selection as constant property in qml
Also fixed 0,0 QPoint -> QPointF conversion issue for Q3DScene
Task-number: QTRD-2688
Change-Id: I3778081bb6ef2b5dbfcaad7502a4e164286c2646
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
10 files changed, 25 insertions, 16 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index 09c75ceb..da2e2a14 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -35,12 +35,12 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE -Abstract3DController::Abstract3DController(QRect initialViewport, QObject *parent) : +Abstract3DController::Abstract3DController(QRect initialViewport, Q3DScene *scene, QObject *parent) : QObject(parent), m_themeManager(new ThemeManager(this)), m_selectionMode(QDataVis::SelectionItem), m_shadowQuality(QDataVis::ShadowQualityMedium), - m_scene(new Q3DScene()), + m_scene(scene), m_activeInputHandler(0), m_axisX(0), m_axisY(0), @@ -51,6 +51,9 @@ Abstract3DController::Abstract3DController(QRect initialViewport, QObject *paren m_isSeriesVisualsDirty(true), m_renderPending(false) { + if (!m_scene) + m_scene = new Q3DScene; + // Set initial theme setActiveTheme(new Q3DTheme(Q3DTheme::ThemeQt)); diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h index 91083eb9..9c24844f 100644 --- a/src/datavisualization/engine/abstract3dcontroller_p.h +++ b/src/datavisualization/engine/abstract3dcontroller_p.h @@ -158,7 +158,7 @@ protected: QList<QAbstract3DSeries *> m_seriesList; - explicit Abstract3DController(QRect initialViewport, QObject *parent = 0); + explicit Abstract3DController(QRect initialViewport, Q3DScene *scene, QObject *parent = 0); public: virtual ~Abstract3DController(); diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index 3efd890b..c765a37a 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -32,8 +32,8 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE -Bars3DController::Bars3DController(QRect boundRect) - : Abstract3DController(boundRect), +Bars3DController::Bars3DController(QRect boundRect, Q3DScene *scene) + : Abstract3DController(boundRect, scene), m_selectedBar(invalidSelectionPosition()), m_selectedBarSeries(0), m_isBarSpecRelative(true), diff --git a/src/datavisualization/engine/bars3dcontroller_p.h b/src/datavisualization/engine/bars3dcontroller_p.h index 46fc991d..3fcae959 100644 --- a/src/datavisualization/engine/bars3dcontroller_p.h +++ b/src/datavisualization/engine/bars3dcontroller_p.h @@ -73,7 +73,7 @@ private: Bars3DRenderer *m_renderer; public: - explicit Bars3DController(QRect rect); + explicit Bars3DController(QRect rect, Q3DScene *scene = 0); ~Bars3DController(); virtual void initializeOpenGL(); diff --git a/src/datavisualization/engine/q3dscene.cpp b/src/datavisualization/engine/q3dscene.cpp index d8104b3a..ce037b55 100644 --- a/src/datavisualization/engine/q3dscene.cpp +++ b/src/datavisualization/engine/q3dscene.cpp @@ -90,9 +90,9 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE * \qmlproperty point Scene3D::selectionQueryPosition * * This property contains the coordinates for the user input that should be processed - * by the scene as selection. If this is set to value other than \c{(-1, -1)} the + * by the scene as selection. If this is set to value other than invalidSelectionPoint the * graph tries to select a data item at the given point within the primary viewport. - * After the rendering pass the property is returned to its default state of \c{(-1, -1)}. + * After the rendering pass the property is returned to its default state of invalidSelectionPoint. */ /*! @@ -131,6 +131,12 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE */ /*! + * \qmlproperty point Scene3D::invalidSelectionPoint + * A constant property providing an invalid point for selection. + */ + + +/*! * Constructs a basic scene with one light and one camera in it. An * optional \a parent parameter can be given and is then passed to QObject constructor. */ @@ -272,7 +278,7 @@ QPoint Q3DScene::selectionQueryPosition() const /*! * \return a QPoint signifying an invalid selection position. */ -const QPoint Q3DScene::invalidSelectionPoint() +QPoint Q3DScene::invalidSelectionPoint() { static const QPoint invalidSelectionPos(-1, -1); return invalidSelectionPos; diff --git a/src/datavisualization/engine/q3dscene.h b/src/datavisualization/engine/q3dscene.h index 27e09ab0..f57d3351 100644 --- a/src/datavisualization/engine/q3dscene.h +++ b/src/datavisualization/engine/q3dscene.h @@ -59,7 +59,7 @@ public: void setSelectionQueryPosition(const QPoint &point); QPoint selectionQueryPosition() const; - static const QPoint invalidSelectionPoint(); + static QPoint invalidSelectionPoint(); void setSlicingActive(bool isSlicing); bool isSlicingActive() const; diff --git a/src/datavisualization/engine/scatter3dcontroller.cpp b/src/datavisualization/engine/scatter3dcontroller.cpp index 61a95e88..58706705 100644 --- a/src/datavisualization/engine/scatter3dcontroller.cpp +++ b/src/datavisualization/engine/scatter3dcontroller.cpp @@ -29,8 +29,8 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE -Scatter3DController::Scatter3DController(QRect boundRect) - : Abstract3DController(boundRect), +Scatter3DController::Scatter3DController(QRect boundRect, Q3DScene *scene) + : Abstract3DController(boundRect, scene), m_renderer(0), m_selectedItem(invalidSelectionIndex()), m_selectedItemSeries(0) diff --git a/src/datavisualization/engine/scatter3dcontroller_p.h b/src/datavisualization/engine/scatter3dcontroller_p.h index 397d47a4..d484454d 100644 --- a/src/datavisualization/engine/scatter3dcontroller_p.h +++ b/src/datavisualization/engine/scatter3dcontroller_p.h @@ -63,7 +63,7 @@ private: // in single series selection cases. public: - explicit Scatter3DController(QRect rect); + explicit Scatter3DController(QRect rect, Q3DScene *scene = 0); ~Scatter3DController(); virtual void initializeOpenGL(); diff --git a/src/datavisualization/engine/surface3dcontroller.cpp b/src/datavisualization/engine/surface3dcontroller.cpp index 6082e105..7c7b7a90 100644 --- a/src/datavisualization/engine/surface3dcontroller.cpp +++ b/src/datavisualization/engine/surface3dcontroller.cpp @@ -32,8 +32,8 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE -Surface3DController::Surface3DController(QRect rect) - : Abstract3DController(rect), +Surface3DController::Surface3DController(QRect rect, Q3DScene *scene) + : Abstract3DController(rect, scene), m_renderer(0), m_selectedPoint(invalidSelectionPosition()), m_selectedSeries(0), diff --git a/src/datavisualization/engine/surface3dcontroller_p.h b/src/datavisualization/engine/surface3dcontroller_p.h index 54d709b4..915a3122 100644 --- a/src/datavisualization/engine/surface3dcontroller_p.h +++ b/src/datavisualization/engine/surface3dcontroller_p.h @@ -70,7 +70,7 @@ private: QVector<int> m_changedRows; public: - explicit Surface3DController(QRect rect); + explicit Surface3DController(QRect rect, Q3DScene *scene = 0); ~Surface3DController(); virtual void initializeOpenGL(); |