summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/qmlbars/qml/qmlbars/data.qml30
-rw-r--r--examples/qmlbars/qml/qmlbars/main.qml38
-rw-r--r--examples/qmlscatter/qml/qmlscatter/data.qml18
-rw-r--r--examples/qmlscatter/qml/qmlscatter/main.qml15
-rw-r--r--examples/qmlsurface/qml/qmlsurface/data.qml32
-rw-r--r--examples/qmlsurface/qml/qmlsurface/main.qml44
-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
14 files changed, 273 insertions, 106 deletions
diff --git a/examples/qmlbars/qml/qmlbars/data.qml b/examples/qmlbars/qml/qmlbars/data.qml
index 522926e8..64df4c6a 100644
--- a/examples/qmlbars/qml/qmlbars/data.qml
+++ b/examples/qmlbars/qml/qmlbars/data.qml
@@ -22,11 +22,7 @@ import QtDataVisualization 1.0
Item {
property alias model: dataModel
property alias mapping: valueMapping
- property alias proxy: modelProxy
- property alias series: barSeries
property alias secondaryMapping: secondaryMapping
- property alias secondaryProxy: secondaryProxy
- property alias secondarySeries: secondarySeries
//! [1]
BarDataMapping {
@@ -36,13 +32,6 @@ Item {
valueRole: "expenses"
}
//! [1]
- //! [2]
- ItemModelBarDataProxy {
- id: modelProxy
- activeMapping: valueMapping
- itemModel: dataModel
- }
- //! [2]
BarDataMapping {
id: secondaryMapping
@@ -51,25 +40,6 @@ Item {
valueRole: "income"
}
- ItemModelBarDataProxy {
- id: secondaryProxy
- activeMapping: secondaryMapping
- itemModel: dataModel
- }
-
- Bar3DSeries {
- id: barSeries
- dataProxy: modelProxy
- itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
- }
-
- Bar3DSeries {
- id: secondarySeries
- visible: false
- dataProxy: secondaryProxy
- itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
- }
-
//! [0]
ListModel {
id: dataModel
diff --git a/examples/qmlbars/qml/qmlbars/main.qml b/examples/qmlbars/qml/qmlbars/main.qml
index 4346f392..9432d44b 100644
--- a/examples/qmlbars/qml/qmlbars/main.qml
+++ b/examples/qmlbars/qml/qmlbars/main.qml
@@ -56,12 +56,34 @@ Item {
scene.activeCamera.cameraPreset: AbstractGraph3D.CameraPresetIsometricLeftHigh
columnAxis: graphAxes.column
valueAxis: graphAxes.expenses
- seriesList: [graphData.series, graphData.secondarySeries]
+
+ Bar3DSeries {
+ id: barSeries
+ itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
+
+ ItemModelBarDataProxy {
+ id: modelProxy
+ activeMapping: graphData.mapping
+ itemModel: graphData.model
+ }
+ }
+
+ Bar3DSeries {
+ id: secondarySeries
+ visible: false
+ itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
+
+ ItemModelBarDataProxy {
+ id: secondaryProxy
+ activeMapping: graphData.secondaryMapping
+ itemModel: graphData.model
+ }
+ }
onSelectedBarChanged: {
// Set tableView current row to selected bar
- var rowRole = graphData.proxy.rowLabels[position.x];
- var colRole = graphData.proxy.columnLabels[position.y];
+ var rowRole = modelProxy.rowLabels[position.x];
+ var colRole = modelProxy.columnLabels[position.y];
var currentRow = tableView.currentRow
if (currentRow === -1 || rowRole !== graphData.model.get(currentRow).year
|| colRole !== graphData.model.get(currentRow).month) {
@@ -92,19 +114,19 @@ Item {
text: "Show Income"
//! [0]
onClicked: {
- if (graphData.mapping.valueRole === "expenses" && !graphData.secondarySeries.visible) {
+ if (graphData.mapping.valueRole === "expenses" && !secondarySeries.visible) {
// Change mapping to change series data
graphData.mapping.valueRole = "income"
text = "Show Both"
testGraph.valueAxis = graphAxes.income
} else if (graphData.mapping.valueRole === "income"){
// Show both data set in separate series
- graphData.secondarySeries.visible = true
+ secondarySeries.visible = true
graphData.mapping.valueRole = "expenses"
text = "Show Expenses"
testGraph.valueAxis = graphAxes.income
} else {
- graphData.secondarySeries.visible = false
+ secondarySeries.visible = false
text = "Show Income"
testGraph.valueAxis = graphAxes.expenses
}
@@ -168,8 +190,8 @@ Item {
//! [2]
onCurrentRowChanged: {
- var rowIndex = graphData.proxy.activeMapping.rowCategoryIndex(graphData.model.get(currentRow).year)
- var colIndex = graphData.proxy.activeMapping.columnCategoryIndex(graphData.model.get(currentRow).month)
+ var rowIndex = modelProxy.activeMapping.rowCategoryIndex(graphData.model.get(currentRow).year)
+ var colIndex = modelProxy.activeMapping.columnCategoryIndex(graphData.model.get(currentRow).month)
testGraph.selectedBar = Qt.point(rowIndex, colIndex)
}
//! [2]
diff --git a/examples/qmlscatter/qml/qmlscatter/data.qml b/examples/qmlscatter/qml/qmlscatter/data.qml
index 74993135..523aceb0 100644
--- a/examples/qmlscatter/qml/qmlscatter/data.qml
+++ b/examples/qmlscatter/qml/qmlscatter/data.qml
@@ -21,8 +21,8 @@ import QtDataVisualization 1.0
Item {
//! [3]
- property alias proxy: modelProxy
- property alias series: scatterSeries
+ property alias mapping: scatterMapping
+ property alias model: dataModel
//! [3]
//! [1]
@@ -34,20 +34,6 @@ Item {
}
//! [1]
- //! [2]
- ItemModelScatterDataProxy {
- id: modelProxy
- activeMapping: scatterMapping
- itemModel: dataModel
- }
- //! [2]
-
- Scatter3DSeries {
- id: scatterSeries
- dataProxy: modelProxy
- itemLabelFormat: "X:@xLabel Y:@yLabel Z:@zLabel"
- }
-
//! [0]
ListModel {
id: dataModel
diff --git a/examples/qmlscatter/qml/qmlscatter/main.qml b/examples/qmlscatter/qml/qmlscatter/main.qml
index 1e80b52a..6cae72f8 100644
--- a/examples/qmlscatter/qml/qmlscatter/main.qml
+++ b/examples/qmlscatter/qml/qmlscatter/main.qml
@@ -56,9 +56,6 @@ Item {
theme: AbstractGraph3D.ThemeIsabelle
shadowQuality: AbstractGraph3D.ShadowQualitySoftLow
//! [3]
- //! [5]
- seriesList: [graphData.series]
- //! [5]
//! [6]
axisX.segmentCount: 3
axisX.subSegmentCount: 2
@@ -70,6 +67,18 @@ Item {
axisY.subSegmentCount: 2
axisY.labelFormat: "%.2f"
//! [6]
+ //! [5]
+ Scatter3DSeries {
+ id: scatterSeries
+ itemLabelFormat: "X:@xLabel Y:@yLabel Z:@zLabel"
+
+ ItemModelScatterDataProxy {
+ activeMapping: graphData.mapping
+ itemModel: graphData.model
+ }
+ }
+
+ //! [5]
}
}
diff --git a/examples/qmlsurface/qml/qmlsurface/data.qml b/examples/qmlsurface/qml/qmlsurface/data.qml
index 36c7671a..f9b008df 100644
--- a/examples/qmlsurface/qml/qmlsurface/data.qml
+++ b/examples/qmlsurface/qml/qmlsurface/data.qml
@@ -22,20 +22,6 @@ import QtDataVisualization 1.0
Item {
property alias mapping: surfaceMapping
property alias model: dataModel
- property alias series: surfaceSeries
- property alias heightSeries: heightSeries
-
- //! [0]
- HeightMapSurfaceDataProxy {
- id: heightMapProxy
- heightMapFile: ":/heightmaps/image"
- // We don't want the default data values set by heightmap proxy.
- minZValue: 30
- maxZValue: 60
- minXValue: 67
- maxXValue: 97
- }
- //! [0]
//! [2]
SurfaceDataMapping {
@@ -46,24 +32,6 @@ Item {
}
//! [2]
- //! [3]
- ItemModelSurfaceDataProxy {
- id: modelProxy
- activeMapping: surfaceMapping
- itemModel: dataModel
- }
- //! [3]
-
- Surface3DSeries {
- id: surfaceSeries
- dataProxy: modelProxy
- }
-
- Surface3DSeries {
- id: heightSeries
- dataProxy: heightMapProxy
- }
-
//! [1]
ListModel {
id: dataModel
diff --git a/examples/qmlsurface/qml/qmlsurface/main.qml b/examples/qmlsurface/qml/qmlsurface/main.qml
index f91b6a76..2b44b1d4 100644
--- a/examples/qmlsurface/qml/qmlsurface/main.qml
+++ b/examples/qmlsurface/qml/qmlsurface/main.qml
@@ -57,7 +57,6 @@ Item {
font.family: "STCaiyun"
font.pointSize: 35
scene.activeCamera.cameraPreset: AbstractGraph3D.CameraPresetIsometricLeft
- seriesList: [surfaceData.series]
axisY.min: 0.0
axisY.max: 500.0
axisX.segmentCount: 10
@@ -71,6 +70,15 @@ Item {
axisY.labelFormat: "%i"
gradient: surfaceGradient
+ Surface3DSeries {
+ id: surfaceSeries
+
+ ItemModelSurfaceDataProxy {
+ activeMapping: surfaceData.mapping
+ itemModel: surfaceData.model
+ }
+ }
+
// Since flat is not supported on all platforms, and changes back to smooth
// asynchronously on those platforms, handle button text on changed
// signal handler rather than when we set the value.
@@ -84,6 +92,20 @@ Item {
}
}
+ // TODO: Kept outside until surface supports multiple added series (QTRD-2579)
+ Surface3DSeries {
+ id: heightSeries
+
+ HeightMapSurfaceDataProxy {
+ heightMapFile: ":/heightmaps/image"
+ // We don't want the default data values set by heightmap proxy.
+ minZValue: 30
+ maxZValue: 60
+ minXValue: 67
+ maxXValue: 97
+ }
+ }
+
NewButton {
id: surfaceGridToggle
anchors.top: parent.top
@@ -110,12 +132,12 @@ Item {
text: "Hide Surface"
onClicked: {
if (surfaceplot.seriesList[0].visible === true) {
- surfaceData.series.visible = false;
- surfaceData.heightSeries.visible = false;
+ surfaceSeries.visible = false;
+ heightSeries.visible = false;
text = "Show Surface"
} else {
- surfaceData.series.visible = true;
- surfaceData.heightSeries.visible = true;
+ surfaceSeries.visible = true;
+ heightSeries.visible = true;
text = "Hide Surface"
}
}
@@ -173,19 +195,19 @@ Item {
id: seriesToggle
anchors.top: gridToggle.bottom
width: gridToggle.width
- text: "Switch to Item Model Proxy"
+ text: "Switch to Item Model Series"
//! [3]
onClicked: {
- if (surfaceplot.seriesList[0] === surfaceData.heightSeries) {
+ if (surfaceplot.seriesList[0] === heightSeries) {
surfaceplot.axisY.max = 500.0
- surfaceplot.seriesList = [surfaceData.series]
+ surfaceplot.seriesList = [surfaceSeries]
middleGradient.position = 0.25
- text = "Switch to Height Map Proxy"
+ text = "Switch to Height Map Series"
} else {
surfaceplot.axisY.max = 250.0
- surfaceplot.seriesList = [surfaceData.heightSeries]
+ surfaceplot.seriesList = [heightSeries]
middleGradient.position = 0.55
- text = "Switch to Item Model Proxy"
+ text = "Switch to Item Model Series"
}
}
//! [3]
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);