summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-09-27 09:05:53 +0300
committerPasi Keränen <pasi.keranen@digia.com>2013-10-08 10:50:41 +0300
commit66e1b09592efe77f839a0878ec6165a02408ca6f (patch)
tree709736fc6693c014abc0467a7c1ac766c1c62c4f /src/datavisualizationqml2
parent0daa4359bdaba6372bc8235550892afdef003120 (diff)
Added Camera QML API and Example
Change-Id: Ibc790ac6c720b6d22d68f662ff2f50e74a9abaae Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp33
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h16
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.cpp5
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.h6
4 files changed, 41 insertions, 19 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index cbee6376..e853ff9c 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -31,19 +31,9 @@ AbstractDeclarative::~AbstractDeclarative()
{
}
-void AbstractDeclarative::setCameraPosition(qreal horizontal, qreal vertical, int distance)
+Q3DScene* AbstractDeclarative::scene() const
{
- 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();
+ return m_controller->scene();
}
void AbstractDeclarative::setTheme(QDataVis::Theme theme)
@@ -133,6 +123,20 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller)
m_controller = controller;
QObject::connect(m_controller, &Abstract3DController::shadowQualityChanged, this,
&AbstractDeclarative::handleShadowQualityUpdate);
+ emit sceneChanged(m_controller->scene());
+ QObject::connect(m_controller, &Abstract3DController::activeInputHandlerChanged, this,
+ &AbstractDeclarative::handleInputHandlerUpdate);
+ emit inputHandlerChanged(m_controller->activeInputHandler());
+}
+
+QAbstract3DInputHandler* AbstractDeclarative::inputHandler() const
+{
+ return m_controller->activeInputHandler();
+}
+
+void AbstractDeclarative::setInputHandler(QAbstract3DInputHandler *inputHandler)
+{
+ m_controller->setActiveInputHandler(inputHandler);
}
void AbstractDeclarative::mouseDoubleClickEvent(QMouseEvent *event)
@@ -177,4 +181,9 @@ void AbstractDeclarative::handleShadowQualityUpdate(QDataVis::ShadowQuality qual
emit shadowQualityChanged(quality);
}
+void AbstractDeclarative::handleInputHandlerUpdate(QAbstract3DInputHandler *inputHandler)
+{
+ emit inputHandlerChanged(inputHandler);
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index 30789126..41d4a4da 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -31,6 +31,7 @@
#include "datavisualizationglobal_p.h"
#include "abstract3dcontroller_p.h"
+#include "qabstract3dinputhandler.h"
#include <QAbstractItemModel>
#include <QQuickItem>
@@ -44,26 +45,27 @@ class AbstractDeclarative : public QQuickItem
Q_PROPERTY(QtDataVisualization::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle)
Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
- Q_PROPERTY(QtDataVisualization::QDataVis::CameraPreset cameraPreset READ cameraPreset WRITE setCameraPreset)
+ Q_PROPERTY(Q3DScene* scene READ scene NOTIFY sceneChanged)
+ Q_PROPERTY(QAbstract3DInputHandler* inputHandler READ inputHandler WRITE setInputHandler NOTIFY inputHandlerChanged)
Q_PROPERTY(QtDataVisualization::QDataVis::Theme 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(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
Q_ENUMS(QtDataVisualization::QDataVis::SelectionMode)
Q_ENUMS(QtDataVisualization::QDataVis::ShadowQuality)
Q_ENUMS(QtDataVisualization::QDataVis::LabelStyle)
Q_ENUMS(QtDataVisualization::QDataVis::CameraPreset)
Q_ENUMS(QtDataVisualization::QDataVis::Theme)
- 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 Q3DScene *scene() const;
- virtual void setCameraPreset(QDataVis::CameraPreset preset);
- virtual QDataVis::CameraPreset cameraPreset() const;
+ virtual QAbstract3DInputHandler *inputHandler() const;
+ virtual void setInputHandler(QAbstract3DInputHandler *inputHandler);
virtual void setTheme(QDataVis::Theme theme);
virtual QDataVis::Theme theme() const;
@@ -101,10 +103,12 @@ protected:
// Used to detect when shadow quality changes autonomously due to e.g. resizing.
virtual void handleShadowQualityUpdate(QDataVis::ShadowQuality quality);
-
+ virtual void handleInputHandlerUpdate(QAbstract3DInputHandler *inputHandler);
signals:
// Signals shadow quality changes.
void shadowQualityChanged(QDataVis::ShadowQuality quality);
+ void sceneChanged(Q3DScene *scene);
+ void inputHandlerChanged(QAbstract3DInputHandler *inputHandler);
private:
Abstract3DController *m_controller;
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
index 10fc7f4c..b98f72ac 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: 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."));
qmlRegisterType<QItemModelBarDataMapping>(uri, 1, 0, "BarDataMapping");
qmlRegisterType<QItemModelScatterDataMapping>(uri, 1, 0, "ScatterDataMapping");
@@ -53,6 +55,8 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
qmlRegisterType<Q3DValueAxis>(uri, 1, 0, "ValueAxis3D");
qmlRegisterType<Q3DCategoryAxis>(uri, 1, 0, "CategoryAxis3D");
+ qmlRegisterType<Q3DCamera>(uri, 1, 0, "Camera3D");
+
qmlRegisterType<QItemModelBarDataProxy>(uri, 1, 0, "ItemModelBarDataProxy");
qmlRegisterType<QItemModelScatterDataProxy>(uri, 1, 0, "ItemModelScatterDataProxy");
qmlRegisterType<QItemModelSurfaceDataProxy>(uri, 1, 0, "ItemModelSurfaceDataProxy");
@@ -60,7 +64,6 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
qmlRegisterType<ColorGradientStop>(uri, 1, 0, "ColorGradientStop");
qmlRegisterType<ColorGradient>(uri, 1, 0, "ColorGradient");
-
}
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
index 66b5cb61..c0d7c4b8 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
@@ -32,6 +32,9 @@
#include "qheightmapsurfacedataproxy.h"
#include "q3dvalueaxis.h"
#include "q3dcategoryaxis.h"
+#include "q3dobject.h"
+#include "q3dcamera.h"
+#include "q3dscene.h"
#include <QQmlExtensionPlugin>
@@ -53,6 +56,9 @@ QML_DECLARE_TYPE(Q3DAbstractAxis)
QML_DECLARE_TYPE(Q3DCategoryAxis)
QML_DECLARE_TYPE(Q3DValueAxis)
+QML_DECLARE_TYPE(Q3DScene)
+QML_DECLARE_TYPE(Q3DCamera)
+
QML_DECLARE_TYPE(QAbstractDataProxy)
QML_DECLARE_TYPE(QBarDataProxy)
QML_DECLARE_TYPE(QItemModelBarDataProxy)