summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp111
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h75
-rw-r--r--src/datavisualizationqml2/colorgradient.cpp6
-rw-r--r--src/datavisualizationqml2/colorgradient_p.h6
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2.pro12
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.cpp22
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.h23
-rw-r--r--src/datavisualizationqml2/declarativebars.cpp85
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h49
-rw-r--r--src/datavisualizationqml2/declarativecolor.cpp6
-rw-r--r--src/datavisualizationqml2/declarativecolor_p.h6
-rw-r--r--src/datavisualizationqml2/declarativescatter.cpp54
-rw-r--r--src/datavisualizationqml2/declarativescatter_p.h37
-rw-r--r--src/datavisualizationqml2/declarativescene.cpp49
-rw-r--r--src/datavisualizationqml2/declarativescene_p.h60
-rw-r--r--src/datavisualizationqml2/declarativeseries.cpp11
-rw-r--r--src/datavisualizationqml2/declarativeseries_p.h25
-rw-r--r--src/datavisualizationqml2/declarativesurface.cpp56
-rw-r--r--src/datavisualizationqml2/declarativesurface_p.h37
-rw-r--r--src/datavisualizationqml2/declarativetheme.cpp39
-rw-r--r--src/datavisualizationqml2/declarativetheme_p.h18
-rw-r--r--src/datavisualizationqml2/qmldir1
22 files changed, 564 insertions, 224 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index 587ea879..f251f52b 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -17,16 +17,21 @@
****************************************************************************/
#include "abstractdeclarative_p.h"
-#include "q3dvalueaxis.h"
+#include "qvalue3daxis.h"
+#include "declarativetheme_p.h"
+
#include <QThread>
#include <QGuiApplication>
#include <QSGSimpleRectNode>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+
+static QList<const QQuickWindow *> clearList;
AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) :
QQuickItem(parent),
- m_controller(0)
+ m_controller(0),
+ m_clearWindowBeforeRendering(true)
{
connect(this, &QQuickItem::windowChanged, this, &AbstractDeclarative::handleWindowChanged);
setAntialiasing(true);
@@ -36,57 +41,93 @@ AbstractDeclarative::~AbstractDeclarative()
{
}
-Q3DScene* AbstractDeclarative::scene() const
+Declarative3DScene* AbstractDeclarative::scene() const
{
- return m_controller->scene();
+ return static_cast<Declarative3DScene *>(m_controller->scene());
}
void AbstractDeclarative::setTheme(Q3DTheme *theme)
{
- m_controller->setTheme(theme);
+ m_controller->setActiveTheme(theme);
}
Q3DTheme *AbstractDeclarative::theme() const
{
- return m_controller->theme();
+ return m_controller->activeTheme();
+}
+
+void AbstractDeclarative::clearSelection()
+{
+ m_controller->clearSelection();
}
-void AbstractDeclarative::setSelectionMode(QDataVis::SelectionFlags mode)
+void AbstractDeclarative::setClearWindowBeforeRendering(bool enable)
{
- m_controller->setSelectionMode(mode);
+ if (m_clearWindowBeforeRendering != enable) {
+ m_clearWindowBeforeRendering = enable;
+ emit clearWindowBeforeRenderingChanged(enable);
+ }
}
-QDataVis::SelectionFlags AbstractDeclarative::selectionMode() const
+bool AbstractDeclarative::clearWindowBeforeRendering() const
{
- return m_controller->selectionMode();
+ return m_clearWindowBeforeRendering;
}
-void AbstractDeclarative::setShadowQuality(QDataVis::ShadowQuality quality)
+void AbstractDeclarative::setSelectionMode(SelectionFlags mode)
{
- m_controller->setShadowQuality(quality);
+ int intmode = int(mode);
+ m_controller->setSelectionMode(QAbstract3DGraph::SelectionFlags(intmode));
}
-QDataVis::ShadowQuality AbstractDeclarative::shadowQuality() const
+AbstractDeclarative::SelectionFlags AbstractDeclarative::selectionMode() const
{
- return m_controller->shadowQuality();
+ int intmode = int(m_controller->selectionMode());
+ return SelectionFlags(intmode);
+}
+
+void AbstractDeclarative::setShadowQuality(ShadowQuality quality)
+{
+ m_controller->setShadowQuality(QAbstract3DGraph::ShadowQuality(quality));
+}
+
+AbstractDeclarative::ShadowQuality AbstractDeclarative::shadowQuality() const
+{
+ return ShadowQuality(m_controller->shadowQuality());
}
void AbstractDeclarative::setSharedController(Abstract3DController *controller)
{
Q_ASSERT(controller);
m_controller = controller;
+
+ // Reset default theme, as the default C++ theme is Q3DTheme, not DeclarativeTheme3D.
+ DeclarativeTheme3D *defaultTheme = new DeclarativeTheme3D;
+ defaultTheme->d_ptr->setDefaultTheme(true);
+ defaultTheme->setType(Q3DTheme::ThemeQt);
+ m_controller->setActiveTheme(defaultTheme);
+
QObject::connect(m_controller, &Abstract3DController::shadowQualityChanged, this,
- &AbstractDeclarative::shadowQualityChanged);
+ &AbstractDeclarative::handleShadowQualityChange);
QObject::connect(m_controller, &Abstract3DController::activeInputHandlerChanged, this,
&AbstractDeclarative::inputHandlerChanged);
- QObject::connect(m_controller, &Abstract3DController::themeChanged, this,
+ QObject::connect(m_controller, &Abstract3DController::activeThemeChanged, this,
&AbstractDeclarative::themeChanged);
QObject::connect(m_controller, &Abstract3DController::selectionModeChanged, this,
- &AbstractDeclarative::selectionModeChanged);
+ &AbstractDeclarative::handleSelectionModeChange);
+
+ QObject::connect(m_controller, &Abstract3DController::axisXChanged, this,
+ &AbstractDeclarative::handleAxisXChanged);
+ QObject::connect(m_controller, &Abstract3DController::axisYChanged, this,
+ &AbstractDeclarative::handleAxisYChanged);
+ QObject::connect(m_controller, &Abstract3DController::axisZChanged, this,
+ &AbstractDeclarative::handleAxisZChanged);
}
void AbstractDeclarative::synchDataToRenderer()
{
+ if (m_clearWindowBeforeRendering && clearList.size())
+ clearList.clear();
m_controller->initializeOpenGL();
m_controller->synchDataToRenderer();
}
@@ -140,24 +181,38 @@ void AbstractDeclarative::updateWindowParameters()
win->update();
}
- QPointF point = QQuickItem::mapToScene(QPointF(m_cachedGeometry.x(), m_cachedGeometry.y()));
+ QPointF point = QQuickItem::mapToScene(QPointF(0.0f, 0.0f));
if (m_controller) {
- scene->d_ptr->setViewport(QRect(point.x(), point.y(), m_cachedGeometry.width(), m_cachedGeometry.height()));
+ scene->d_ptr->setViewport(QRect(point.x(), point.y(), m_cachedGeometry.width(),
+ m_cachedGeometry.height()));
}
}
}
+void AbstractDeclarative::handleSelectionModeChange(QAbstract3DGraph::SelectionFlags mode)
+{
+ int intmode = int(mode);
+ emit selectionModeChanged(SelectionFlags(intmode));
+}
+
+void AbstractDeclarative::handleShadowQualityChange(QAbstract3DGraph::ShadowQuality quality)
+{
+ emit shadowQualityChanged(ShadowQuality(quality));
+}
+
void AbstractDeclarative::render()
{
updateWindowParameters();
- // Clear the background as that is not done by default
- glViewport(0, 0, window()->width(), window()->height());
- QColor clearColor = window()->color();
- glClearColor(clearColor.redF(), clearColor.greenF(), clearColor.blueF(), 1.0f);
- glClear(GL_COLOR_BUFFER_BIT);
+ // Clear the background once per window as that is not done by default
+ const QQuickWindow *win = window();
+ if (m_clearWindowBeforeRendering && !clearList.contains(win)) {
+ clearList.append(win);
+ QColor clearColor = win->color();
+ glClearColor(clearColor.redF(), clearColor.greenF(), clearColor.blueF(), 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
- // TODO: Store the state of these and restore before returning
glDepthMask(GL_TRUE);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
@@ -214,4 +269,4 @@ void AbstractDeclarative::wheelEvent(QWheelEvent *event)
m_controller->wheelEvent(event);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index 42cf13a4..85616560 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,28 +32,63 @@
#include "datavisualizationglobal_p.h"
#include "abstract3dcontroller_p.h"
#include "qabstract3dinputhandler.h"
+#include "declarativescene_p.h"
#include <QAbstractItemModel>
#include <QQuickItem>
#include <QObject>
#include <QQuickWindow>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class AbstractDeclarative : public QQuickItem
{
Q_OBJECT
- Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged)
- Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged)
- Q_PROPERTY(Q3DScene* scene READ scene NOTIFY sceneChanged)
+ Q_ENUMS(ShadowQuality)
+ Q_FLAGS(SelectionFlag SelectionFlags)
+ Q_PROPERTY(SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged)
+ Q_PROPERTY(ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged)
+ Q_PROPERTY(Declarative3DScene* scene READ scene NOTIFY sceneChanged)
Q_PROPERTY(QAbstract3DInputHandler* inputHandler READ inputHandler WRITE setInputHandler NOTIFY inputHandlerChanged)
Q_PROPERTY(Q3DTheme* theme READ theme WRITE setTheme NOTIFY themeChanged)
+ Q_PROPERTY(bool clearWindowBeforeRendering READ clearWindowBeforeRendering WRITE setClearWindowBeforeRendering NOTIFY clearWindowBeforeRenderingChanged)
+
+public:
+ enum SelectionFlag {
+ SelectionNone = 0,
+ SelectionItem = 1,
+ SelectionRow = 2,
+ SelectionItemAndRow = SelectionItem | SelectionRow,
+ SelectionColumn = 4,
+ SelectionItemAndColumn = SelectionItem | SelectionColumn,
+ SelectionRowAndColumn = SelectionRow | SelectionColumn,
+ SelectionItemRowAndColumn = SelectionItem | SelectionRow | SelectionColumn,
+ SelectionSlice = 8,
+ SelectionMultiSeries = 16
+ };
+ Q_DECLARE_FLAGS(SelectionFlags, SelectionFlag)
+
+ enum ShadowQuality {
+ ShadowQualityNone = 0,
+ ShadowQualityLow,
+ ShadowQualityMedium,
+ ShadowQualityHigh,
+ ShadowQualitySoftLow,
+ ShadowQualitySoftMedium,
+ ShadowQualitySoftHigh
+ };
public:
explicit AbstractDeclarative(QQuickItem *parent = 0);
virtual ~AbstractDeclarative();
- virtual Q3DScene *scene() const;
+ virtual void setSelectionMode(SelectionFlags mode);
+ virtual AbstractDeclarative::SelectionFlags selectionMode() const;
+
+ virtual void setShadowQuality(ShadowQuality quality);
+ virtual AbstractDeclarative::ShadowQuality shadowQuality() const;
+
+ virtual Declarative3DScene *scene() const;
virtual QAbstract3DInputHandler *inputHandler() const;
virtual void setInputHandler(QAbstract3DInputHandler *inputHandler);
@@ -61,19 +96,23 @@ public:
virtual void setTheme(Q3DTheme *theme);
virtual Q3DTheme *theme() const;
- virtual void setSelectionMode(QDataVis::SelectionFlags mode);
- virtual QDataVis::SelectionFlags selectionMode() const;
+ Q_INVOKABLE virtual void clearSelection();
- virtual void geometryChanged(const QRectF & newGeometry, const QRectF & oldGeometry);
+ virtual void setClearWindowBeforeRendering(bool enable);
+ virtual bool clearWindowBeforeRendering() const;
- virtual void setShadowQuality(QDataVis::ShadowQuality quality);
- virtual QDataVis::ShadowQuality shadowQuality() const;
+ virtual void geometryChanged(const QRectF & newGeometry, const QRectF & oldGeometry);
void setSharedController(Abstract3DController *controller);
// Used to synch up data model from controller to renderer while main thread is locked
void synchDataToRenderer();
void render();
+public slots:
+ virtual void handleAxisXChanged(QAbstract3DAxis *axis) = 0;
+ virtual void handleAxisYChanged(QAbstract3DAxis *axis) = 0;
+ virtual void handleAxisZChanged(QAbstract3DAxis *axis) = 0;
+
protected:
virtual void mouseDoubleClickEvent(QMouseEvent *event);
virtual void touchEvent(QTouchEvent *event);
@@ -84,21 +123,25 @@ protected:
virtual void handleWindowChanged(QQuickWindow *win);
virtual void itemChange(ItemChange change, const ItemChangeData &value);
virtual void updateWindowParameters();
+ virtual void handleSelectionModeChange(QAbstract3DGraph::SelectionFlags mode);
+ virtual void handleShadowQualityChange(QAbstract3DGraph::ShadowQuality quality);
signals:
// Signals shadow quality changes.
- void shadowQualityChanged(QDataVis::ShadowQuality quality);
+ void selectionModeChanged(SelectionFlags mode);
+ void shadowQualityChanged(ShadowQuality quality);
+ void sceneChanged(Q3DScene *scene);
void inputHandlerChanged(QAbstract3DInputHandler *inputHandler);
void themeChanged(Q3DTheme *theme);
- void selectionModeChanged(QDataVis::SelectionFlags mode);
- void itemLabelFormatChanged(QString format);
- void sceneChanged(Q3DScene *scene);
+ void clearWindowBeforeRenderingChanged(bool enable);
private:
Abstract3DController *m_controller;
QRectF m_cachedGeometry;
+ bool m_clearWindowBeforeRendering;
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractDeclarative::SelectionFlags)
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif // ABSTRACTDECLARATIVE_P_H
diff --git a/src/datavisualizationqml2/colorgradient.cpp b/src/datavisualizationqml2/colorgradient.cpp
index e4c16ebe..b6cd16dd 100644
--- a/src/datavisualizationqml2/colorgradient.cpp
+++ b/src/datavisualizationqml2/colorgradient.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "colorgradient_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
ColorGradientStop::ColorGradientStop(QObject *parent)
: QObject(parent)
@@ -74,4 +74,4 @@ void ColorGradient::doUpdate()
emit updated();
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/colorgradient_p.h b/src/datavisualizationqml2/colorgradient_p.h
index 59653331..31e3d305 100644
--- a/src/datavisualizationqml2/colorgradient_p.h
+++ b/src/datavisualizationqml2/colorgradient_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include <QColor>
#include <QQmlListProperty>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class ColorGradientStop : public QObject
{
@@ -83,6 +83,6 @@ Q_SIGNALS:
void updated();
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/datavisualizationqml2.pro b/src/datavisualizationqml2/datavisualizationqml2.pro
index 989b52b9..6396b86b 100644
--- a/src/datavisualizationqml2/datavisualizationqml2.pro
+++ b/src/datavisualizationqml2/datavisualizationqml2.pro
@@ -8,7 +8,11 @@ uri = QtDataVisualization
static {
DEFINES += QT_DATAVISUALIZATION_STATICLIB
- CONFIG -= static staticlib
+ # Only build qml plugin static if Qt itself is also built static
+ !contains(QT_CONFIG, static): CONFIG -= static staticlib
+
+ # Insert the plugin URI into its meta data to enable static plugin usage
+ QMAKE_MOC_OPTIONS += -Muri=$$uri
}
INCLUDEPATH += ../../include \
@@ -27,7 +31,8 @@ SOURCES += \
colorgradient.cpp \
declarativeseries.cpp \
declarativetheme.cpp \
- declarativecolor.cpp
+ declarativecolor.cpp \
+ declarativescene.cpp
HEADERS += \
datavisualizationqml2_plugin.h \
@@ -38,7 +43,8 @@ HEADERS += \
colorgradient_p.h \
declarativeseries_p.h \
declarativetheme_p.h \
- declarativecolor_p.h
+ declarativecolor_p.h \
+ declarativescene_p.h
OTHER_FILES = qmldir
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
index 8dcdfbcc..f926b7fa 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -20,16 +20,14 @@
#include <qqml.h>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
-void Datavis3Dqml2Plugin::registerTypes(const char *uri)
+void QtDataVisualizationQml2Plugin::registerTypes(const char *uri)
{
// @uri QtDataVisualization
qmlRegisterUncreatableType<const QAbstractItemModel>(uri, 1, 0, "AbstractItemModel",
QLatin1String("Trying to create uncreatable: AbstractItemModel."));
- qmlRegisterUncreatableType<QDataVis>(uri, 1, 0, "DataVis",
- QLatin1String("Trying to create uncreatable: DataVis."));
- qmlRegisterUncreatableType<Q3DAbstractAxis>(uri, 1, 0, "AbstractAxis3D",
+ qmlRegisterUncreatableType<QAbstract3DAxis>(uri, 1, 0, "AbstractAxis3D",
QLatin1String("Trying to create uncreatable: AbstractAxis."));
qmlRegisterUncreatableType<QAbstractDataProxy>(uri, 1, 0, "AbstractDataProxy",
QLatin1String("Trying to create uncreatable: AbstractDataProxy."));
@@ -41,8 +39,8 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
QLatin1String("Trying to create uncreatable: SurfaceDataProxy."));
qmlRegisterUncreatableType<AbstractDeclarative>(uri, 1, 0, "AbstractGraph3D",
QLatin1String("Trying to create uncreatable: AbstractGraph3D."));
- qmlRegisterUncreatableType<Q3DScene>(uri, 1, 0, "Scene3D",
- QLatin1String("Trying to create uncreatable: Scene3D."));
+ qmlRegisterUncreatableType<Declarative3DScene>(uri, 1, 0, "Scene3D",
+ QLatin1String("Trying to create uncreatable: Scene3D."));
qmlRegisterUncreatableType<QAbstract3DSeries>(uri, 1, 0, "Abstract3DSeries",
QLatin1String("Trying to create uncreatable: Abstract3DSeries."));
qmlRegisterUncreatableType<QBar3DSeries>(uri, 1, 0, "QBar3DSeries",
@@ -60,8 +58,8 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
qmlRegisterType<DeclarativeScatter>(uri, 1, 0, "Scatter3D");
qmlRegisterType<DeclarativeSurface>(uri, 1, 0, "Surface3D");
- qmlRegisterType<Q3DValueAxis>(uri, 1, 0, "ValueAxis3D");
- qmlRegisterType<Q3DCategoryAxis>(uri, 1, 0, "CategoryAxis3D");
+ qmlRegisterType<QValue3DAxis>(uri, 1, 0, "ValueAxis3D");
+ qmlRegisterType<QCategory3DAxis>(uri, 1, 0, "CategoryAxis3D");
qmlRegisterType<Q3DCamera>(uri, 1, 0, "Camera3D");
qmlRegisterType<Q3DLight>(uri, 1, 0, "Light3D");
@@ -80,7 +78,9 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
qmlRegisterType<DeclarativeBar3DSeries>(uri, 1, 0, "Bar3DSeries");
qmlRegisterType<DeclarativeScatter3DSeries>(uri, 1, 0, "Scatter3DSeries");
qmlRegisterType<DeclarativeSurface3DSeries>(uri, 1, 0, "Surface3DSeries");
+
+ qRegisterMetaType<QAbstract3DGraph::ShadowQuality>("QAbstract3DGraph::ShadowQuality");
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
index 25c06364..c12c2cb2 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -27,8 +27,8 @@
#include "qitemmodelscatterdataproxy.h"
#include "qitemmodelsurfacedataproxy.h"
#include "qheightmapsurfacedataproxy.h"
-#include "q3dvalueaxis.h"
-#include "q3dcategoryaxis.h"
+#include "qvalue3daxis.h"
+#include "qcategory3daxis.h"
#include "q3dobject.h"
#include "q3dcamera.h"
#include "q3dscene.h"
@@ -42,10 +42,11 @@
#include "declarativetheme_p.h"
#include "qabstract3dinputhandler.h"
#include "declarativecolor_p.h"
+#include "declarativescene_p.h"
#include <QQmlExtensionPlugin>
-QT_DATAVISUALIZATION_USE_NAMESPACE
+using namespace QtDataVisualization;
QML_DECLARE_TYPE(AbstractDeclarative)
QML_DECLARE_TYPE(DeclarativeBars)
@@ -53,13 +54,13 @@ QML_DECLARE_TYPE(DeclarativeScatter)
QML_DECLARE_TYPE(DeclarativeSurface)
QML_DECLARE_TYPE(const QAbstractItemModel)
-QML_DECLARE_TYPE(QDataVis)
-QML_DECLARE_TYPE(Q3DAbstractAxis)
-QML_DECLARE_TYPE(Q3DCategoryAxis)
-QML_DECLARE_TYPE(Q3DValueAxis)
+QML_DECLARE_TYPE(QAbstract3DAxis)
+QML_DECLARE_TYPE(QCategory3DAxis)
+QML_DECLARE_TYPE(QValue3DAxis)
QML_DECLARE_TYPE(Q3DScene)
+QML_DECLARE_TYPE(Declarative3DScene)
QML_DECLARE_TYPE(Q3DObject)
QML_DECLARE_TYPE(Q3DCamera)
QML_DECLARE_TYPE(Q3DLight)
@@ -91,9 +92,9 @@ QML_DECLARE_TYPE(DeclarativeTheme3D)
QML_DECLARE_TYPE(QAbstract3DInputHandler)
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
-class Datavis3Dqml2Plugin : public QQmlExtensionPlugin
+class QtDataVisualizationQml2Plugin : public QQmlExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -102,7 +103,7 @@ public:
void registerTypes(const char *uri);
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif // DATAVISUALIZATIONQML2_PLUGIN_H
diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp
index 7eab8886..e24526c3 100644
--- a/src/datavisualizationqml2/declarativebars.cpp
+++ b/src/datavisualizationqml2/declarativebars.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -17,10 +17,11 @@
****************************************************************************/
#include "declarativebars_p.h"
-#include "q3dvalueaxis.h"
+#include "qvalue3daxis.h"
#include "qitemmodelbardataproxy.h"
+#include "declarativescene_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
DeclarativeBars::DeclarativeBars(QQuickItem *parent)
: AbstractDeclarative(parent),
@@ -28,21 +29,12 @@ DeclarativeBars::DeclarativeBars(QQuickItem *parent)
{
setAcceptedMouseButtons(Qt::AllButtons);
- // TODO: These seem to have no effect; find a way to activate anti-aliasing
- setAntialiasing(true);
- setSmooth(true);
-
// Create the shared component on the main GUI thread.
- m_barsController = new Bars3DController(boundingRect().toRect());
+ m_barsController = new Bars3DController(boundingRect().toRect(), new Declarative3DScene);
AbstractDeclarative::setSharedController(m_barsController);
- // TODO: Uncomment when doing QTRD-2669
-// connect(m_barsController, &Bars3DController::rowAxisChanged,
-// this, &DeclarativeBars::rowAxisChanged);
-// connect(m_barsController, &Bars3DController::valueAxisChanged,
-// this, &DeclarativeBars::valueAxisChanged);
-// connect(m_barsController, &Bars3DController::columnAxisChanged,
-// this, &DeclarativeBars::columnAxisChanged);
+ QObject::connect(m_barsController, &Bars3DController::primarySeriesChanged,
+ this, &DeclarativeBars::primarySeriesChanged);
}
DeclarativeBars::~DeclarativeBars()
@@ -50,36 +42,49 @@ DeclarativeBars::~DeclarativeBars()
delete m_barsController;
}
-Q3DCategoryAxis *DeclarativeBars::rowAxis() const
+QCategory3DAxis *DeclarativeBars::rowAxis() const
{
- return static_cast<Q3DCategoryAxis *>(m_barsController->axisZ());
+ return static_cast<QCategory3DAxis *>(m_barsController->axisZ());
}
-void DeclarativeBars::setRowAxis(Q3DCategoryAxis *axis)
+void DeclarativeBars::setRowAxis(QCategory3DAxis *axis)
{
m_barsController->setAxisZ(axis);
}
-Q3DValueAxis *DeclarativeBars::valueAxis() const
+QValue3DAxis *DeclarativeBars::valueAxis() const
{
- return static_cast<Q3DValueAxis *>(m_barsController->axisY());
+ return static_cast<QValue3DAxis *>(m_barsController->axisY());
}
-void DeclarativeBars::setValueAxis(Q3DValueAxis *axis)
+void DeclarativeBars::setValueAxis(QValue3DAxis *axis)
{
m_barsController->setAxisY(axis);
}
-Q3DCategoryAxis *DeclarativeBars::columnAxis() const
+QCategory3DAxis *DeclarativeBars::columnAxis() const
{
- return static_cast<Q3DCategoryAxis *>(m_barsController->axisX());
+ return static_cast<QCategory3DAxis *>(m_barsController->axisX());
}
-void DeclarativeBars::setColumnAxis(Q3DCategoryAxis *axis)
+void DeclarativeBars::setColumnAxis(QCategory3DAxis *axis)
{
m_barsController->setAxisX(axis);
}
+void DeclarativeBars::setMultiSeriesUniform(bool uniform)
+{
+ if (uniform != isMultiSeriesUniform()) {
+ m_barsController->setMultiSeriesScaling(uniform);
+ emit multiSeriesUniformChanged(uniform);
+ }
+}
+
+bool DeclarativeBars::isMultiSeriesUniform() const
+{
+ return m_barsController->multiSeriesScaling();
+}
+
void DeclarativeBars::setBarThickness(float thicknessRatio)
{
if (thicknessRatio != barThickness()) {
@@ -163,4 +168,34 @@ void DeclarativeBars::removeSeries(QBar3DSeries *series)
series->setParent(this); // Reparent as removing will leave series parentless
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+void DeclarativeBars::insertSeries(int index, QBar3DSeries *series)
+{
+ m_barsController->insertSeries(index, series);
+}
+
+void DeclarativeBars::setPrimarySeries(QBar3DSeries *series)
+{
+ m_barsController->setPrimarySeries(series);
+}
+
+QBar3DSeries *DeclarativeBars::primarySeries() const
+{
+ return m_barsController->primarySeries();
+}
+
+void DeclarativeBars::handleAxisXChanged(QAbstract3DAxis *axis)
+{
+ emit columnAxisChanged(static_cast<QCategory3DAxis *>(axis));
+}
+
+void DeclarativeBars::handleAxisYChanged(QAbstract3DAxis *axis)
+{
+ emit valueAxisChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void DeclarativeBars::handleAxisZChanged(QAbstract3DAxis *axis)
+{
+ emit rowAxisChanged(static_cast<QCategory3DAxis *>(axis));
+}
+
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h
index 29d9dc91..e5a90a01 100644
--- a/src/datavisualizationqml2/declarativebars_p.h
+++ b/src/datavisualizationqml2/declarativebars_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,8 +33,8 @@
#include "abstractdeclarative_p.h"
#include "bars3dcontroller_p.h"
#include "declarativebars_p.h"
-#include "q3dvalueaxis.h"
-#include "q3dcategoryaxis.h"
+#include "qvalue3daxis.h"
+#include "qcategory3daxis.h"
#include "qbardataproxy.h"
#include "qbar3dseries.h"
@@ -43,30 +43,35 @@
#include <QObject>
#include <QQuickWindow>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class DeclarativeBars : public AbstractDeclarative
{
Q_OBJECT
- Q_PROPERTY(Q3DCategoryAxis *rowAxis READ rowAxis WRITE setRowAxis NOTIFY rowAxisChanged)
- Q_PROPERTY(Q3DValueAxis *valueAxis READ valueAxis WRITE setValueAxis NOTIFY valueAxisChanged)
- Q_PROPERTY(Q3DCategoryAxis *columnAxis READ columnAxis WRITE setColumnAxis NOTIFY columnAxisChanged)
+ Q_PROPERTY(QCategory3DAxis *rowAxis READ rowAxis WRITE setRowAxis NOTIFY rowAxisChanged)
+ Q_PROPERTY(QValue3DAxis *valueAxis READ valueAxis WRITE setValueAxis NOTIFY valueAxisChanged)
+ Q_PROPERTY(QCategory3DAxis *columnAxis READ columnAxis WRITE setColumnAxis NOTIFY columnAxisChanged)
+ Q_PROPERTY(bool multiSeriesUniform READ isMultiSeriesUniform WRITE setMultiSeriesUniform NOTIFY multiSeriesUniformChanged)
Q_PROPERTY(float barThickness READ barThickness WRITE setBarThickness NOTIFY barThicknessChanged)
Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing NOTIFY barSpacingChanged)
Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative NOTIFY barSpacingRelativeChanged)
Q_PROPERTY(QQmlListProperty<QBar3DSeries> seriesList READ seriesList)
+ Q_PROPERTY(QBar3DSeries *primarySeries READ primarySeries WRITE setPrimarySeries NOTIFY primarySeriesChanged)
Q_CLASSINFO("DefaultProperty", "seriesList")
public:
explicit DeclarativeBars(QQuickItem *parent = 0);
~DeclarativeBars();
- Q3DCategoryAxis *rowAxis() const;
- void setRowAxis(Q3DCategoryAxis *axis);
- Q3DValueAxis *valueAxis() const;
- void setValueAxis(Q3DValueAxis *axis);
- Q3DCategoryAxis *columnAxis() const;
- void setColumnAxis(Q3DCategoryAxis *axis);
+ QCategory3DAxis *rowAxis() const;
+ void setRowAxis(QCategory3DAxis *axis);
+ QValue3DAxis *valueAxis() const;
+ void setValueAxis(QValue3DAxis *axis);
+ QCategory3DAxis *columnAxis() const;
+ void setColumnAxis(QCategory3DAxis *axis);
+
+ void setMultiSeriesUniform(bool uniform);
+ bool isMultiSeriesUniform() const;
void setBarThickness(float thicknessRatio);
float barThickness() const;
@@ -84,20 +89,30 @@ public:
static void clearSeriesFunc(QQmlListProperty<QBar3DSeries> *list);
Q_INVOKABLE void addSeries(QBar3DSeries *series);
Q_INVOKABLE void removeSeries(QBar3DSeries *series);
+ Q_INVOKABLE void insertSeries(int index, QBar3DSeries *series);
+ void setPrimarySeries(QBar3DSeries *series);
+ QBar3DSeries *primarySeries() const;
+
+public slots:
+ void handleAxisXChanged(QAbstract3DAxis *axis);
+ void handleAxisYChanged(QAbstract3DAxis *axis);
+ void handleAxisZChanged(QAbstract3DAxis *axis);
signals:
- void rowAxisChanged(Q3DCategoryAxis *axis);
- void valueAxisChanged(Q3DValueAxis *axis);
- void columnAxisChanged(Q3DCategoryAxis *axis);
+ void rowAxisChanged(QCategory3DAxis *axis);
+ void valueAxisChanged(QValue3DAxis *axis);
+ void columnAxisChanged(QCategory3DAxis *axis);
+ void multiSeriesUniformChanged(bool uniform);
void barThicknessChanged(float thicknessRatio);
void barSpacingChanged(QSizeF spacing);
void barSpacingRelativeChanged(bool relative);
void meshFileNameChanged(QString filename);
+ void primarySeriesChanged(QBar3DSeries *series);
private:
Bars3DController *m_barsController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/declarativecolor.cpp b/src/datavisualizationqml2/declarativecolor.cpp
index 5c1ff8c5..ffd4227f 100644
--- a/src/datavisualizationqml2/declarativecolor.cpp
+++ b/src/datavisualizationqml2/declarativecolor.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "declarativecolor_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
DeclarativeColor::DeclarativeColor(QObject *parent)
: QObject(parent)
@@ -38,4 +38,4 @@ QColor DeclarativeColor::color() const
return m_color;
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativecolor_p.h b/src/datavisualizationqml2/declarativecolor_p.h
index 755652b4..67eb9a2b 100644
--- a/src/datavisualizationqml2/declarativecolor_p.h
+++ b/src/datavisualizationqml2/declarativecolor_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,7 +32,7 @@
#include "datavisualizationglobal_p.h"
#include <QColor>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class DeclarativeColor : public QObject
{
@@ -52,6 +52,6 @@ private:
QColor m_color;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/declarativescatter.cpp b/src/datavisualizationqml2/declarativescatter.cpp
index 5aaa19b6..81a1e879 100644
--- a/src/datavisualizationqml2/declarativescatter.cpp
+++ b/src/datavisualizationqml2/declarativescatter.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,8 +18,9 @@
#include "declarativescatter_p.h"
#include "qitemmodelscatterdataproxy.h"
+#include "declarativescene_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
: AbstractDeclarative(parent),
@@ -27,21 +28,9 @@ DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
{
setAcceptedMouseButtons(Qt::AllButtons);
- // TODO: These seem to have no effect; find a way to activate anti-aliasing
- setAntialiasing(true);
- setSmooth(true);
-
// Create the shared component on the main GUI thread.
- m_scatterController = new Scatter3DController(boundingRect().toRect());
+ m_scatterController = new Scatter3DController(boundingRect().toRect(), new Declarative3DScene);
setSharedController(m_scatterController);
-
- // TODO: Uncomment when doing QTRD-2669
-// connect(m_scatterController, &Scatter3DController::axisXChanged,
-// this, &DeclarativeBars::axisXChanged);
-// connect(m_scatterController, &Scatter3DController::axisYChanged,
-// this, &DeclarativeBars::axisYChanged);
-// connect(m_scatterController, &Scatter3DController::axisZChanged,
-// this, &DeclarativeBars::axisZChanged);
}
DeclarativeScatter::~DeclarativeScatter()
@@ -49,32 +38,32 @@ DeclarativeScatter::~DeclarativeScatter()
delete m_scatterController;
}
-Q3DValueAxis *DeclarativeScatter::axisX() const
+QValue3DAxis *DeclarativeScatter::axisX() const
{
- return static_cast<Q3DValueAxis *>(m_scatterController->axisX());
+ return static_cast<QValue3DAxis *>(m_scatterController->axisX());
}
-void DeclarativeScatter::setAxisX(Q3DValueAxis *axis)
+void DeclarativeScatter::setAxisX(QValue3DAxis *axis)
{
m_scatterController->setAxisX(axis);
}
-Q3DValueAxis *DeclarativeScatter::axisY() const
+QValue3DAxis *DeclarativeScatter::axisY() const
{
- return static_cast<Q3DValueAxis *>(m_scatterController->axisY());
+ return static_cast<QValue3DAxis *>(m_scatterController->axisY());
}
-void DeclarativeScatter::setAxisY(Q3DValueAxis *axis)
+void DeclarativeScatter::setAxisY(QValue3DAxis *axis)
{
m_scatterController->setAxisY(axis);
}
-Q3DValueAxis *DeclarativeScatter::axisZ() const
+QValue3DAxis *DeclarativeScatter::axisZ() const
{
- return static_cast<Q3DValueAxis *>(m_scatterController->axisZ());
+ return static_cast<QValue3DAxis *>(m_scatterController->axisZ());
}
-void DeclarativeScatter::setAxisZ(Q3DValueAxis *axis)
+void DeclarativeScatter::setAxisZ(QValue3DAxis *axis)
{
m_scatterController->setAxisZ(axis);
}
@@ -123,4 +112,19 @@ void DeclarativeScatter::removeSeries(QScatter3DSeries *series)
series->setParent(this); // Reparent as removing will leave series parentless
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+void DeclarativeScatter::handleAxisXChanged(QAbstract3DAxis *axis)
+{
+ emit axisXChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void DeclarativeScatter::handleAxisYChanged(QAbstract3DAxis *axis)
+{
+ emit axisYChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void DeclarativeScatter::handleAxisZChanged(QAbstract3DAxis *axis)
+{
+ emit axisZChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h
index b9f5a3b7..bca44085 100644
--- a/src/datavisualizationqml2/declarativescatter_p.h
+++ b/src/datavisualizationqml2/declarativescatter_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include "abstractdeclarative_p.h"
#include "scatter3dcontroller_p.h"
#include "declarativescatter_p.h"
-#include "q3dvalueaxis.h"
+#include "qvalue3daxis.h"
#include "qscatterdataproxy.h"
#include "qscatter3dseries.h"
@@ -41,14 +41,14 @@
#include <QQuickItem>
#include <QObject>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class DeclarativeScatter : public AbstractDeclarative
{
Q_OBJECT
- Q_PROPERTY(Q3DValueAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
- Q_PROPERTY(Q3DValueAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
- Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
+ Q_PROPERTY(QValue3DAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
+ Q_PROPERTY(QValue3DAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
+ Q_PROPERTY(QValue3DAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
Q_PROPERTY(QQmlListProperty<QScatter3DSeries> seriesList READ seriesList)
Q_CLASSINFO("DefaultProperty", "seriesList")
@@ -56,12 +56,12 @@ public:
explicit DeclarativeScatter(QQuickItem *parent = 0);
~DeclarativeScatter();
- Q3DValueAxis *axisX() const;
- void setAxisX(Q3DValueAxis *axis);
- Q3DValueAxis *axisY() const;
- void setAxisY(Q3DValueAxis *axis);
- Q3DValueAxis *axisZ() const;
- void setAxisZ(Q3DValueAxis *axis);
+ QValue3DAxis *axisX() const;
+ void setAxisX(QValue3DAxis *axis);
+ QValue3DAxis *axisY() const;
+ void setAxisY(QValue3DAxis *axis);
+ QValue3DAxis *axisZ() const;
+ void setAxisZ(QValue3DAxis *axis);
QQmlListProperty<QScatter3DSeries> seriesList();
static void appendSeriesFunc(QQmlListProperty<QScatter3DSeries> *list, QScatter3DSeries *series);
@@ -71,15 +71,20 @@ public:
Q_INVOKABLE void addSeries(QScatter3DSeries *series);
Q_INVOKABLE void removeSeries(QScatter3DSeries *series);
+public slots:
+ void handleAxisXChanged(QAbstract3DAxis *axis);
+ void handleAxisYChanged(QAbstract3DAxis *axis);
+ void handleAxisZChanged(QAbstract3DAxis *axis);
+
signals:
- void axisXChanged(Q3DValueAxis *axis);
- void axisYChanged(Q3DValueAxis *axis);
- void axisZChanged(Q3DValueAxis *axis);
+ void axisXChanged(QValue3DAxis *axis);
+ void axisYChanged(QValue3DAxis *axis);
+ void axisZChanged(QValue3DAxis *axis);
protected:
Scatter3DController *m_scatterController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/declarativescene.cpp b/src/datavisualizationqml2/declarativescene.cpp
new file mode 100644
index 00000000..7fb2450c
--- /dev/null
+++ b/src/datavisualizationqml2/declarativescene.cpp
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 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 "declarativescene_p.h"
+
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+
+Declarative3DScene::Declarative3DScene(QObject *parent)
+ : Q3DScene(parent)
+{
+ QObject::connect(this, &Q3DScene::selectionQueryPositionChanged, this,
+ &Declarative3DScene::selectionQueryPositionChanged);
+}
+
+Declarative3DScene::~Declarative3DScene()
+{
+}
+
+void Declarative3DScene::setSelectionQueryPosition(const QPointF &point)
+{
+ Q3DScene::setSelectionQueryPosition(point.toPoint());
+}
+
+QPointF Declarative3DScene::selectionQueryPosition() const
+{
+ return QPointF(Q3DScene::selectionQueryPosition());
+}
+
+QPoint Declarative3DScene::invalidSelectionPoint() const
+{
+ return Q3DScene::invalidSelectionPoint();
+}
+
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativescene_p.h b/src/datavisualizationqml2/declarativescene_p.h
new file mode 100644
index 00000000..60867cdf
--- /dev/null
+++ b/src/datavisualizationqml2/declarativescene_p.h
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 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 DECLARATIVESCENE_P_H
+#define DECLARATIVESCENE_P_H
+
+#include "datavisualizationglobal_p.h"
+#include "q3dscene.h"
+
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+
+class Declarative3DScene : public Q3DScene
+{
+ Q_OBJECT
+ // This property is overloaded to use QPointF instead of QPoint to work around qml bug
+ // where Qt.point(0, 0) can't be assigned due to error "Cannot assign QPointF to QPoint".
+ Q_PROPERTY(QPointF selectionQueryPosition READ selectionQueryPosition WRITE setSelectionQueryPosition NOTIFY selectionQueryPositionChanged)
+ // This is static method in parent class, overload as constant property for qml.
+ Q_PROPERTY(QPoint invalidSelectionPoint READ invalidSelectionPoint CONSTANT)
+
+public:
+ Declarative3DScene(QObject *parent = 0);
+ virtual ~Declarative3DScene();
+
+ void setSelectionQueryPosition(const QPointF &point);
+ QPointF selectionQueryPosition() const;
+ QPoint invalidSelectionPoint() const;
+
+signals:
+ void selectionQueryPositionChanged(const QPointF position);
+};
+
+QT_END_NAMESPACE_DATAVISUALIZATION
+
+#endif
diff --git a/src/datavisualizationqml2/declarativeseries.cpp b/src/datavisualizationqml2/declarativeseries.cpp
index 35f6e315..1a762152 100644
--- a/src/datavisualizationqml2/declarativeseries.cpp
+++ b/src/datavisualizationqml2/declarativeseries.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -22,7 +22,7 @@
#include "qsurfacedataproxy.h"
#include <QMetaMethod>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
static void setSeriesGradient(QAbstract3DSeries *series, const ColorGradient &gradient, GradientType type)
{
@@ -235,6 +235,11 @@ ColorGradient *DeclarativeScatter3DSeries::multiHighlightGradient() const
return m_multiHighlightGradient;
}
+int DeclarativeScatter3DSeries::invalidSelectionIndex() const
+{
+ return QScatter3DSeries::invalidSelectionIndex();
+}
+
void DeclarativeScatter3DSeries::handleBaseGradientUpdate()
{
if (m_baseGradient)
@@ -343,4 +348,4 @@ void DeclarativeSurface3DSeries::handleMultiHighlightGradientUpdate()
setSeriesGradient(this, *m_multiHighlightGradient, GradientTypeMulti);
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativeseries_p.h b/src/datavisualizationqml2/declarativeseries_p.h
index c9c3dc7a..f196e311 100644
--- a/src/datavisualizationqml2/declarativeseries_p.h
+++ b/src/datavisualizationqml2/declarativeseries_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -36,7 +36,7 @@
#include "colorgradient_p.h"
#include <QQmlListProperty>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
enum GradientType {
GradientTypeBase,
@@ -48,13 +48,16 @@ class DeclarativeBar3DSeries : public QBar3DSeries
{
Q_OBJECT
Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
- // selectedBar property is overloaded to use QPointF instead of QPoint to work around qml bug
+ // This property is overloaded to use QPointF instead of QPoint to work around qml bug
// where Qt.point(0, 0) can't be assigned due to error "Cannot assign QPointF to QPoint".
Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged)
+ // This is static method in parent class, overload as constant property for qml.
+ Q_PROPERTY(QPointF invalidSelectionPosition READ invalidSelectionPosition CONSTANT)
Q_PROPERTY(ColorGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY baseGradientChanged)
Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged)
Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged)
Q_CLASSINFO("DefaultProperty", "seriesChildren")
+
public:
DeclarativeBar3DSeries(QObject *parent = 0);
virtual ~DeclarativeBar3DSeries();
@@ -64,7 +67,7 @@ public:
void setSelectedBar(const QPointF &position);
QPointF selectedBar() const;
- Q_INVOKABLE QPointF invalidSelectionPosition() const;
+ QPointF invalidSelectionPosition() const;
void setBaseGradient(ColorGradient *gradient);
ColorGradient *baseGradient() const;
@@ -97,7 +100,10 @@ class DeclarativeScatter3DSeries : public QScatter3DSeries
Q_PROPERTY(ColorGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY baseGradientChanged)
Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged)
Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged)
+ // This is static method in parent class, overload as constant property for qml.
+ Q_PROPERTY(int invalidSelectionIndex READ invalidSelectionIndex CONSTANT)
Q_CLASSINFO("DefaultProperty", "seriesChildren")
+
public:
DeclarativeScatter3DSeries(QObject *parent = 0);
virtual ~DeclarativeScatter3DSeries();
@@ -112,6 +118,8 @@ public:
void setMultiHighlightGradient(ColorGradient *gradient);
ColorGradient *multiHighlightGradient() const;
+ int invalidSelectionIndex() const;
+
public slots:
void handleBaseGradientUpdate();
void handleSingleHighlightGradientUpdate();
@@ -132,18 +140,23 @@ class DeclarativeSurface3DSeries : public QSurface3DSeries
{
Q_OBJECT
Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
+ // This property is overloaded to use QPointF instead of QPoint to work around qml bug
+ // where Qt.point(0, 0) can't be assigned due to error "Cannot assign QPointF to QPoint".
Q_PROPERTY(QPointF selectedPoint READ selectedPoint WRITE setSelectedPoint NOTIFY selectedPointChanged)
+ // This is static method in parent class, overload as constant property for qml.
+ Q_PROPERTY(QPointF invalidSelectionPosition READ invalidSelectionPosition CONSTANT)
Q_PROPERTY(ColorGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY baseGradientChanged)
Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged)
Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged)
Q_CLASSINFO("DefaultProperty", "seriesChildren")
+
public:
DeclarativeSurface3DSeries(QObject *parent = 0);
virtual ~DeclarativeSurface3DSeries();
void setSelectedPoint(const QPointF &position);
QPointF selectedPoint() const;
- Q_INVOKABLE QPointF invalidSelectionPosition() const;
+ QPointF invalidSelectionPosition() const;
QQmlListProperty<QObject> seriesChildren();
static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element);
@@ -172,6 +185,6 @@ private:
ColorGradient *m_multiHighlightGradient; // Not owned
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/declarativesurface.cpp b/src/datavisualizationqml2/declarativesurface.cpp
index 3ba5f923..c0e1ddcc 100644
--- a/src/datavisualizationqml2/declarativesurface.cpp
+++ b/src/datavisualizationqml2/declarativesurface.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -17,10 +17,11 @@
****************************************************************************/
#include "declarativesurface_p.h"
-#include "q3dvalueaxis.h"
+#include "qvalue3daxis.h"
#include "qitemmodelsurfacedataproxy.h"
+#include "declarativescene_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
DeclarativeSurface::DeclarativeSurface(QQuickItem *parent)
: AbstractDeclarative(parent),
@@ -28,21 +29,9 @@ DeclarativeSurface::DeclarativeSurface(QQuickItem *parent)
{
setAcceptedMouseButtons(Qt::AllButtons);
- // TODO: These seem to have no effect; find a way to activate anti-aliasing
- setAntialiasing(true);
- setSmooth(true);
-
// Create the shared component on the main GUI thread.
- m_surfaceController = new Surface3DController(boundingRect().toRect());
+ m_surfaceController = new Surface3DController(boundingRect().toRect(), new Declarative3DScene);
setSharedController(m_surfaceController);
-
- // TODO: Uncomment when doing QTRD-2669
-// connect(m_surfaceController, &Surface3DController::axisXChanged,
-// this, &DeclarativeBars::axisXChanged);
-// connect(m_surfaceController, &Surface3DController::axisYChanged,
-// this, &DeclarativeBars::axisYChanged);
-// connect(m_surfaceController, &Surface3DController::axisZChanged,
-// this, &DeclarativeBars::axisZChanged);
}
DeclarativeSurface::~DeclarativeSurface()
@@ -50,32 +39,32 @@ DeclarativeSurface::~DeclarativeSurface()
delete m_surfaceController;
}
-Q3DValueAxis *DeclarativeSurface::axisX() const
+QValue3DAxis *DeclarativeSurface::axisX() const
{
- return static_cast<Q3DValueAxis *>(m_surfaceController->axisX());
+ return static_cast<QValue3DAxis *>(m_surfaceController->axisX());
}
-void DeclarativeSurface::setAxisX(Q3DValueAxis *axis)
+void DeclarativeSurface::setAxisX(QValue3DAxis *axis)
{
m_surfaceController->setAxisX(axis);
}
-Q3DValueAxis *DeclarativeSurface::axisY() const
+QValue3DAxis *DeclarativeSurface::axisY() const
{
- return static_cast<Q3DValueAxis *>(m_surfaceController->axisY());
+ return static_cast<QValue3DAxis *>(m_surfaceController->axisY());
}
-void DeclarativeSurface::setAxisY(Q3DValueAxis *axis)
+void DeclarativeSurface::setAxisY(QValue3DAxis *axis)
{
m_surfaceController->setAxisY(axis);
}
-Q3DValueAxis *DeclarativeSurface::axisZ() const
+QValue3DAxis *DeclarativeSurface::axisZ() const
{
- return static_cast<Q3DValueAxis *>(m_surfaceController->axisZ());
+ return static_cast<QValue3DAxis *>(m_surfaceController->axisZ());
}
-void DeclarativeSurface::setAxisZ(Q3DValueAxis *axis)
+void DeclarativeSurface::setAxisZ(QValue3DAxis *axis)
{
m_surfaceController->setAxisZ(axis);
}
@@ -124,4 +113,19 @@ void DeclarativeSurface::removeSeries(QSurface3DSeries *series)
series->setParent(this); // Reparent as removing will leave series parentless
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+void DeclarativeSurface::handleAxisXChanged(QAbstract3DAxis *axis)
+{
+ emit axisXChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void DeclarativeSurface::handleAxisYChanged(QAbstract3DAxis *axis)
+{
+ emit axisYChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+void DeclarativeSurface::handleAxisZChanged(QAbstract3DAxis *axis)
+{
+ emit axisZChanged(static_cast<QValue3DAxis *>(axis));
+}
+
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h
index 2c9c2803..b354fe59 100644
--- a/src/datavisualizationqml2/declarativesurface_p.h
+++ b/src/datavisualizationqml2/declarativesurface_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -33,7 +33,7 @@
#include "abstractdeclarative_p.h"
#include "surface3dcontroller_p.h"
#include "declarativesurface_p.h"
-#include "q3dvalueaxis.h"
+#include "qvalue3daxis.h"
#include "qsurfacedataproxy.h"
#include "qsurface3dseries.h"
@@ -42,14 +42,14 @@
#include <QObject>
#include <QQuickWindow>
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class DeclarativeSurface : public AbstractDeclarative
{
Q_OBJECT
- Q_PROPERTY(Q3DValueAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
- Q_PROPERTY(Q3DValueAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
- Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
+ Q_PROPERTY(QValue3DAxis *axisX READ axisX WRITE setAxisX NOTIFY axisXChanged)
+ Q_PROPERTY(QValue3DAxis *axisY READ axisY WRITE setAxisY NOTIFY axisYChanged)
+ Q_PROPERTY(QValue3DAxis *axisZ READ axisZ WRITE setAxisZ NOTIFY axisZChanged)
Q_PROPERTY(QQmlListProperty<QSurface3DSeries> seriesList READ seriesList)
Q_CLASSINFO("DefaultProperty", "seriesList")
@@ -57,12 +57,12 @@ public:
explicit DeclarativeSurface(QQuickItem *parent = 0);
~DeclarativeSurface();
- Q3DValueAxis *axisX() const;
- void setAxisX(Q3DValueAxis *axis);
- Q3DValueAxis *axisY() const;
- void setAxisY(Q3DValueAxis *axis);
- Q3DValueAxis *axisZ() const;
- void setAxisZ(Q3DValueAxis *axis);
+ QValue3DAxis *axisX() const;
+ void setAxisX(QValue3DAxis *axis);
+ QValue3DAxis *axisY() const;
+ void setAxisY(QValue3DAxis *axis);
+ QValue3DAxis *axisZ() const;
+ void setAxisZ(QValue3DAxis *axis);
QQmlListProperty<QSurface3DSeries> seriesList();
static void appendSeriesFunc(QQmlListProperty<QSurface3DSeries> *list, QSurface3DSeries *series);
@@ -72,15 +72,20 @@ public:
Q_INVOKABLE void addSeries(QSurface3DSeries *series);
Q_INVOKABLE void removeSeries(QSurface3DSeries *series);
+public slots:
+ void handleAxisXChanged(QAbstract3DAxis *axis);
+ void handleAxisYChanged(QAbstract3DAxis *axis);
+ void handleAxisZChanged(QAbstract3DAxis *axis);
+
signals:
- void axisXChanged(Q3DValueAxis *axis);
- void axisYChanged(Q3DValueAxis *axis);
- void axisZChanged(Q3DValueAxis *axis);
+ void axisXChanged(QValue3DAxis *axis);
+ void axisYChanged(QValue3DAxis *axis);
+ void axisZChanged(QValue3DAxis *axis);
private:
Surface3DController *m_surfaceController;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/declarativetheme.cpp b/src/datavisualizationqml2/declarativetheme.cpp
index 6c804397..5aec2408 100644
--- a/src/datavisualizationqml2/declarativetheme.cpp
+++ b/src/datavisualizationqml2/declarativetheme.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -18,7 +18,7 @@
#include "declarativetheme_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
DeclarativeTheme3D::DeclarativeTheme3D(QObject *parent)
: Q3DTheme(parent),
@@ -29,6 +29,7 @@ DeclarativeTheme3D::DeclarativeTheme3D(QObject *parent)
m_dummyGradients(false),
m_dummyColors(false)
{
+ connect(this, &Q3DTheme::typeChanged, this, &DeclarativeTheme3D::handleTypeChange);
}
DeclarativeTheme3D::~DeclarativeTheme3D()
@@ -48,6 +49,23 @@ void DeclarativeTheme3D::appendSeriesChildren(QQmlListProperty<QObject> *list, Q
// Nothing to do, seriesChildren is there only to enable scoping gradient items in Theme3D item.
}
+void DeclarativeTheme3D::handleTypeChange(Theme themeType)
+{
+ Q_UNUSED(themeType)
+
+ // Theme changed, disconnect base color/gradient connections
+ if (!m_colors.isEmpty()) {
+ foreach (DeclarativeColor *item, m_colors)
+ disconnect(item, 0, this, 0);
+ m_colors.clear();
+ }
+ if (!m_gradients.isEmpty()) {
+ foreach (ColorGradient *item, m_gradients)
+ disconnect(item, 0, this, 0);
+ m_gradients.clear();
+ }
+}
+
void DeclarativeTheme3D::handleBaseColorUpdate()
{
int colorCount = m_colors.size();
@@ -150,6 +168,19 @@ ColorGradient *DeclarativeTheme3D::multiHighlightGradient() const
return m_multiHLGradient;
}
+void DeclarativeTheme3D::classBegin()
+{
+ // Turn off predefined type forcing for the duration of initial class construction
+ // so that predefined type customization can be done.
+ d_ptr->setForcePredefinedType(false);
+}
+
+void DeclarativeTheme3D::componentComplete()
+{
+ d_ptr->setForcePredefinedType(true);
+}
+
+
void DeclarativeTheme3D::setThemeGradient(ColorGradient *gradient, GradientType type)
{
QLinearGradient newGradient = convertGradient(gradient);
@@ -217,7 +248,7 @@ void DeclarativeTheme3D::addColor(DeclarativeColor *color)
QList<DeclarativeColor *> DeclarativeTheme3D::colorList()
{
if (m_colors.isEmpty()) {
- // Create dummy ThemeColors from theme's gradients
+ // Create dummy ThemeColors from theme's colors
m_dummyColors = true;
QList<QColor> list = Q3DTheme::baseColors();
foreach (QColor item, list) {
@@ -359,4 +390,4 @@ void DeclarativeTheme3D::clearBaseGradientsFunc(QQmlListProperty<ColorGradient>
reinterpret_cast<DeclarativeTheme3D *>(list->data)->clearGradients();
}
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/declarativetheme_p.h b/src/datavisualizationqml2/declarativetheme_p.h
index 79c1f5c9..8101cf71 100644
--- a/src/datavisualizationqml2/declarativetheme_p.h
+++ b/src/datavisualizationqml2/declarativetheme_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc
+** Copyright (C) 2014 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
@@ -32,13 +32,16 @@
#include "datavisualizationglobal_p.h"
#include "declarativecolor_p.h"
#include "colorgradient_p.h"
-#include "q3dtheme.h"
+#include "q3dtheme_p.h"
-QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+#include <QtQml/qqmlparserstatus.h>
-class DeclarativeTheme3D : public Q3DTheme
+QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+
+class DeclarativeTheme3D : public Q3DTheme, public QQmlParserStatus
{
Q_OBJECT
+ Q_INTERFACES(QQmlParserStatus)
Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
Q_PROPERTY(QQmlListProperty<DeclarativeColor> baseColors READ baseColors)
Q_PROPERTY(QQmlListProperty<ColorGradient> baseGradients READ baseGradients)
@@ -73,11 +76,16 @@ public:
void setMultiHighlightGradient(ColorGradient *gradient);
ColorGradient *multiHighlightGradient() const;
+ // From QQmlParserStatus
+ virtual void classBegin();
+ virtual void componentComplete();
+
signals:
void singleHighlightGradientChanged(ColorGradient *gradient);
void multiHighlightGradientChanged(ColorGradient *gradient);
protected:
+ void handleTypeChange(Theme themeType);
void handleBaseColorUpdate();
void handleBaseGradientUpdate();
void handleSingleHLGradientUpdate();
@@ -113,6 +121,6 @@ private:
bool m_dummyColors;
};
-QT_DATAVISUALIZATION_END_NAMESPACE
+QT_END_NAMESPACE_DATAVISUALIZATION
#endif
diff --git a/src/datavisualizationqml2/qmldir b/src/datavisualizationqml2/qmldir
index 601861d8..bbd17868 100644
--- a/src/datavisualizationqml2/qmldir
+++ b/src/datavisualizationqml2/qmldir
@@ -1,3 +1,4 @@
module QtDataVisualization
plugin datavisualizationqml2
+classname QtDataVisualizationQml2Plugin