diff options
Diffstat (limited to 'src/datavisualizationqml2')
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) |