summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-15 10:39:15 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-15 12:43:19 +0200
commit27241b083df419f3a2de928c1d3f5dd8f6459030 (patch)
treecfe9c73f6b5b35a58a66700f0e4e5187120203ed /src/datavisualizationqml2
parentcc22cc40e889b5b2f0e49ce32f660395cef865b7 (diff)
Enable giving series and proxies as child items in QML
Task-number: QTRD-2359 Change-Id: I37558b169bb60ee90993c1a8703da0c6745a9db0 Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2.pro6
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.cpp16
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.h4
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h1
-rw-r--r--src/datavisualizationqml2/declarativescatter_p.h1
-rw-r--r--src/datavisualizationqml2/declarativeseries.cpp92
-rw-r--r--src/datavisualizationqml2/declarativeseries_p.h81
-rw-r--r--src/datavisualizationqml2/declarativesurface_p.h1
8 files changed, 196 insertions, 6 deletions
diff --git a/src/datavisualizationqml2/datavisualizationqml2.pro b/src/datavisualizationqml2/datavisualizationqml2.pro
index db684988..073b1250 100644
--- a/src/datavisualizationqml2/datavisualizationqml2.pro
+++ b/src/datavisualizationqml2/datavisualizationqml2.pro
@@ -26,7 +26,8 @@ SOURCES += \
declarativesurface.cpp \
declarativesurfacerenderer.cpp \
abstractdeclarative.cpp \
- colorgradient.cpp
+ colorgradient.cpp \
+ declarativeseries.cpp
HEADERS += \
datavisualizationqml2_plugin.h \
@@ -37,7 +38,8 @@ HEADERS += \
declarativesurface_p.h \
declarativesurfacerenderer_p.h \
abstractdeclarative_p.h \
- colorgradient_p.h
+ colorgradient_p.h \
+ declarativeseries_p.h
OTHER_FILES = qmldir
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
index 4e47ba53..7e7f636a 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
@@ -43,6 +43,14 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
QLatin1String("Trying to create uncreatable: AbstractGraph3D."));
qmlRegisterUncreatableType<Q3DScene>(uri, 1, 0, "Scene3D",
QLatin1String("Trying to create uncreatable: Scene3D."));
+ qmlRegisterUncreatableType<QAbstract3DSeries>(uri, 1, 0, "Abstract3DSeries",
+ QLatin1String("Trying to create uncreatable: Abstract3DSeries."));
+ qmlRegisterUncreatableType<QBar3DSeries>(uri, 1, 0, "QBar3DSeries",
+ QLatin1String("Trying to create uncreatable: QBar3DSeries, use Bar3DSeries instead."));
+ qmlRegisterUncreatableType<QScatter3DSeries>(uri, 1, 0, "QScatter3DSeries",
+ QLatin1String("Trying to create uncreatable: QScatter3DSeries, use Scatter3DSeries instead."));
+ qmlRegisterUncreatableType<QSurface3DSeries>(uri, 1, 0, "QSurface3DSeries",
+ QLatin1String("Trying to create uncreatable: QSurface3DSeries, use Surface3DSeries instead."));
qmlRegisterType<QItemModelBarDataMapping>(uri, 1, 0, "BarDataMapping");
qmlRegisterType<QItemModelScatterDataMapping>(uri, 1, 0, "ScatterDataMapping");
@@ -62,12 +70,12 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
qmlRegisterType<QItemModelSurfaceDataProxy>(uri, 1, 0, "ItemModelSurfaceDataProxy");
qmlRegisterType<QHeightMapSurfaceDataProxy>(uri, 1, 0, "HeightMapSurfaceDataProxy");
- qmlRegisterType<QBar3DSeries>(uri, 1, 0, "Bar3DSeries");
- qmlRegisterType<QScatter3DSeries>(uri, 1, 0, "Scatter3DSeries");
- qmlRegisterType<QSurface3DSeries>(uri, 1, 0, "Surface3DSeries");
-
qmlRegisterType<ColorGradientStop>(uri, 1, 0, "ColorGradientStop");
qmlRegisterType<ColorGradient>(uri, 1, 0, "ColorGradient");
+
+ qmlRegisterType<DeclarativeBar3DSeries>(uri, 1, 0, "Bar3DSeries");
+ qmlRegisterType<DeclarativeScatter3DSeries>(uri, 1, 0, "Scatter3DSeries");
+ qmlRegisterType<DeclarativeSurface3DSeries>(uri, 1, 0, "Surface3DSeries");
}
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
index d74def9d..2635dcbd 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
@@ -39,6 +39,7 @@
#include "qbar3dseries.h"
#include "qscatter3dseries.h"
#include "qsurface3dseries.h"
+#include "declarativeseries_p.h"
#include <QQmlExtensionPlugin>
@@ -76,6 +77,9 @@ QML_DECLARE_TYPE(QAbstract3DSeries)
QML_DECLARE_TYPE(QBar3DSeries)
QML_DECLARE_TYPE(QScatter3DSeries)
QML_DECLARE_TYPE(QSurface3DSeries)
+QML_DECLARE_TYPE(DeclarativeBar3DSeries)
+QML_DECLARE_TYPE(DeclarativeScatter3DSeries)
+QML_DECLARE_TYPE(DeclarativeSurface3DSeries)
QML_DECLARE_TYPE(ColorGradientStop)
QML_DECLARE_TYPE(ColorGradient)
diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h
index c3808b7b..a54e5ff7 100644
--- a/src/datavisualizationqml2/declarativebars_p.h
+++ b/src/datavisualizationqml2/declarativebars_p.h
@@ -59,6 +59,7 @@ class DeclarativeBars : public AbstractDeclarative
Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged)
Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged)
Q_PROPERTY(QQmlListProperty<QBar3DSeries> seriesList READ seriesList)
+ Q_CLASSINFO("DefaultProperty", "seriesList")
public:
explicit DeclarativeBars(QQuickItem *parent = 0);
diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h
index e229c0d5..20455b29 100644
--- a/src/datavisualizationqml2/declarativescatter_p.h
+++ b/src/datavisualizationqml2/declarativescatter_p.h
@@ -54,6 +54,7 @@ class DeclarativeScatter : public AbstractDeclarative
Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged)
Q_PROPERTY(int selectedItemIndex READ selectedItemIndex WRITE setSelectedItemIndex NOTIFY selectedItemIndexChanged)
Q_PROPERTY(QQmlListProperty<QScatter3DSeries> seriesList READ seriesList)
+ Q_CLASSINFO("DefaultProperty", "seriesList")
public:
explicit DeclarativeScatter(QQuickItem *parent = 0);
diff --git a/src/datavisualizationqml2/declarativeseries.cpp b/src/datavisualizationqml2/declarativeseries.cpp
new file mode 100644
index 00000000..81bbb649
--- /dev/null
+++ b/src/datavisualizationqml2/declarativeseries.cpp
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#include "declarativeseries_p.h"
+#include "qbardataproxy.h"
+#include "qscatterdataproxy.h"
+#include "qsurfacedataproxy.h"
+
+QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+
+DeclarativeBar3DSeries::DeclarativeBar3DSeries(QObject *parent)
+ : QBar3DSeries(parent)
+{
+}
+
+DeclarativeBar3DSeries::~DeclarativeBar3DSeries()
+{
+}
+
+QQmlListProperty<QObject> DeclarativeBar3DSeries::seriesChildren()
+{
+ return QQmlListProperty<QObject>(this, this, &DeclarativeBar3DSeries::appendSeriesChildren
+ , 0, 0, 0);
+}
+
+void DeclarativeBar3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element)
+{
+ QBarDataProxy *proxy = qobject_cast<QBarDataProxy *>(element);
+ if (proxy)
+ reinterpret_cast<DeclarativeBar3DSeries *>(list->data)->setDataProxy(proxy);
+}
+
+DeclarativeScatter3DSeries::DeclarativeScatter3DSeries(QObject *parent)
+ : QScatter3DSeries(parent)
+{
+}
+
+DeclarativeScatter3DSeries::~DeclarativeScatter3DSeries()
+{
+}
+
+QQmlListProperty<QObject> DeclarativeScatter3DSeries::seriesChildren()
+{
+ return QQmlListProperty<QObject>(this, this, &DeclarativeScatter3DSeries::appendSeriesChildren
+ , 0, 0, 0);
+}
+
+void DeclarativeScatter3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element)
+{
+ QScatterDataProxy *proxy = qobject_cast<QScatterDataProxy *>(element);
+ if (proxy)
+ reinterpret_cast<DeclarativeScatter3DSeries *>(list->data)->setDataProxy(proxy);
+}
+
+DeclarativeSurface3DSeries::DeclarativeSurface3DSeries(QObject *parent)
+ : QSurface3DSeries(parent)
+{
+}
+
+DeclarativeSurface3DSeries::~DeclarativeSurface3DSeries()
+{
+}
+
+QQmlListProperty<QObject> DeclarativeSurface3DSeries::seriesChildren()
+{
+ return QQmlListProperty<QObject>(this, this, &DeclarativeSurface3DSeries::appendSeriesChildren
+ , 0, 0, 0);
+}
+
+void DeclarativeSurface3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element)
+{
+ QSurfaceDataProxy *proxy = qobject_cast<QSurfaceDataProxy *>(element);
+ if (proxy)
+ reinterpret_cast<DeclarativeSurface3DSeries *>(list->data)->setDataProxy(proxy);
+}
+
+QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/declarativeseries_p.h b/src/datavisualizationqml2/declarativeseries_p.h
new file mode 100644
index 00000000..cb6b76c2
--- /dev/null
+++ b/src/datavisualizationqml2/declarativeseries_p.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the QtDataVisualization API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef DECLARATIVESERIES_P_H
+#define DECLARATIVESERIES_P_H
+
+#include "datavisualizationglobal_p.h"
+#include "qbar3dseries.h"
+#include "qscatter3dseries.h"
+#include "qsurface3dseries.h"
+#include <QQmlListProperty>
+
+QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+
+class DeclarativeBar3DSeries : public QBar3DSeries
+{
+ Q_OBJECT
+ Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
+ Q_CLASSINFO("DefaultProperty", "seriesChildren")
+public:
+ DeclarativeBar3DSeries(QObject *parent = 0);
+ virtual ~DeclarativeBar3DSeries();
+
+ QQmlListProperty<QObject> seriesChildren();
+ static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element);
+};
+
+class DeclarativeScatter3DSeries : public QScatter3DSeries
+{
+ Q_OBJECT
+ Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
+ Q_CLASSINFO("DefaultProperty", "seriesChildren")
+public:
+ DeclarativeScatter3DSeries(QObject *parent = 0);
+ virtual ~DeclarativeScatter3DSeries();
+
+ QQmlListProperty<QObject> seriesChildren();
+ static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element);
+};
+
+class DeclarativeSurface3DSeries : public QSurface3DSeries
+{
+ Q_OBJECT
+ Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
+ Q_CLASSINFO("DefaultProperty", "seriesChildren")
+public:
+ DeclarativeSurface3DSeries(QObject *parent = 0);
+ virtual ~DeclarativeSurface3DSeries();
+
+ QQmlListProperty<QObject> seriesChildren();
+ static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element);
+};
+
+QT_DATAVISUALIZATION_END_NAMESPACE
+
+#endif
diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h
index c6284a9b..7e55a594 100644
--- a/src/datavisualizationqml2/declarativesurface_p.h
+++ b/src/datavisualizationqml2/declarativesurface_p.h
@@ -56,6 +56,7 @@ class DeclarativeSurface : public AbstractDeclarative
Q_PROPERTY(ColorGradient *gradient READ gradient WRITE setGradient)
Q_PROPERTY(QPointF selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged)
Q_PROPERTY(QQmlListProperty<QSurface3DSeries> seriesList READ seriesList)
+ Q_CLASSINFO("DefaultProperty", "seriesList")
public:
explicit DeclarativeSurface(QQuickItem *parent = 0);