summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc79
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc133
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc102
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc87
-rw-r--r--src/datavisualization/engine/q3dbars.cpp168
-rw-r--r--src/datavisualization/engine/q3dscatter.cpp137
-rw-r--r--src/datavisualization/engine/q3dsurface.cpp110
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp189
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h115
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2.pro6
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.cpp2
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.h1
-rw-r--r--src/datavisualizationqml2/declarativebars.cpp162
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h94
-rw-r--r--src/datavisualizationqml2/declarativescatter.cpp157
-rw-r--r--src/datavisualizationqml2/declarativescatter_p.h81
-rw-r--r--src/datavisualizationqml2/declarativesurface.cpp147
-rw-r--r--src/datavisualizationqml2/declarativesurface_p.h62
18 files changed, 744 insertions, 1088 deletions
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc
new file mode 100644
index 00000000..c132e251
--- /dev/null
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-abstractdeclarative.qdoc
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+
+/*!
+ \qmltype AbstractDeclarative
+ \inmodule QtDataVisualization
+
+ This type is the base class for all 3D visualizations in Qt Quick 2.
+
+ It resides in the data visualization module that can be imported like this:
+
+ \snippet doc_src_qmldatavisualization.cpp 0
+
+ Note that this type is uncreatable, but contains properties that are shared between
+ the 3D visualizations.
+
+
+ \sa Bars3D, Scatter3D, Surface3D, {Qt Data Visualization C++ Classes}
+ */
+
+/*!
+ \qmlproperty AbstractDeclarative.SelectionMode AbstractDeclarative::selectionMode
+ Active selection mode in the visualization.
+ */
+/*!
+ \qmlproperty AbstractDeclarative.LabelTransparency AbstractDeclarative::labelTransparency
+ Label transparency.
+ */
+
+/*!
+ \qmlproperty AbstractDeclarative.ShadowQuality AbstractDeclarative::shadowQuality
+ Shadow quality.
+ */
+
+/*!
+ \qmlproperty AbstractDeclarative.CameraPreset AbstractDeclarative::cameraPreset
+ Camera preset.
+ */
+
+/*!
+ \qmlproperty AbstractDeclarative.ColorTheme AbstractDeclarative::theme
+ Theme of the graph. Theme affects visualization colors, label colors, text color, background color, window
+ color and grid color. Lighting is also adjusted by themes.
+ */
+
+/*!
+ \qmlproperty font AbstractDeclarative::font
+ Font used for labels.
+ */
+
+/*!
+ \qmlproperty bool AbstractDeclarative::gridVisible
+ Grid visibility. If false, grid lines are not drawn.
+ */
+
+/*!
+ \qmlproperty bool AbstractDeclarative::backgroundVisible
+ Background visibility. If false, background is not drawn.
+ */
+
+/*!
+ \qmlproperty string AbstractDeclarative::itemLabelFormat
+ Label format of single item labels, e.g. a selected datapoint.
+ */
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc
new file mode 100644
index 00000000..b36d6f83
--- /dev/null
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-bars3d.qdoc
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+
+/*!
+ * \qmltype Bars3D
+ * \inherits AbstractDeclarative
+ * \inmodule QtDataVisualization
+ *
+ * This type enables developers to render bar graphs in 3D with Qt Quick 2.
+ *
+ * You will need to import data visualization module to use this type:
+ *
+ * \snippet doc_src_qmldatavisualization.cpp 0
+ *
+ * After that you can use Bars3D in your qml files:
+ *
+ * \snippet doc_src_qmldatavisualization.cpp 1
+ *
+ * See \l{Qt Quick 2 Barchart Example} for more thorough usage example.
+ *
+ * \sa ItemModelBarDataProxy, Scatter3D, Surface3D, {Qt Data Visualization C++ Classes}
+ */
+
+/*!
+ * \qmlmethod void Bars3D::setBarColor(const QColor &baseColor, bool uniform)
+ * Set bar color using your own color. \a baseColor sets the base color of a bar. The \a uniform
+ * -flag is used to define if color needs to be uniform throughout bar's length, or will the colors
+ * be applied by height, starting with dark at the bottom. It is \c true by default.
+ *
+ * Calling this method overrides colors from theme.
+ *
+ * \sa AbstractDeclarative::theme
+ *
+ * \warning This method is subject to change.
+ */
+
+/*!
+ * \qmlproperty BarDataProxy Bars3D::dataProxy
+ * The active data proxy.
+ *
+ * If a proxy is not given, a temporary default proxy is created and activated.
+ * This temporary proxy is destroyed if another proxy is explicitly set active via this property.
+ */
+
+/*!
+ * \qmlproperty CategoryAxis3D Bars3D::rowAxis
+ * A user-defined row axis.
+ *
+ * If an axis is not given, a temporary default axis with no labels is created.
+ * This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ * \qmlproperty ValueAxis3D Bars3D::valueAxis
+ * A user-defined value axis.
+ *
+ * If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ * range is created.
+ * This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ * \qmlproperty CategoryAxis3D Bars3D::columnAxis
+ * A user-defined column axis.
+ *
+ * If an axis is not given, a temporary default axis with no labels is created.
+ * This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+
+/*!
+ * \qmlproperty Bars3D.MeshStyle Bars3D::barType
+ * Bar object type.
+ */
+
+/*!
+ * \qmlproperty real Bars3D::barThickness
+ * Bar thickness ratio between X and Z dimensions. 1.0 means bars are as wide as they are deep, 0.5
+ * makes them twice as deep as they are wide.
+ */
+
+/*!
+ * \qmlproperty size Bars3D::barSpacing
+ * Bar spacing in X and Z dimensions.
+ */
+
+/*!
+ * \qmlproperty bool Bars3D::barSpacingRelative
+ * Relative or absolute bar spacing.
+ */
+
+/*!
+ * \qmlproperty bool Bars3D::barSmoothingEnabled
+ * Bar smoothing. If false, bar shading is flat.
+ */
+
+/*!
+ * \qmlproperty string Bars3D::meshFileName
+ * Override bar type with a mesh object.
+ * \note Object needs to be in Wavefront obj format and include vertices, normals and UVs.
+ * It also needs to be in triangles.
+ */
+
+/*!
+ * \qmlproperty int Bars3D::rows
+ * Row count of data window.
+ */
+
+/*!
+ * \qmlproperty int Bars3D::columns
+ * Column count of data window.
+ */
+
+/*!
+ * \qmlproperty point Bars3D::selectedBarPos
+ * Position of the selected bar in data window. Only one bar can be selected at a time.
+ * To clear selection, specify an illegal position, e.g. Qt.point(-1.0, -1.0).
+ */
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
new file mode 100644
index 00000000..672dd5b7
--- /dev/null
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-scatter3d.qdoc
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+
+/*!
+ \qmltype Scatter3D
+ \inherits AbstractDeclarative
+ \inmodule QtDataVisualization
+
+ This type enables developers to render scatter graphs in 3D with Qt Quick 2.
+
+ You will need to import data visualization module to use this type:
+
+ \snippet doc_src_qmldatavisualization.cpp 0
+
+ After that you can use Scatter3D in your qml files:
+
+ \snippet doc_src_qmldatavisualization.cpp 2
+
+ See \l{Qt Quick 2 Scatter Example} for more thorough usage example.
+
+ \sa ItemModelScatterDataProxy, Bars3D, Surface3D, {Qt Data Visualization C++ Classes}
+ */
+
+/*!
+ * \qmlmethod void Scatter3D::setObjectColor(const QColor &baseColor, bool uniform)
+ * Set item color using your own colors. \a baseColor sets the base color of a item. The \a uniform
+ * -flag is used to define if color needs to be uniform throughout item's length, or will the colors
+ * be applied by height. It is \c true by default.
+ *
+ * Calling this method overrides colors from theme.
+ *
+ * \sa AbstractDeclarative::theme
+ *
+ * \warning This method is subject to change.
+ */
+
+/*!
+ \qmlproperty ScatterDataProxy Scatter3D::dataProxy
+ The active data proxy.
+
+ If a proxy is not given, a temporary default proxy is created and activated.
+ This temporary proxy is destroyed if another proxy is explicitly set active via this property.
+ */
+
+/*!
+ \qmlproperty ValueAxis3D Scatter3D::axisX
+ A user-defined X axis.
+
+ If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ range is created.
+ This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ \qmlproperty ValueAxis3D Scatter3D::axisY
+ A user-defined Y axis.
+
+ If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ range is created.
+ This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ \qmlproperty ValueAxis3D Scatter3D::axisZ
+ A user-defined Z axis.
+
+ If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ range is created.
+ This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ \qmlproperty Scatter3D.MeshStyle Scatter3D::objectType
+ Dot object type.
+ */
+
+/*!
+ \qmlproperty bool Scatter3D::objectSmoothingEnabled
+ Dot smoothing. If false, dot shading is flat.
+ */
+
+/*!
+ \qmlproperty string Scatter3D::meshFileName
+ Override object type with a mesh object.
+ \note Object needs to be in Wavefront obj format and include vertices, normals and UVs.
+ It also needs to be in triangles.
+ */
diff --git a/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc b/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
new file mode 100644
index 00000000..069fa9e9
--- /dev/null
+++ b/src/datavisualization/doc/src/qtdatavisualization-qml-surface3d.qdoc
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+
+/*!
+ \qmltype Surface3D
+ \inherits AbstractDeclarative
+ \inmodule QtDataVisualization
+
+ This type enables developers to render surface plots in 3D with Qt Quick 2.
+
+ You will need to import data visualization module to use this type:
+
+ \snippet doc_src_qmldatavisualization.cpp 0
+
+ After that you can use Surface3D in your qml files:
+
+ \snippet doc_src_qmldatavisualization.cpp 3
+
+ See \l{Qt Quick 2 Surface Example} for more thorough usage example.
+
+ \sa ItemModelSurfaceDataProxy, Bars3D, Scatter3D, {Qt Data Visualization C++ Classes}
+ */
+
+/*!
+ \qmlproperty SurfaceDataProxy Surface3D::dataProxy
+ The active data proxy.
+
+ If a proxy is not given, a temporary default proxy is created and activated.
+ This temporary proxy is destroyed if another proxy is explicitly set active via this property.
+ */
+
+/*!
+ \qmlproperty ValueAxis3D Surface3D::axisX
+ A user-defined X axis.
+
+ If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ range is created.
+ This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ \qmlproperty ValueAxis3D Surface3D::axisY
+ A user-defined Y axis.
+
+ If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ range is created.
+ This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ \qmlproperty ValueAxis3D Surface3D::axisZ
+ A user-defined Z axis.
+
+ If an axis is not given, a temporary default axis with no labels and automatically adjusting
+ range is created.
+ This temporary axis is destroyed if another axis is explicitly set to same orientation.
+ */
+
+/*!
+ \qmlproperty bool Surface3D::smoothSurfaceEnabled
+ Smoothing of surface. If false, shading of the surface is flat.
+ */
+
+/*!
+ \qmlproperty bool Surface3D::surfaceGridEnabled
+ Surface grid visibility. If false, no surface grid is drawn.
+ */
+
+/*!
+ \qmlproperty var Surface3D::gradient
+ The current surface gradient. Setting this property replaces the previous gradient.
+ */
diff --git a/src/datavisualization/engine/q3dbars.cpp b/src/datavisualization/engine/q3dbars.cpp
index fb46a14c..a4b93840 100644
--- a/src/datavisualization/engine/q3dbars.cpp
+++ b/src/datavisualization/engine/q3dbars.cpp
@@ -90,174 +90,6 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
- * \qmltype Bars3D
- * \instantiates Q3DBars
- *
- * This type enables developers to render bar graphs in 3D with Qt Quick 2.
- *
- * You will need to import data visualization module to use this type:
- *
- * \snippet doc_src_qmldatavisualization.cpp 0
- *
- * After that you can use Bars3D in your qml files:
- *
- * \snippet doc_src_qmldatavisualization.cpp 1
- *
- * See \l{Qt Quick 2 Barchart Example} for more thorough usage example.
- *
- * \sa ItemModelBarDataProxy, Scatter3D, Surface3D, {Qt Data Visualization C++ Classes}
- */
-
-/*!
- * \qmlmethod void Bars3D::setCameraPosition(qreal horizontal, qreal vertical, int distance)
- * Move camera to a wanted position based on \a horizontal and \a vertical angles. Angles are limited
- * to -180...180 in horizontal direction and either -90...90 or 0...90 in vertical, depending
- * on data values. Negative vertical angles are allowed only if there are negative bar values.
- * \a distance is adjustable between 10 and 500, being \c 100 by default.
- */
-
-/*!
- * \qmlmethod void Bars3D::setBarColor(const QColor &baseColor, bool uniform)
- * Set bar color using your own color. \a baseColor sets the base color of a bar. The \a uniform
- * -flag is used to define if color needs to be uniform throughout bar's length, or will the colors
- * be applied by height, starting with dark at the bottom. It is \c true by default.
- *
- * Calling this method overrides colors from theme.
- *
- * \sa theme
- *
- * \warning This method is subject to change.
- */
-
-/*!
- * \qmlproperty BarDataProxy Bars3D::dataProxy
- * The active data proxy.
- *
- * If a proxy is not given, a temporary default proxy is created and activated.
- * This temporary proxy is destroyed if another proxy is explicitly set active via this property.
- */
-
-/*!
- * \qmlproperty CategoryAxis3D Bars3D::rowAxis
- * A user-defined row axis.
- *
- * If an axis is not given, a temporary default axis with no labels is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Bars3D::valueAxis
- * A user-defined value axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty CategoryAxis3D Bars3D::columnAxis
- * A user-defined column axis.
- *
- * If an axis is not given, a temporary default axis with no labels is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty Bars3D.SelectionMode Bars3D::selectionMode
- * Bar selection mode.
- */
-
-/*!
- * \qmlproperty Bars3D.LabelTransparency Bars3D::labelTransparency
- * Label transparency.
- */
-
-/*!
- * \qmlproperty Bars3D.ShadowQuality Bars3D::shadowQuality
- * Shadow quality.
- */
-
-/*!
- * \qmlproperty Bars3D.MeshStyle Bars3D::barType
- * Bar object type.
- */
-
-/*!
- * \qmlproperty Bars3D.CameraPreset Bars3D::cameraPreset
- * Camera preset.
- */
-
-/*!
- * \qmlproperty Bars3D.ColorTheme Bars3D::theme
- * Theme of the graph. Theme affects bar colors, label colors, text color, background color, window
- * color and grid color. Lighting is also adjusted by themes.
- */
-
-/*!
- * \qmlproperty real Bars3D::barThickness
- * Bar thickness ratio between X and Z dimensions. 1.0 means bars are as wide as they are deep, 0.5
- * makes them twice as deep as they are wide.
- */
-
-/*!
- * \qmlproperty size Bars3D::barSpacing
- * Bar spacing in X and Z dimensions.
- */
-
-/*!
- * \qmlproperty bool Bars3D::barSpacingRelative
- * Relative or absolute bar spacing.
- */
-
-/*!
- * \qmlproperty bool Bars3D::barSmoothingEnabled
- * Bar smoothing. If false, bar shading is flat.
- */
-
-/*!
- * \qmlproperty string Bars3D::meshFileName
- * Override bar type with a mesh object.
- * \note Object needs to be in Wavefront obj format and include vertices, normals and UVs.
- * It also needs to be in triangles.
- */
-
-/*!
- * \qmlproperty font Bars3D::font
- * Font used for labels.
- */
-
-/*!
- * \qmlproperty bool Bars3D::gridVisible
- * Grid visibility. If false, grid lines are not drawn.
- */
-
-/*!
- * \qmlproperty bool Bars3D::backgroundVisible
- * Background visibility. If false, background is not drawn.
- */
-
-/*!
- * \qmlproperty int Bars3D::rows
- * Row count of data window.
- */
-
-/*!
- * \qmlproperty int Bars3D::columns
- * Column count of data window.
- */
-
-/*!
- * \qmlproperty string Bars3D::itemLabelFormat
- * Label format of single item labels, e.g. a selected bar.
- */
-
-/*!
- * \qmlproperty point Bars3D::selectedBarPos
- * Position of the selected bar in data window. Only one bar can be selected at a time.
- * To clear selection, specify an illegal position, e.g. Qt.point(-1.0, -1.0).
- */
-
-/*!
* Constructs a new 3D bar window.
*/
Q3DBars::Q3DBars()
diff --git a/src/datavisualization/engine/q3dscatter.cpp b/src/datavisualization/engine/q3dscatter.cpp
index cb06c99f..28c453e3 100644
--- a/src/datavisualization/engine/q3dscatter.cpp
+++ b/src/datavisualization/engine/q3dscatter.cpp
@@ -81,143 +81,6 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
- * \qmltype Scatter3D
- * \instantiates Q3DScatter
- *
- * This type enables developers to render scatter graphs in 3D with Qt Quick 2.
- *
- * You will need to import data visualization module to use this type:
- *
- * \snippet doc_src_qmldatavisualization.cpp 0
- *
- * After that you can use Scatter3D in your qml files:
- *
- * \snippet doc_src_qmldatavisualization.cpp 2
- *
- * See \l{Qt Quick 2 Scatter Example} for more thorough usage example.
- *
- * \sa ItemModelScatterDataProxy, Bars3D, Surface3D, {Qt Data Visualization C++ Classes}
- */
-
-/*!
- * \qmlmethod void Scatter3D::setCameraPosition(qreal horizontal, qreal vertical, int distance)
- * Move camera to a wanted position based on \a horizontal and \a vertical angles. Angles are limited
- * to -180...180 in horizontal direction and -90...90 in vertical. \a distance is adjustable
- * between 10 and 500, being \c 100 by default.
- */
-
-/*!
- * \qmlmethod void Scatter3D::setObjectColor(const QColor &baseColor, bool uniform)
- * Set item color using your own colors. \a baseColor sets the base color of a item. The \a uniform
- * -flag is used to define if color needs to be uniform throughout item's length, or will the colors
- * be applied by height. It is \c true by default.
- *
- * Calling this method overrides colors from theme.
- *
- * \sa theme
- *
- * \warning This method is subject to change.
- */
-
-/*!
- * \qmlproperty ScatterDataProxy Scatter3D::dataProxy
- * The active data proxy.
- *
- * If a proxy is not given, a temporary default proxy is created and activated.
- * This temporary proxy is destroyed if another proxy is explicitly set active via this property.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Scatter3D::axisX
- * A user-defined X axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Scatter3D::axisY
- * A user-defined Y axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Scatter3D::axisZ
- * A user-defined Z axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty Scatter3D.SelectionMode Scatter3D::selectionMode
- * Dot selection mode.
- */
-
-/*!
- * \qmlproperty Scatter3D.LabelTransparency Scatter3D::labelTransparency
- * Label transparency.
- */
-
-/*!
- * \qmlproperty Scatter3D.ShadowQuality Scatter3D::shadowQuality
- * Shadow quality.
- */
-
-/*!
- * \qmlproperty Scatter3D.MeshStyle Scatter3D::objectType
- * Dot object type.
- */
-
-/*!
- * \qmlproperty Scatter3D.CameraPreset Scatter3D::cameraPreset
- * Camera preset.
- */
-
-/*!
- * \qmlproperty Scatter3D.ColorTheme Scatter3D::theme
- * Theme of the graph. Theme affects bar colors, label colors, text color, background color, window
- * color and grid color. Lighting is also adjusted by themes.
- */
-
-/*!
- * \qmlproperty bool Scatter3D::objectSmoothingEnabled
- * Dot smoothing. If false, dot shading is flat.
- */
-
-/*!
- * \qmlproperty string Scatter3D::meshFileName
- * Override object type with a mesh object.
- * \note Object needs to be in Wavefront obj format and include vertices, normals and UVs.
- * It also needs to be in triangles.
- */
-
-/*!
- * \qmlproperty font Scatter3D::font
- * Font used for labels.
- */
-
-/*!
- * \qmlproperty bool Scatter3D::gridVisible
- * Grid visibility. If false, grid lines are not drawn.
- */
-
-/*!
- * \qmlproperty bool Scatter3D::backgroundVisible
- * Background visibility. If false, background is not drawn.
- */
-
-/*!
- * \qmlproperty string Scatter3D::itemLabelFormat
- * Label format of single item labels, e.g. a selected bar.
- */
-
-/*!
* Constructs a new 3D scatter window.
*/
Q3DScatter::Q3DScatter()
diff --git a/src/datavisualization/engine/q3dsurface.cpp b/src/datavisualization/engine/q3dsurface.cpp
index 78ec70d4..c8249399 100644
--- a/src/datavisualization/engine/q3dsurface.cpp
+++ b/src/datavisualization/engine/q3dsurface.cpp
@@ -93,116 +93,6 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
- * \qmltype Surface3D
- * \instantiates Q3DSurface
- *
- * This type enables developers to render surface plots in 3D with Qt Quick 2.
- *
- * You will need to import data visualization module to use this type:
- *
- * \snippet doc_src_qmldatavisualization.cpp 0
- *
- * After that you can use Surface3D in your qml files:
- *
- * \snippet doc_src_qmldatavisualization.cpp 3
- *
- * See \l{Qt Quick 2 Surface Example} for more thorough usage example.
- *
- * \sa ItemModelSurfaceDataProxy, Bars3D, Scatter3D, {Qt Data Visualization C++ Classes}
- */
-
-/*!
- * \qmlproperty SurfaceDataProxy Surface3D::dataProxy
- * The active data proxy.
- *
- * If a proxy is not given, a temporary default proxy is created and activated.
- * This temporary proxy is destroyed if another proxy is explicitly set active via this property.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Surface3D::axisX
- * A user-defined X axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Surface3D::axisY
- * A user-defined Y axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty ValueAxis3D Surface3D::axisZ
- * A user-defined Z axis.
- *
- * If an axis is not given, a temporary default axis with no labels and automatically adjusting
- * range is created.
- * This temporary axis is destroyed if another axis is explicitly set to same orientation.
- */
-
-/*!
- * \qmlproperty Surface3D.LabelTransparency Surface3D::labelTransparency
- * Label transparency.
- */
-
-/*!
- * \qmlproperty Surface3D.ShadowQuality Surface3D::shadowQuality
- * Shadow quality.
- */
-
-/*!
- * \qmlproperty Surface3D.CameraPreset Surface3D::cameraPreset
- * Camera preset.
- */
-
-/*!
- * \qmlproperty Surface3D.ColorTheme Surface3D::theme
- * Theme of the graph. Theme affects label colors, text color, background color, window
- * color and grid color. Lighting is also adjusted by themes.
- */
-
-/*!
- * \qmlproperty font Surface3D::font
- * Font used for labels.
- */
-
-/*!
- * \qmlproperty bool Surface3D::gridVisible
- * Axis grid visibility. If false, grid lines are not drawn.
- */
-
-/*!
- * \qmlproperty bool Surface3D::backgroundVisible
- * Background visibility. If false, background is not drawn.
- */
-
-/*!
- * \qmlproperty bool Surface3D::smoothSurfaceEnabled
- * Smoothing of surface. If false, shading of the surface is flat.
- */
-
-/*!
- * \qmlproperty bool Surface3D::surfaceGridEnabled
- * Surface grid visibility. If false, no surface grid is drawn.
- */
-
-/*!
- * \qmlproperty string Surface3D::itemLabelFormat
- * Label format of single item labels, e.g. a selected bar.
- */
-
-/*!
- * \qmlproperty var Surface3D::gradient
- * The current surface gradient. Setting this property replaces the previous gradient.
- */
-
-/*!
* Constructs a new 3D surface window.
*/
Q3DSurface::Q3DSurface()
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
new file mode 100644
index 00000000..a2b39bf0
--- /dev/null
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** 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 "abstractdeclarative_p.h"
+#include "q3dvalueaxis.h"
+#include "theme_p.h"
+
+QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+
+AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) :
+ QQuickItem(parent)
+{
+}
+
+AbstractDeclarative::~AbstractDeclarative()
+{
+}
+
+void AbstractDeclarative::setCameraPosition(qreal horizontal, qreal vertical, int distance)
+{
+ m_controller->setCameraPosition(GLfloat(horizontal), GLfloat(vertical), GLint(distance));
+}
+
+void AbstractDeclarative::setCameraPreset(QDataVis::CameraPreset preset)
+{
+ m_controller->setCameraPreset(preset);
+}
+
+QDataVis::CameraPreset AbstractDeclarative::cameraPreset() const
+{
+ return m_controller->cameraPreset();
+}
+
+void AbstractDeclarative::setTheme(QDataVis::ColorTheme theme)
+{
+ // TODO: Implement correctly once "user-modifiable themes" (QTRD-2120) is implemented
+ m_controller->setColorTheme(theme);
+}
+
+QDataVis::ColorTheme AbstractDeclarative::theme() const
+{
+ return m_controller->theme().colorTheme();
+}
+
+void AbstractDeclarative::setSelectionMode(QDataVis::SelectionMode mode)
+{
+ m_controller->setSelectionMode(mode);
+}
+
+QDataVis::SelectionMode AbstractDeclarative::selectionMode() const
+{
+ return m_controller->selectionMode();
+}
+
+void AbstractDeclarative::setFont(const QFont &font)
+{
+ m_controller->setFont(font);
+}
+
+QFont AbstractDeclarative::font() const
+{
+ return m_controller->font();
+}
+
+void AbstractDeclarative::setLabelTransparency(QDataVis::LabelTransparency transparency)
+{
+ m_controller->setLabelTransparency(transparency);
+}
+
+QDataVis::LabelTransparency AbstractDeclarative::labelTransparency() const
+{
+ return m_controller->labelTransparency();
+}
+
+void AbstractDeclarative::setGridVisible(bool visible)
+{
+ m_controller->setGridEnabled(visible);
+}
+
+bool AbstractDeclarative::isGridVisible() const
+{
+ return m_controller->gridEnabled();
+}
+
+void AbstractDeclarative::setBackgroundVisible(bool visible)
+{
+ m_controller->setBackgroundEnabled(visible);
+}
+
+bool AbstractDeclarative::isBackgroundVisible() const
+{
+ return m_controller->backgroundEnabled();
+}
+
+void AbstractDeclarative::setShadowQuality(QDataVis::ShadowQuality quality)
+{
+ m_controller->setShadowQuality(quality);
+}
+
+QDataVis::ShadowQuality AbstractDeclarative::shadowQuality() const
+{
+ return m_controller->shadowQuality();
+}
+
+void AbstractDeclarative::setItemLabelFormat(const QString &format)
+{
+ m_controller->activeDataProxy()->setItemLabelFormat(format);
+}
+
+QString AbstractDeclarative::itemLabelFormat() const
+{
+ return m_controller->activeDataProxy()->itemLabelFormat();
+}
+
+void AbstractDeclarative::setSharedController(Abstract3DController *controller)
+{
+ Q_ASSERT(controller);
+ m_controller = controller;
+ QObject::connect(m_controller, &Abstract3DController::shadowQualityChanged, this,
+ &AbstractDeclarative::handleShadowQualityUpdate);
+}
+
+
+void AbstractDeclarative::mouseDoubleClickEvent(QMouseEvent *event)
+{
+#if defined(Q_OS_ANDROID)
+ m_controller->mouseDoubleClickEvent(event);
+#else
+ Q_UNUSED(event)
+#endif
+}
+
+void AbstractDeclarative::touchEvent(QTouchEvent *event)
+{
+#if defined(Q_OS_ANDROID)
+ m_controller->touchEvent(event);
+ update();
+#else
+ Q_UNUSED(event)
+#endif
+}
+
+void AbstractDeclarative::mousePressEvent(QMouseEvent *event)
+{
+ QPoint mousePos = event->pos();
+ //mousePos.setY(height() - mousePos.y());
+ m_controller->mousePressEvent(event, mousePos);
+}
+
+void AbstractDeclarative::mouseReleaseEvent(QMouseEvent *event)
+{
+ QPoint mousePos = event->pos();
+ //mousePos.setY(height() - mousePos.y());
+ m_controller->mouseReleaseEvent(event, mousePos);
+}
+
+void AbstractDeclarative::mouseMoveEvent(QMouseEvent *event)
+{
+ QPoint mousePos = event->pos();
+ //mousePos.setY(height() - mousePos.y());
+ m_controller->mouseMoveEvent(event, mousePos);
+}
+
+void AbstractDeclarative::wheelEvent(QWheelEvent *event)
+{
+ m_controller->wheelEvent(event);
+}
+
+void AbstractDeclarative::handleShadowQualityUpdate(QDataVis::ShadowQuality quality)
+{
+ emit shadowQualityChanged(quality);
+}
+
+QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
new file mode 100644
index 00000000..a7f03cc7
--- /dev/null
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** 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 ABSTRACTDECLARATIVE_P_H
+#define ABSTRACTDECLARATIVE_P_H
+
+#include "datavisualizationglobal_p.h"
+#include "abstract3dcontroller_p.h"
+
+#include <QAbstractItemModel>
+#include <QQuickItem>
+#include <QObject>
+
+QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+
+class AbstractDeclarative : public QQuickItem
+{
+ Q_OBJECT
+ Q_PROPERTY(QtDataVisualization::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
+ Q_PROPERTY(QtDataVisualization::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
+ Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
+ Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset)
+ Q_PROPERTY(QtDataVisualization::QDataVis::ColorTheme theme READ theme WRITE setTheme)
+ Q_PROPERTY(QFont font READ font WRITE setFont)
+ Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
+ Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible)
+ Q_ENUMS(QtDataVisualization::QDataVis::SelectionMode)
+ Q_ENUMS(QtDataVisualization::QDataVis::ShadowQuality)
+ Q_ENUMS(QtDataVisualization::QDataVis::LabelTransparency)
+ Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset)
+ Q_ENUMS(QtDataVisualization::QDataVis::ColorTheme)
+ Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
+
+public:
+ explicit AbstractDeclarative(QQuickItem *parent = 0);
+ virtual ~AbstractDeclarative();
+
+ Q_INVOKABLE void setCameraPosition(qreal horizontal, qreal vertical, int distance);
+
+ virtual void setCameraPreset(QDataVis::CameraPreset preset);
+ virtual QDataVis::CameraPreset cameraPreset() const;
+
+ virtual void setTheme(QDataVis::ColorTheme theme);
+ virtual QDataVis::ColorTheme theme() const;
+
+ virtual void setSelectionMode(QDataVis::SelectionMode mode);
+ virtual QDataVis::SelectionMode selectionMode() const;
+
+ virtual void setFont(const QFont &font);
+ virtual QFont font() const;
+
+ virtual void setLabelTransparency(QDataVis::LabelTransparency transparency);
+ virtual QDataVis::LabelTransparency labelTransparency() const;
+
+ virtual void setGridVisible(bool visible);
+ virtual bool isGridVisible() const;
+
+ virtual void setBackgroundVisible(bool visible);
+ virtual bool isBackgroundVisible() const;
+
+ virtual void setShadowQuality(QDataVis::ShadowQuality quality);
+ virtual QDataVis::ShadowQuality shadowQuality() const;
+
+ virtual void setItemLabelFormat(const QString &format);
+ virtual QString itemLabelFormat() const;
+
+ void setSharedController(Abstract3DController *controller);
+
+protected:
+ virtual void mouseDoubleClickEvent(QMouseEvent *event);
+ virtual void touchEvent(QTouchEvent *event);
+ virtual void mousePressEvent(QMouseEvent *event);
+ virtual void mouseReleaseEvent(QMouseEvent *event);
+ virtual void mouseMoveEvent(QMouseEvent *event);
+ virtual void wheelEvent(QWheelEvent *event);
+
+ // Used to detect when shadow quality changes autonomously due to e.g. resizing.
+ virtual void handleShadowQualityUpdate(QDataVis::ShadowQuality quality);
+
+signals:
+ // Signals shadow quality changes.
+ void shadowQualityChanged(QDataVis::ShadowQuality quality);
+
+private:
+ Abstract3DController *m_controller;
+};
+
+QT_DATAVISUALIZATION_END_NAMESPACE
+
+#endif // ABSTRACTDECLARATIVE_P_H
diff --git a/src/datavisualizationqml2/datavisualizationqml2.pro b/src/datavisualizationqml2/datavisualizationqml2.pro
index c5ee910b..68e267ed 100644
--- a/src/datavisualizationqml2/datavisualizationqml2.pro
+++ b/src/datavisualizationqml2/datavisualizationqml2.pro
@@ -23,7 +23,8 @@ SOURCES += \
declarativescatter.cpp \
declarativescatterrenderer.cpp \
declarativesurface.cpp \
- declarativesurfacerenderer.cpp
+ declarativesurfacerenderer.cpp \
+ abstractdeclarative.cpp
HEADERS += \
datavisualizationqml2_plugin.h \
@@ -32,7 +33,8 @@ HEADERS += \
declarativescatter_p.h \
declarativescatterrenderer_p.h \
declarativesurface_p.h \
- declarativesurfacerenderer_p.h
+ declarativesurfacerenderer_p.h \
+ abstractdeclarative_p.h
OTHER_FILES = qmldir
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
index db3cb6f5..5bb9ed3a 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
@@ -41,6 +41,8 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
QLatin1String("Trying to create uncreatable: ScatterDataProxy."));
qmlRegisterUncreatableType<QSurfaceDataProxy>(uri, 1, 0, "SurfaceDataProxy",
QLatin1String("Trying to create uncreatable: SurfaceDataProxy."));
+ qmlRegisterUncreatableType<AbstractDeclarative>(uri, 1, 0, "AbstractDeclarative",
+ QLatin1String("Trying to create uncreatable: AbstractDeclarative."));
qmlRegisterType<QItemModelBarDataMapping>(uri, 1, 0, "BarDataMapping");
qmlRegisterType<QItemModelScatterDataMapping>(uri, 1, 0, "ScatterDataMapping");
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
index 19106279..31066c47 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
@@ -37,6 +37,7 @@
QT_DATAVISUALIZATION_USE_NAMESPACE
+Q_DECLARE_METATYPE(AbstractDeclarative *)
Q_DECLARE_METATYPE(DeclarativeBars *)
Q_DECLARE_METATYPE(DeclarativeScatter *)
Q_DECLARE_METATYPE(DeclarativeSurface *)
diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp
index c757c804..c15ca495 100644
--- a/src/datavisualizationqml2/declarativebars.cpp
+++ b/src/datavisualizationqml2/declarativebars.cpp
@@ -27,7 +27,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
const QString smoothString(QStringLiteral("Smooth"));
DeclarativeBars::DeclarativeBars(QQuickItem *parent)
- : QQuickItem(parent),
+ : AbstractDeclarative(parent),
m_shared(0),
m_initialisedSize(0, 0)
{
@@ -40,8 +40,7 @@ DeclarativeBars::DeclarativeBars(QQuickItem *parent)
// Create the shared component on the main GUI thread.
m_shared = new Bars3DController(boundingRect().toRect());
- QObject::connect(m_shared, &Abstract3DController::shadowQualityChanged, this,
- &DeclarativeBars::handleShadowQualityUpdate);
+ AbstractDeclarative::setSharedController(m_shared);
QObject::connect(m_shared, &Bars3DController::selectedBarPosChanged, this,
&DeclarativeBars::selectedBarPosChanged);
@@ -54,10 +53,6 @@ DeclarativeBars::~DeclarativeBars()
delete m_shared;
}
-void DeclarativeBars::handleShadowQualityUpdate(QDataVis::ShadowQuality quality)
-{
- emit shadowQualityChanged(quality);
-}
QSGNode *DeclarativeBars::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
@@ -87,11 +82,6 @@ void DeclarativeBars::setBarColor(const QColor &baseColor, bool uniform)
m_shared->setObjectColor(baseColor, uniform);
}
-void DeclarativeBars::setCameraPosition(qreal horizontal, qreal vertical, int distance)
-{
- m_shared->setCameraPosition(GLfloat(horizontal), GLfloat(vertical), GLint(distance));
-}
-
void DeclarativeBars::setDataProxy(QBarDataProxy *dataProxy)
{
m_shared->setActiveDataProxy(dataProxy);
@@ -137,7 +127,7 @@ void DeclarativeBars::setBarThickness(qreal thicknessRatio)
m_shared->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), isBarSpacingRelative());
}
-qreal DeclarativeBars::barThickness()
+qreal DeclarativeBars::barThickness() const
{
return m_shared->barThickness();
}
@@ -147,7 +137,7 @@ void DeclarativeBars::setBarSpacing(QSizeF spacing)
m_shared->setBarSpecs(GLfloat(barThickness()), spacing, isBarSpacingRelative());
}
-QSizeF DeclarativeBars::barSpacing()
+QSizeF DeclarativeBars::barSpacing() const
{
return m_shared->barSpacing();
}
@@ -157,7 +147,7 @@ void DeclarativeBars::setBarSpacingRelative(bool relative)
m_shared->setBarSpecs(GLfloat(barThickness()), barSpacing(), relative);
}
-bool DeclarativeBars::isBarSpacingRelative()
+bool DeclarativeBars::isBarSpacingRelative() const
{
return m_shared->isBarSpecRelative();
}
@@ -169,7 +159,7 @@ void DeclarativeBars::setBarType(QDataVis::MeshStyle style)
m_shared->setBarType(style, smooth);
}
-QDataVis::MeshStyle DeclarativeBars::barType()
+QDataVis::MeshStyle DeclarativeBars::barType() const
{
QString objFile = m_shared->meshFileName();
if (objFile.contains("/sphere"))
@@ -195,7 +185,7 @@ void DeclarativeBars::setBarSmoothingEnabled(bool enabled)
m_shared->setMeshFileName(objFile);
}
-bool DeclarativeBars::isBarSmoothingEnabled()
+bool DeclarativeBars::isBarSmoothingEnabled() const
{
QString objFile = m_shared->meshFileName();
return objFile.endsWith(smoothString);
@@ -206,102 +196,11 @@ void DeclarativeBars::setMeshFileName(const QString &objFileName)
m_shared->setMeshFileName(objFileName);
}
-QString DeclarativeBars::meshFileName()
+QString DeclarativeBars::meshFileName() const
{
return m_shared->meshFileName();
}
-void DeclarativeBars::setCameraPreset(QDataVis::CameraPreset preset)
-{
- m_shared->setCameraPreset(preset);
-}
-
-QDataVis::CameraPreset DeclarativeBars::cameraPreset()
-{
- return m_shared->cameraPreset();
-}
-
-void DeclarativeBars::setTheme(QDataVis::ColorTheme theme)
-{
- // TODO: Implement correctly once "user-modifiable themes" (QTRD-2120) is implemented
- m_shared->setColorTheme(theme);
-}
-
-QDataVis::ColorTheme DeclarativeBars::theme()
-{
- return m_shared->theme().colorTheme();
-}
-
-void DeclarativeBars::setFont(const QFont &font)
-{
- m_shared->setFont(font);
-}
-
-QFont DeclarativeBars::font()
-{
- return m_shared->font();
-}
-
-void DeclarativeBars::setLabelTransparency(QDataVis::LabelTransparency transparency)
-{
- m_shared->setLabelTransparency(transparency);
-}
-
-QDataVis::LabelTransparency DeclarativeBars::labelTransparency()
-{
- return m_shared->labelTransparency();
-}
-
-void DeclarativeBars::setGridVisible(bool visible)
-{
- m_shared->setGridEnabled(visible);
-}
-
-bool DeclarativeBars::isGridVisible()
-{
- return m_shared->gridEnabled();
-}
-
-void DeclarativeBars::setBackgroundVisible(bool visible)
-{
- m_shared->setBackgroundEnabled(visible);
-}
-
-bool DeclarativeBars::isBackgroundVisible()
-{
- return m_shared->backgroundEnabled();
-}
-
-void DeclarativeBars::setSelectionMode(QDataVis::SelectionMode mode)
-{
- m_shared->setSelectionMode(mode);
-}
-
-QDataVis::SelectionMode DeclarativeBars::selectionMode()
-{
- return m_shared->selectionMode();
-}
-
-void DeclarativeBars::setShadowQuality(QDataVis::ShadowQuality quality)
-{
- m_shared->setShadowQuality(quality);
-}
-
-QDataVis::ShadowQuality DeclarativeBars::shadowQuality()
-{
- return m_shared->shadowQuality();
-}
-
-void DeclarativeBars::setItemLabelFormat(const QString &format)
-{
- m_shared->activeDataProxy()->setItemLabelFormat(format);
-}
-
-QString DeclarativeBars::itemLabelFormat()
-{
- return m_shared->activeDataProxy()->itemLabelFormat();
-}
-
void DeclarativeBars::setSelectedBarPos(const QPointF &position)
{
m_shared->setSelectedBarPos(position.toPoint());
@@ -312,49 +211,4 @@ QPointF DeclarativeBars::selectedBarPos() const
return QPointF(m_shared->selectedBarPos());
}
-void DeclarativeBars::mouseDoubleClickEvent(QMouseEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->mouseDoubleClickEvent(event);
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeBars::touchEvent(QTouchEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->touchEvent(event);
- update();
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeBars::mousePressEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mousePressEvent(event, mousePos);
-}
-
-void DeclarativeBars::mouseReleaseEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseReleaseEvent(event, mousePos);
-}
-
-void DeclarativeBars::mouseMoveEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseMoveEvent(event, mousePos);
-}
-
-void DeclarativeBars::wheelEvent(QWheelEvent *event)
-{
- m_shared->wheelEvent(event);
-}
-
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h
index 78223773..dfbf9934 100644
--- a/src/datavisualizationqml2/declarativebars_p.h
+++ b/src/datavisualizationqml2/declarativebars_p.h
@@ -30,6 +30,7 @@
#define DECLARATIVEBARS_P_H
#include "datavisualizationglobal_p.h"
+#include "abstractdeclarative_p.h"
#include "bars3dcontroller_p.h"
#include "declarativebars_p.h"
#include "q3dvalueaxis.h"
@@ -43,49 +44,28 @@
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-class DeclarativeBars : public QQuickItem
+class DeclarativeBars : public AbstractDeclarative
{
Q_OBJECT
Q_PROPERTY(QBarDataProxy *dataProxy READ dataProxy WRITE setDataProxy)
Q_PROPERTY(Q3DCategoryAxis *rowAxis READ rowAxis WRITE setRowAxis)
Q_PROPERTY(Q3DValueAxis *valueAxis READ valueAxis WRITE setValueAxis)
Q_PROPERTY(Q3DCategoryAxis *columnAxis READ columnAxis WRITE setColumnAxis)
- Q_PROPERTY(QtDataVisualization::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
- Q_PROPERTY(QtDataVisualization::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
- Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle barType READ barType WRITE setBarType)
- Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset)
- Q_PROPERTY(QtDataVisualization::QDataVis::ColorTheme theme READ theme WRITE setTheme)
Q_PROPERTY(qreal barThickness READ barThickness WRITE setBarThickness)
Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing)
Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative)
Q_PROPERTY(bool barSmoothingEnabled READ isBarSmoothingEnabled WRITE setBarSmoothingEnabled)
Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName)
- Q_PROPERTY(QFont font READ font WRITE setFont)
- Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
- Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible)
- Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
Q_PROPERTY(QPointF selectedBarPos READ selectedBarPos WRITE setSelectedBarPos NOTIFY selectedBarPosChanged)
- Q_ENUMS(QtDataVisualization::QDataVis::SelectionMode)
- Q_ENUMS(QtDataVisualization::QDataVis::ShadowQuality)
- Q_ENUMS(QtDataVisualization::QDataVis::LabelTransparency)
Q_ENUMS(QtDataVisualization::QDataVis::MeshStyle)
- Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset)
- Q_ENUMS(QtDataVisualization::QDataVis::ColorTheme)
public:
explicit DeclarativeBars(QQuickItem *parent = 0);
~DeclarativeBars();
- // Set color if you don't want to use themes. Set uniform to false if you want the (height)
- // color to change from bottom to top
Q_INVOKABLE void setBarColor(const QColor &baseColor, bool uniform = true);
- // Set camera rotation if you don't want to use the presets (in horizontal (-180...180) and
- // vertical (0...90) (or (-90...90) if there are negative values) angles and distance in
- // percentage (10...500))
- Q_INVOKABLE void setCameraPosition(qreal horizontal, qreal vertical, int distance);
-
QBarDataProxy *dataProxy() const;
void setDataProxy(QBarDataProxy *dataProxy);
@@ -96,91 +76,35 @@ public:
Q3DCategoryAxis *columnAxis() const;
void setColumnAxis(Q3DCategoryAxis *axis);
- // Set bar thickness.
void setBarThickness(qreal thicknessRatio);
- qreal barThickness();
+ qreal barThickness() const;
- // Set spacing between bars. Y-component sets the spacing of Z-direction.
- // If spacing is relative, 0.0f means side-to-side and 1.0f = one thickness in between.
void setBarSpacing(QSizeF spacing);
- QSizeF barSpacing();
+ QSizeF barSpacing() const;
- // Set bar spacing relative to thickness or absolute
void setBarSpacingRelative(bool relative);
- bool isBarSpacingRelative();
+ bool isBarSpacingRelative() const;
- // Bar type
void setBarType(QDataVis::MeshStyle style);
- QDataVis::MeshStyle barType();
+ QDataVis::MeshStyle barType() const;
- // Bar smoothing
void setBarSmoothingEnabled(bool enabled);
- bool isBarSmoothingEnabled();
+ bool isBarSmoothingEnabled() const;
- // override object type with own mesh
void setMeshFileName(const QString &objFileName);
- QString meshFileName();
-
- // Select preset camera placement
- void setCameraPreset(QDataVis::CameraPreset preset);
- QDataVis::CameraPreset cameraPreset();
-
- // Set theme (object colors, shaders, window color, background colors, light intensity and text
- // colors are affected)
- void setTheme(QDataVis::ColorTheme theme);
- QDataVis::ColorTheme theme();
-
- // Change selection mode; single bar, bar and row, bar and column, or all
- void setSelectionMode(QDataVis::SelectionMode mode);
- QDataVis::SelectionMode selectionMode();
-
- // Set font
- void setFont(const QFont &font);
- QFont font();
-
- // Label transparency adjustment
- void setLabelTransparency(QDataVis::LabelTransparency transparency);
- QDataVis::LabelTransparency labelTransparency();
-
- // Enable or disable background grid
- void setGridVisible(bool visible);
- bool isGridVisible();
-
- // Enable or disable background mesh
- void setBackgroundVisible(bool visible);
- bool isBackgroundVisible();
-
- // Adjust shadow quality
- void setShadowQuality(QDataVis::ShadowQuality quality);
- QDataVis::ShadowQuality shadowQuality();
-
- void setItemLabelFormat(const QString &format);
- QString itemLabelFormat();
+ QString meshFileName() const;
void setSelectedBarPos(const QPointF &position);
QPointF selectedBarPos() const;
signals:
- // Signals shadow quality changes.
- void shadowQualityChanged(QDataVis::ShadowQuality quality);
void selectedBarPosChanged(const QPointF &position);
protected:
- Bars3DController *m_shared;
-
- // Used to detect when shadow quality changes autonomously due to e.g. resizing.
- void handleShadowQualityUpdate(QDataVis::ShadowQuality quality);
-
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
- void mouseDoubleClickEvent(QMouseEvent *event);
- void touchEvent(QTouchEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void wheelEvent(QWheelEvent *event);
-
private:
+ Bars3DController *m_shared;
QSize m_initialisedSize;
};
diff --git a/src/datavisualizationqml2/declarativescatter.cpp b/src/datavisualizationqml2/declarativescatter.cpp
index 34a11024..6447c781 100644
--- a/src/datavisualizationqml2/declarativescatter.cpp
+++ b/src/datavisualizationqml2/declarativescatter.cpp
@@ -26,7 +26,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
const QString smoothString(QStringLiteral("Smooth"));
DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
- : QQuickItem(parent),
+ : AbstractDeclarative(parent),
m_shared(0),
m_initialisedSize(0, 0)
{
@@ -39,9 +39,7 @@ DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
// Create the shared component on the main GUI thread.
m_shared = new Scatter3DController(boundingRect().toRect());
- QObject::connect(m_shared, &Abstract3DController::shadowQualityChanged, this,
- &DeclarativeScatter::handleShadowQualityUpdate);
-
+ setSharedController(m_shared);
m_shared->setActiveDataProxy(new QItemModelScatterDataProxy);
}
@@ -50,11 +48,6 @@ DeclarativeScatter::~DeclarativeScatter()
delete m_shared;
}
-void DeclarativeScatter::handleShadowQualityUpdate(QDataVis::ShadowQuality quality)
-{
- emit shadowQualityChanged(quality);
-}
-
QSGNode *DeclarativeScatter::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
// If old node exists and has right size, reuse it.
@@ -78,11 +71,6 @@ QSGNode *DeclarativeScatter::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDa
return node;
}
-void DeclarativeScatter::setCameraPosition(qreal horizontal, qreal vertical, int distance)
-{
- m_shared->setCameraPosition(GLfloat(horizontal), GLfloat(vertical), GLint(distance));
-}
-
void DeclarativeScatter::setObjectColor(const QColor &baseColor, bool uniform)
{
m_shared->setObjectColor(baseColor, uniform);
@@ -135,7 +123,7 @@ void DeclarativeScatter::setObjectType(QDataVis::MeshStyle style)
m_shared->setObjectType(style, smooth);
}
-QDataVis::MeshStyle DeclarativeScatter::objectType()
+QDataVis::MeshStyle DeclarativeScatter::objectType() const
{
QString objFile = m_shared->meshFileName();
if (objFile.contains("/sphere"))
@@ -161,7 +149,7 @@ void DeclarativeScatter::setObjectSmoothingEnabled(bool enabled)
m_shared->setMeshFileName(objFile);
}
-bool DeclarativeScatter::isObjectSmoothingEnabled()
+bool DeclarativeScatter::isObjectSmoothingEnabled() const
{
QString objFile = m_shared->meshFileName();
return objFile.endsWith(smoothString);
@@ -172,144 +160,9 @@ void DeclarativeScatter::setMeshFileName(const QString &objFileName)
m_shared->setMeshFileName(objFileName);
}
-QString DeclarativeScatter::meshFileName()
+QString DeclarativeScatter::meshFileName() const
{
return m_shared->meshFileName();
}
-void DeclarativeScatter::setCameraPreset(QDataVis::CameraPreset preset)
-{
- m_shared->setCameraPreset(preset);
-}
-
-QDataVis::CameraPreset DeclarativeScatter::cameraPreset()
-{
- return m_shared->cameraPreset();
-}
-
-void DeclarativeScatter::setTheme(QDataVis::ColorTheme theme)
-{
- m_shared->setColorTheme(theme);
-}
-
-QDataVis::ColorTheme DeclarativeScatter::theme()
-{
- return m_shared->theme().colorTheme();
-}
-
-void DeclarativeScatter::setFont(const QFont &font)
-{
- m_shared->setFont(font);
-}
-
-QFont DeclarativeScatter::font()
-{
- return m_shared->font();
-}
-
-void DeclarativeScatter::setLabelTransparency(QDataVis::LabelTransparency transparency)
-{
- m_shared->setLabelTransparency(transparency);
-}
-
-QDataVis::LabelTransparency DeclarativeScatter::labelTransparency()
-{
- return m_shared->labelTransparency();
-}
-
-void DeclarativeScatter::setGridVisible(bool visible)
-{
- m_shared->setGridEnabled(visible);
-}
-
-bool DeclarativeScatter::isGridVisible()
-{
- return m_shared->gridEnabled();
-}
-
-void DeclarativeScatter::setBackgroundVisible(bool visible)
-{
- m_shared->setBackgroundEnabled(visible);
-}
-
-bool DeclarativeScatter::isBackgroundVisible()
-{
- return m_shared->backgroundEnabled();
-}
-
-void DeclarativeScatter::setSelectionMode(QDataVis::SelectionMode mode)
-{
- m_shared->setSelectionMode(mode);
-}
-
-QDataVis::SelectionMode DeclarativeScatter::selectionMode()
-{
- return m_shared->selectionMode();
-}
-
-void DeclarativeScatter::setShadowQuality(QDataVis::ShadowQuality quality)
-{
- m_shared->setShadowQuality(quality);
-}
-
-QDataVis::ShadowQuality DeclarativeScatter::shadowQuality()
-{
- return m_shared->shadowQuality();
-}
-
-void DeclarativeScatter::setItemLabelFormat(const QString &format)
-{
- m_shared->activeDataProxy()->setItemLabelFormat(format);
-}
-
-QString DeclarativeScatter::itemLabelFormat()
-{
- return m_shared->activeDataProxy()->itemLabelFormat();
-}
-
-void DeclarativeScatter::mouseDoubleClickEvent(QMouseEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->mouseDoubleClickEvent(event);
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeScatter::touchEvent(QTouchEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->touchEvent(event);
- update();
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeScatter::mousePressEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mousePressEvent(event, mousePos);
-}
-
-void DeclarativeScatter::mouseReleaseEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseReleaseEvent(event, mousePos);
-}
-
-void DeclarativeScatter::mouseMoveEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseMoveEvent(event, mousePos);
-}
-
-void DeclarativeScatter::wheelEvent(QWheelEvent *event)
-{
- m_shared->wheelEvent(event);
-}
-
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h
index 4541df8e..cc16e770 100644
--- a/src/datavisualizationqml2/declarativescatter_p.h
+++ b/src/datavisualizationqml2/declarativescatter_p.h
@@ -30,6 +30,7 @@
#define DECLARATIVESCATTER_P_H
#include "datavisualizationglobal_p.h"
+#include "abstractdeclarative_p.h"
#include "scatter3dcontroller_p.h"
#include "declarativescatter_p.h"
#include "q3dvalueaxis.h"
@@ -41,42 +42,23 @@
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-class DeclarativeScatter : public QQuickItem
+class DeclarativeScatter : public AbstractDeclarative
{
Q_OBJECT
Q_PROPERTY(QScatterDataProxy *dataProxy READ dataProxy WRITE setDataProxy)
Q_PROPERTY(Q3DValueAxis *axisX READ axisX WRITE setAxisX)
Q_PROPERTY(Q3DValueAxis *axisY READ axisY WRITE setAxisY)
Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ)
- Q_PROPERTY(QtDataVisualization::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
- Q_PROPERTY(QtDataVisualization::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
- Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle objectType READ objectType WRITE setObjectType)
- Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset)
- Q_PROPERTY(QtDataVisualization::QDataVis::ColorTheme theme READ theme WRITE setTheme)
Q_PROPERTY(bool objectSmoothingEnabled READ isObjectSmoothingEnabled WRITE setObjectSmoothingEnabled)
Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName)
- Q_PROPERTY(QFont font READ font WRITE setFont)
- Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
- Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible)
Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
- Q_ENUMS(QtDataVisualization::QDataVis::SelectionMode)
- Q_ENUMS(QtDataVisualization::QDataVis::ShadowQuality)
- Q_ENUMS(QtDataVisualization::QDataVis::LabelTransparency)
Q_ENUMS(QtDataVisualization::QDataVis::MeshStyle)
- Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset)
- Q_ENUMS(QtDataVisualization::QDataVis::ColorTheme)
public:
explicit DeclarativeScatter(QQuickItem *parent = 0);
~DeclarativeScatter();
- // Set camera rotation if you don't want to use the presets (in horizontal (-180...180) and
- // vertical (-90...90) angles and distance in percentage (10...500))
- Q_INVOKABLE void setCameraPosition(qreal horizontal, qreal vertical, int distance);
-
- // Set color if you don't want to use themes. Set uniform to false if you want the (height)
- // color to change from bottom to top
Q_INVOKABLE void setObjectColor(const QColor &baseColor, bool uniform = true);
QScatterDataProxy *dataProxy() const;
@@ -89,72 +71,19 @@ public:
Q3DValueAxis *axisZ() const;
void setAxisZ(Q3DValueAxis *axis);
- // Object type
void setObjectType(QDataVis::MeshStyle style);
- QDataVis::MeshStyle objectType();
+ QDataVis::MeshStyle objectType() const;
- // Object smoothing
void setObjectSmoothingEnabled(bool enabled);
- bool isObjectSmoothingEnabled();
+ bool isObjectSmoothingEnabled() const;
- // override object type with own mesh
void setMeshFileName(const QString &objFileName);
- QString meshFileName();
-
- // Select preset camera placement
- void setCameraPreset(QDataVis::CameraPreset preset);
- QDataVis::CameraPreset cameraPreset();
-
- // Set theme (object colors, shaders, window color, background colors, light intensity and text
- // colors are affected)
- void setTheme(QDataVis::ColorTheme theme);
- QDataVis::ColorTheme theme();
-
- // Change selection mode
- void setSelectionMode(QDataVis::SelectionMode mode);
- QDataVis::SelectionMode selectionMode();
-
- // Set font
- void setFont(const QFont &font);
- QFont font();
-
- // Label transparency adjustment
- void setLabelTransparency(QDataVis::LabelTransparency transparency);
- QDataVis::LabelTransparency labelTransparency();
-
- // Enable or disable background grid
- void setGridVisible(bool visible);
- bool isGridVisible();
-
- // Enable or disable background mesh
- void setBackgroundVisible(bool visible);
- bool isBackgroundVisible();
-
- void setItemLabelFormat(const QString &format);
- QString itemLabelFormat();
-
- // Adjust shadow quality
- void setShadowQuality(QDataVis::ShadowQuality quality);
- QDataVis::ShadowQuality shadowQuality();
-
-signals:
- // Signals shadow quality changes.
- void shadowQualityChanged(QDataVis::ShadowQuality quality);
+ QString meshFileName() const;
protected:
Scatter3DController *m_shared;
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
- // Used to detect when shadow quality changes autonomously due to e.g. resizing.
- void handleShadowQualityUpdate(QDataVis::ShadowQuality quality);
-
- void mouseDoubleClickEvent(QMouseEvent *event);
- void touchEvent(QTouchEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void wheelEvent(QWheelEvent *event);
-
private:
QSize m_initialisedSize;
};
diff --git a/src/datavisualizationqml2/declarativesurface.cpp b/src/datavisualizationqml2/declarativesurface.cpp
index 48eec8ce..f74472f5 100644
--- a/src/datavisualizationqml2/declarativesurface.cpp
+++ b/src/datavisualizationqml2/declarativesurface.cpp
@@ -25,7 +25,7 @@
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
DeclarativeSurface::DeclarativeSurface(QQuickItem *parent)
- : QQuickItem(parent),
+ : AbstractDeclarative(parent),
m_shared(0),
m_initialisedSize(0, 0)
{
@@ -38,8 +38,7 @@ DeclarativeSurface::DeclarativeSurface(QQuickItem *parent)
// Create the shared component on the main GUI thread.
m_shared = new Surface3DController(boundingRect().toRect());
- QObject::connect(m_shared, &Abstract3DController::shadowQualityChanged, this,
- &DeclarativeSurface::handleShadowQualityUpdate);
+ setSharedController(m_shared);
QItemModelSurfaceDataProxy *proxy = new QItemModelSurfaceDataProxy;
m_shared->setActiveDataProxy(proxy);
@@ -50,11 +49,6 @@ DeclarativeSurface::~DeclarativeSurface()
delete m_shared;
}
-void DeclarativeSurface::handleShadowQualityUpdate(QDataVis::ShadowQuality quality)
-{
- emit shadowQualityChanged(quality);
-}
-
QSGNode *DeclarativeSurface::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
// If old node exists and has right size, reuse it.
@@ -93,17 +87,6 @@ QSurfaceDataProxy *DeclarativeSurface::dataProxy() const
return static_cast<QSurfaceDataProxy *>(m_shared->activeDataProxy());
}
-void DeclarativeSurface::setCameraPreset(QDataVis::CameraPreset preset)
-{
- m_shared->setCameraPreset(preset);
-}
-
-QDataVis::CameraPreset DeclarativeSurface::cameraPreset()
-{
- return m_shared->cameraPreset();
-
-}
-
Q3DValueAxis *DeclarativeSurface::axisX() const
{
return static_cast<Q3DValueAxis *>(m_shared->axisX());
@@ -134,57 +117,6 @@ void DeclarativeSurface::setAxisZ(Q3DValueAxis *axis)
m_shared->setAxisZ(axis);
}
-void DeclarativeSurface::setTheme(QDataVis::ColorTheme theme)
-{
- // TODO: Implement correctly once "user-modifiable themes" (QTRD-2120) is implemented
- m_shared->setColorTheme(theme);
-}
-
-QDataVis::ColorTheme DeclarativeSurface::theme()
-{
- return m_shared->theme().colorTheme();
-}
-
-void DeclarativeSurface::setFont(const QFont &font)
-{
- m_shared->setFont(font);
-}
-
-QFont DeclarativeSurface::font()
-{
- return m_shared->font();
-}
-
-void DeclarativeSurface::setLabelTransparency(QDataVis::LabelTransparency transparency)
-{
- m_shared->setLabelTransparency(transparency);
-}
-
-QDataVis::LabelTransparency DeclarativeSurface::labelTransparency()
-{
- return m_shared->labelTransparency();
-}
-
-void DeclarativeSurface::setGridVisible(bool visible)
-{
- m_shared->setGridEnabled(visible);
-}
-
-bool DeclarativeSurface::isGridVisible()
-{
- return m_shared->gridEnabled();
-}
-
-void DeclarativeSurface::setBackgroundVisible(bool visible)
-{
- m_shared->setBackgroundEnabled(visible);
-}
-
-bool DeclarativeSurface::isBackgroundVisible()
-{
- return m_shared->backgroundEnabled();
-}
-
void DeclarativeSurface::setSmoothSurfaceEnabled(bool enabled)
{
m_shared->setSmoothSurface(enabled);
@@ -205,26 +137,6 @@ bool DeclarativeSurface::isSurfaceGridEnabled() const
return m_shared->surfaceGrid();
}
-void DeclarativeSurface::setSelectionMode(QDataVis::SelectionMode mode)
-{
- m_shared->setSelectionMode(mode);
-}
-
-QDataVis::SelectionMode DeclarativeSurface::selectionMode()
-{
- return m_shared->selectionMode();
-}
-
-void DeclarativeSurface::setShadowQuality(QDataVis::ShadowQuality quality)
-{
- m_shared->setShadowQuality(quality);
-}
-
-QDataVis::ShadowQuality DeclarativeSurface::shadowQuality()
-{
- return m_shared->shadowQuality();
-}
-
void DeclarativeSurface::setGradient(const QLinearGradient &gradient)
{
m_shared->setGradient(gradient);
@@ -235,59 +147,4 @@ QLinearGradient DeclarativeSurface::gradient() const
return m_shared->gradient();
}
-void DeclarativeSurface::setItemLabelFormat(const QString &format)
-{
- m_shared->activeDataProxy()->setItemLabelFormat(format);
-}
-
-QString DeclarativeSurface::itemLabelFormat()
-{
- return m_shared->activeDataProxy()->itemLabelFormat();
-}
-
-void DeclarativeSurface::mouseDoubleClickEvent(QMouseEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->mouseDoubleClickEvent(event);
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeSurface::touchEvent(QTouchEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->touchEvent(event);
- update();
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeSurface::mousePressEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mousePressEvent(event, mousePos);
-}
-
-void DeclarativeSurface::mouseReleaseEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseReleaseEvent(event, mousePos);
-}
-
-void DeclarativeSurface::mouseMoveEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseMoveEvent(event, mousePos);
-}
-
-void DeclarativeSurface::wheelEvent(QWheelEvent *event)
-{
- m_shared->wheelEvent(event);
-}
-
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h
index 21555fcc..29db1a44 100644
--- a/src/datavisualizationqml2/declarativesurface_p.h
+++ b/src/datavisualizationqml2/declarativesurface_p.h
@@ -30,6 +30,7 @@
#define DECLARATIVESURFACE_P_H
#include "datavisualizationglobal_p.h"
+#include "abstractdeclarative_p.h"
#include "surface3dcontroller_p.h"
#include "declarativesurface_p.h"
#include "q3dvalueaxis.h"
@@ -42,30 +43,16 @@
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
-class DeclarativeSurface : public QQuickItem
+class DeclarativeSurface : public AbstractDeclarative
{
Q_OBJECT
Q_PROPERTY(QSurfaceDataProxy *dataProxy READ dataProxy WRITE setDataProxy)
Q_PROPERTY(Q3DValueAxis *axisX READ axisX WRITE setAxisX)
Q_PROPERTY(Q3DValueAxis *axisY READ axisY WRITE setAxisY)
Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ)
- Q_PROPERTY(QtDataVisualization::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
- Q_PROPERTY(QtDataVisualization::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
- Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
- Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset)
- Q_PROPERTY(QtDataVisualization::QDataVis::ColorTheme theme READ theme WRITE setTheme)
- Q_PROPERTY(QFont font READ font WRITE setFont)
- Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
- Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible)
Q_PROPERTY(bool smoothSurfaceEnabled READ isSmoothSurfaceEnabled WRITE setSmoothSurfaceEnabled)
Q_PROPERTY(bool surfaceGridEnabled READ isSurfaceGridEnabled WRITE setSurfaceGridEnabled)
Q_PROPERTY(QLinearGradient gradient READ gradient WRITE setGradient)
- Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
- Q_ENUMS(QtDataVisualization::QDataVis::SelectionMode)
- Q_ENUMS(QtDataVisualization::QDataVis::ShadowQuality)
- Q_ENUMS(QtDataVisualization::QDataVis::LabelTransparency)
- Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset)
- Q_ENUMS(QtDataVisualization::QDataVis::ColorTheme)
public:
explicit DeclarativeSurface(QQuickItem *parent = 0);
@@ -83,62 +70,19 @@ public:
Q3DValueAxis *axisZ() const;
void setAxisZ(Q3DValueAxis *axis);
- void setCameraPreset(QDataVis::CameraPreset preset);
- QDataVis::CameraPreset cameraPreset();
-
- void setTheme(QDataVis::ColorTheme theme);
- QDataVis::ColorTheme theme();
-
- void setSelectionMode(QDataVis::SelectionMode mode);
- QDataVis::SelectionMode selectionMode();
-
- void setFont(const QFont &font);
- QFont font();
-
- void setLabelTransparency(QDataVis::LabelTransparency transparency);
- QDataVis::LabelTransparency labelTransparency();
-
- void setGridVisible(bool visible);
- bool isGridVisible();
-
- void setBackgroundVisible(bool visible);
- bool isBackgroundVisible();
-
void setSmoothSurfaceEnabled(bool enabled);
bool isSmoothSurfaceEnabled() const;
void setSurfaceGridEnabled(bool enabled);
bool isSurfaceGridEnabled() const;
- void setShadowQuality(QDataVis::ShadowQuality quality);
- QDataVis::ShadowQuality shadowQuality();
-
void setGradient(const QLinearGradient &gradient);
QLinearGradient gradient() const;
-
- void setItemLabelFormat(const QString &format);
- QString itemLabelFormat();
-
-signals:
- // Signals shadow quality changes.
- void shadowQualityChanged(QDataVis::ShadowQuality quality);
-
protected:
- Surface3DController *m_shared;
-
- // Used to detect when shadow quality changes autonomously due to e.g. resizing.
- void handleShadowQualityUpdate(QDataVis::ShadowQuality quality);
-
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
- void mouseDoubleClickEvent(QMouseEvent *event);
- void touchEvent(QTouchEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void wheelEvent(QWheelEvent *event);
-
private:
+ Surface3DController *m_shared;
QSize m_initialisedSize;
};