summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualizationqml2')
-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
11 files changed, 343 insertions, 673 deletions
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;
};