summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-15 13:37:57 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-15 14:37:51 +0300
commita29903b682fa5862fd5c6ffdded14a6c06c4cfe8 (patch)
treeb4566991d137dace116a47ba703f9cc6d4a7390f /src
parentd916ae58fcaf3d34481b672d916eb454d646010d (diff)
Support for setting axes in QML.
Change-Id: I9dccd7066d286a8a028450997a5ae34d44310ca1 Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavis3d/engine/abstract3dcontroller.cpp3
-rw-r--r--src/datavis3d/engine/abstract3drenderer_p.h2
-rw-r--r--src/datavis3d/engine/bars3dcontroller.cpp2
-rw-r--r--src/datavis3d/engine/maps3drenderer.cpp2
-rw-r--r--src/datavis3dqml2/datavis3dqml2_plugin.cpp6
-rw-r--r--src/datavis3dqml2/datavis3dqml2_plugin.h6
-rw-r--r--src/datavis3dqml2/declarativebars.cpp40
-rw-r--r--src/datavis3dqml2/declarativebars_p.h17
-rw-r--r--src/datavis3dqml2/declarativescatter.cpp30
-rw-r--r--src/datavis3dqml2/declarativescatter_p.h11
10 files changed, 102 insertions, 17 deletions
diff --git a/src/datavis3d/engine/abstract3dcontroller.cpp b/src/datavis3d/engine/abstract3dcontroller.cpp
index 3c34f797..99d0b66d 100644
--- a/src/datavis3d/engine/abstract3dcontroller.cpp
+++ b/src/datavis3d/engine/abstract3dcontroller.cpp
@@ -640,8 +640,11 @@ void Abstract3DController::setAxisHelper(QAbstractAxis::AxisOrientation orientat
delete *axisPtr;
*axisPtr = axis;
+
+ axis->setParent(0); // Assume ownership
axis->d_ptr->setOrientation(orientation);
+
QObject::connect(axis, &QAbstractAxis::titleChanged,
this, &Abstract3DController::handleAxisTitleChanged);
QObject::connect(axis, &QAbstractAxis::labelsChanged,
diff --git a/src/datavis3d/engine/abstract3drenderer_p.h b/src/datavis3d/engine/abstract3drenderer_p.h
index 6464651d..0ba14c63 100644
--- a/src/datavis3d/engine/abstract3drenderer_p.h
+++ b/src/datavis3d/engine/abstract3drenderer_p.h
@@ -87,7 +87,9 @@ public:
virtual void requestSelectionAtPoint(const QPoint &point) = 0;
virtual void updateTextures() = 0;
virtual void initSelectionBuffer() = 0;
+#if !defined(QT_OPENGL_ES_2)
virtual void updateDepthBuffer() = 0;
+#endif
virtual void updateShadowQuality(QDataVis::ShadowQuality quality) = 0;
virtual void initShaders(const QString &vertexShader, const QString &fragmentShader) = 0;
virtual void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader) = 0;
diff --git a/src/datavis3d/engine/bars3dcontroller.cpp b/src/datavis3d/engine/bars3dcontroller.cpp
index 72a72ba6..750c3298 100644
--- a/src/datavis3d/engine/bars3dcontroller.cpp
+++ b/src/datavis3d/engine/bars3dcontroller.cpp
@@ -43,7 +43,7 @@ Bars3dController::Bars3dController(QRect boundRect)
m_renderer(0),
m_data(0)
{
- // Default axes. Only Y axis can actually be changed by user.
+ // Default axes
setAxisX(new QCategoryAxis());
setAxisY(new QValueAxis());
setAxisZ(new QCategoryAxis());
diff --git a/src/datavis3d/engine/maps3drenderer.cpp b/src/datavis3d/engine/maps3drenderer.cpp
index c1e9af2c..c05f2f51 100644
--- a/src/datavis3d/engine/maps3drenderer.cpp
+++ b/src/datavis3d/engine/maps3drenderer.cpp
@@ -65,6 +65,8 @@ Maps3DRenderer::~Maps3DRenderer()
void Maps3DRenderer::render(CameraHelper *camera, const GLuint defaultFboHandle)
{
+ Q_UNUSED(camera)
+ Q_UNUSED(defaultFboHandle)
// TODO: Implement
}
diff --git a/src/datavis3dqml2/datavis3dqml2_plugin.cpp b/src/datavis3dqml2/datavis3dqml2_plugin.cpp
index 9c6796e2..d1e534f8 100644
--- a/src/datavis3dqml2/datavis3dqml2_plugin.cpp
+++ b/src/datavis3dqml2/datavis3dqml2_plugin.cpp
@@ -29,7 +29,8 @@ void Datavis3dqml2Plugin::registerTypes(const char *uri)
QLatin1String("Trying to create uncreatable: AbstractItemModel."));
qmlRegisterUncreatableType<QDataVis>(uri, 1, 0, "DataVis",
QLatin1String("Trying to create uncreatable: DataVis."));
-
+ qmlRegisterUncreatableType<QAbstractAxis>(uri, 1, 0, "AbstractAxis",
+ QLatin1String("Trying to create uncreatable: AbstractAxis."));
qmlRegisterType<QItemModelBarDataMapping>(uri, 1, 0, "BarDataMapping");
qmlRegisterType<QItemModelMapDataMapping>(uri, 1, 0, "MapDataMapping");
@@ -38,6 +39,9 @@ void Datavis3dqml2Plugin::registerTypes(const char *uri)
qmlRegisterType<DeclarativeBars>(uri, 1, 0, "Bars3D");
qmlRegisterType<DeclarativeMaps>(uri, 1, 0, "Maps3D");
qmlRegisterType<DeclarativeScatter>(uri, 1, 0, "Scatter3D");
+
+ qmlRegisterType<QValueAxis>(uri, 1, 0, "ValueAxis");
+ qmlRegisterType<QCategoryAxis>(uri, 1, 0, "CategoryAxis");
}
QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3dqml2/datavis3dqml2_plugin.h b/src/datavis3dqml2/datavis3dqml2_plugin.h
index f8f78ccb..ac88e1b5 100644
--- a/src/datavis3dqml2/datavis3dqml2_plugin.h
+++ b/src/datavis3dqml2/datavis3dqml2_plugin.h
@@ -26,6 +26,8 @@
#include "qitemmodelbardatamapping.h"
#include "qitemmodelmapdatamapping.h"
#include "qitemmodelscatterdatamapping.h"
+#include "qvalueaxis.h"
+#include "qcategoryaxis.h"
#include <QQmlExtensionPlugin>
@@ -41,6 +43,10 @@ Q_DECLARE_METATYPE(QItemModelScatterDataMapping *)
Q_DECLARE_METATYPE(QAbstractItemModel *)
Q_DECLARE_METATYPE(QDataVis *)
+Q_DECLARE_METATYPE(QAbstractAxis *)
+Q_DECLARE_METATYPE(QCategoryAxis *)
+Q_DECLARE_METATYPE(QValueAxis *)
+
QT_DATAVIS3D_BEGIN_NAMESPACE
class Datavis3dqml2Plugin : public QQmlExtensionPlugin
diff --git a/src/datavis3dqml2/declarativebars.cpp b/src/datavis3dqml2/declarativebars.cpp
index 565e71b7..e7af7f8c 100644
--- a/src/datavis3dqml2/declarativebars.cpp
+++ b/src/datavis3dqml2/declarativebars.cpp
@@ -106,16 +106,6 @@ void DeclarativeBars::setCameraPosition(qreal horizontal, qreal vertical, int di
m_shared->setCameraPosition(GLfloat(horizontal), GLfloat(vertical), GLint(distance));
}
-// TODO needs proper axis support also in QML
-void DeclarativeBars::setSegmentCount(int segmentCount, qreal step, qreal minimum)
-{
- QValueAxis *axis = static_cast<QValueAxis *>(m_shared->axisY());
- if (axis) {
- axis->setSegmentCount(segmentCount);
- axis->setRange(minimum, segmentCount * step);
- }
-}
-
void DeclarativeBars::setData(QAbstractItemModel *data)
{
static_cast<QItemModelBarDataProxy *>(m_shared->dataProxy())->setItemModel(data);
@@ -131,6 +121,36 @@ void DeclarativeBars::setMapping(QItemModelBarDataMapping *mapping)
static_cast<QItemModelBarDataProxy *>(m_shared->dataProxy())->setMapping(mapping);
}
+QCategoryAxis *DeclarativeBars::axisX() const
+{
+ return static_cast<QCategoryAxis *>(m_shared->axisX());
+}
+
+void DeclarativeBars::setAxisX(QCategoryAxis *axis)
+{
+ m_shared->setAxisX(axis);
+}
+
+QValueAxis *DeclarativeBars::axisY() const
+{
+ return static_cast<QValueAxis *>(m_shared->axisY());
+}
+
+void DeclarativeBars::setAxisY(QValueAxis *axis)
+{
+ m_shared->setAxisY(axis);
+}
+
+QCategoryAxis *DeclarativeBars::axisZ() const
+{
+ return static_cast<QCategoryAxis *>(m_shared->axisZ());
+}
+
+void DeclarativeBars::setAxisZ(QCategoryAxis *axis)
+{
+ m_shared->setAxisZ(axis);
+}
+
QItemModelBarDataMapping *DeclarativeBars::mapping() const
{
return static_cast<QItemModelBarDataProxy *>(m_shared->dataProxy())->mapping();
diff --git a/src/datavis3dqml2/declarativebars_p.h b/src/datavis3dqml2/declarativebars_p.h
index bcb8bb83..07dc21d4 100644
--- a/src/datavis3dqml2/declarativebars_p.h
+++ b/src/datavis3dqml2/declarativebars_p.h
@@ -33,6 +33,8 @@
#include "bars3dcontroller_p.h"
#include "declarativebars_p.h"
#include "qitemmodelbardatamapping.h"
+#include "qvalueaxis.h"
+#include "qcategoryaxis.h"
#include <QAbstractItemModel>
#include <QQuickItem>
@@ -46,6 +48,9 @@ class DeclarativeBars : public QQuickItem
Q_OBJECT
Q_PROPERTY(QAbstractItemModel *data READ data WRITE setData)
Q_PROPERTY(QItemModelBarDataMapping *mapping READ mapping WRITE setMapping)
+ Q_PROPERTY(QCategoryAxis *axisX READ axisX WRITE setAxisX)
+ Q_PROPERTY(QValueAxis *axisY READ axisY WRITE setAxisY)
+ Q_PROPERTY(QCategoryAxis *axisZ READ axisZ WRITE setAxisZ)
Q_PROPERTY(QtDataVis3D::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
Q_PROPERTY(QtDataVis3D::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
Q_PROPERTY(QtDataVis3D::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
@@ -90,11 +95,6 @@ public:
// percentage (10...500))
Q_INVOKABLE void setCameraPosition(qreal horizontal, qreal vertical, int distance);
- // Set segment count and step. Note; segmentCount * step should be the maximum possible value of data
- // set. Minimum is the absolute minimum possible value a bar can have. This is especially
- // important to set if values can be negative.
- Q_INVOKABLE void setSegmentCount(int segmentCount, qreal step, qreal minimum);
-
// Add whole data set.
void setData(QAbstractItemModel *data);
QAbstractItemModel *data();
@@ -102,6 +102,13 @@ public:
QItemModelBarDataMapping *mapping() const;
void setMapping(QItemModelBarDataMapping *mapping);
+ QCategoryAxis *axisX() const;
+ void setAxisX(QCategoryAxis *axis);
+ QValueAxis *axisY() const;
+ void setAxisY(QValueAxis *axis);
+ QCategoryAxis *axisZ() const;
+ void setAxisZ(QCategoryAxis *axis);
+
// Set bar thickness. Y -component sets the thickness of z -direction.
void setBarThickness(QSizeF thickness);
QSizeF barThickness();
diff --git a/src/datavis3dqml2/declarativescatter.cpp b/src/datavis3dqml2/declarativescatter.cpp
index 6005ff99..90daf0e3 100644
--- a/src/datavis3dqml2/declarativescatter.cpp
+++ b/src/datavis3dqml2/declarativescatter.cpp
@@ -120,6 +120,36 @@ QItemModelScatterDataMapping *DeclarativeScatter::mapping() const
return static_cast<QItemModelScatterDataProxy *>(m_shared->dataProxy())->mapping();
}
+QValueAxis *DeclarativeScatter::axisX() const
+{
+ return static_cast<QValueAxis *>(m_shared->axisX());
+}
+
+void DeclarativeScatter::setAxisX(QValueAxis *axis)
+{
+ m_shared->setAxisX(axis);
+}
+
+QValueAxis *DeclarativeScatter::axisY() const
+{
+ return static_cast<QValueAxis *>(m_shared->axisY());
+}
+
+void DeclarativeScatter::setAxisY(QValueAxis *axis)
+{
+ m_shared->setAxisY(axis);
+}
+
+QValueAxis *DeclarativeScatter::axisZ() const
+{
+ return static_cast<QValueAxis *>(m_shared->axisZ());
+}
+
+void DeclarativeScatter::setAxisZ(QValueAxis *axis)
+{
+ m_shared->setAxisZ(axis);
+}
+
void DeclarativeScatter::setObjectType(QDataVis::MeshStyle style)
{
QString objFile = m_shared->meshFileName();
diff --git a/src/datavis3dqml2/declarativescatter_p.h b/src/datavis3dqml2/declarativescatter_p.h
index c25d9b2c..dce5c021 100644
--- a/src/datavis3dqml2/declarativescatter_p.h
+++ b/src/datavis3dqml2/declarativescatter_p.h
@@ -33,6 +33,7 @@
#include "scatter3dcontroller_p.h"
#include "declarativescatter_p.h"
#include "qitemmodelscatterdatamapping.h"
+#include "qvalueaxis.h"
#include <QAbstractItemModel>
#include <QQuickItem>
@@ -45,6 +46,9 @@ class DeclarativeScatter : public QQuickItem
Q_OBJECT
Q_PROPERTY(QAbstractItemModel *data READ data WRITE setData)
Q_PROPERTY(QItemModelScatterDataMapping *mapping READ mapping WRITE setMapping)
+ Q_PROPERTY(QValueAxis *axisX READ axisX WRITE setAxisX)
+ Q_PROPERTY(QValueAxis *axisY READ axisY WRITE setAxisY)
+ Q_PROPERTY(QValueAxis *axisZ READ axisZ WRITE setAxisZ)
Q_PROPERTY(QtDataVis3D::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
Q_PROPERTY(QtDataVis3D::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
Q_PROPERTY(QtDataVis3D::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
@@ -87,6 +91,13 @@ public:
QItemModelScatterDataMapping *mapping() const;
void setMapping(QItemModelScatterDataMapping *mapping);
+ QValueAxis *axisX() const;
+ void setAxisX(QValueAxis *axis);
+ QValueAxis *axisY() const;
+ void setAxisY(QValueAxis *axis);
+ QValueAxis *axisZ() const;
+ void setAxisZ(QValueAxis *axis);
+
// Object type
void setObjectType(QDataVis::MeshStyle style);
QDataVis::MeshStyle objectType();