diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-06-09 15:52:53 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-06-10 08:20:59 +0300 |
commit | f15bcc41a2be8aa2267f4abf23e99bac72b594b4 (patch) | |
tree | 771fd956942b19054a2fa635a4d6d8741e54fdaa /src | |
parent | e9dc0f74f5cc06eb5edc3c16a63c9e6e89422584 (diff) |
Fix selectedElement qmldesigner crash
Also fix some minor inconsistencies in the API.
Change-Id: Ia31321a1f70d132173a909fef68fd3b59e06e080
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src')
7 files changed, 29 insertions, 11 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index 8658d463..30434dca 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -1481,7 +1481,10 @@ QCustom3DItem *Abstract3DController::selectedCustomItem() const QAbstract3DGraph::ElementType Abstract3DController::selectedElement() const { - return m_renderer->clickedType(); + if (m_renderer) + return m_renderer->clickedType(); + else + return QAbstract3DGraph::ElementNone; } void Abstract3DController::setOrthoProjection(bool enable) diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index a6dee6eb..f7ccbf21 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -308,7 +308,7 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller) QObject::connect(m_controller.data(), &Abstract3DController::selectionModeChanged, this, &AbstractDeclarative::handleSelectionModeChange); QObject::connect(m_controller.data(), &Abstract3DController::elementSelected, this, - &AbstractDeclarative::selectedElementChanged); + &AbstractDeclarative::handleSelectedElementChange); QObject::connect(m_controller.data(), &Abstract3DController::axisXChanged, this, &AbstractDeclarative::handleAxisXChanged); @@ -327,6 +327,8 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller) QObject::connect(m_controller.data(), &Abstract3DController::aspectRatioChanged, this, &AbstractDeclarative::aspectRatioChanged); + QObject::connect(m_controller.data(), &Abstract3DController::optimizationHintsChanged, this, + &AbstractDeclarative::handleOptimizationHintChange); } void AbstractDeclarative::activateOpenGLContext(QQuickWindow *window) @@ -532,6 +534,17 @@ void AbstractDeclarative::handleShadowQualityChange(QAbstract3DGraph::ShadowQual emit shadowQualityChanged(ShadowQuality(quality)); } +void AbstractDeclarative::handleSelectedElementChange(QAbstract3DGraph::ElementType type) +{ + emit selectedElementChanged(ElementType(type)); +} + +void AbstractDeclarative::handleOptimizationHintChange(QAbstract3DGraph::OptimizationHints hints) +{ + int intHints = int(hints); + emit optimizationHintsChanged(OptimizationHints(intHints)); +} + void AbstractDeclarative::render() { updateWindowParameters(); diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h index ebe8b49c..dfcd9537 100644 --- a/src/datavisualizationqml2/abstractdeclarative_p.h +++ b/src/datavisualizationqml2/abstractdeclarative_p.h @@ -132,6 +132,8 @@ public: virtual void setShadowQuality(ShadowQuality quality); virtual AbstractDeclarative::ShadowQuality shadowQuality() const; + virtual AbstractDeclarative::ElementType selectedElement() const; + virtual bool shadowsSupported() const; virtual void setMsaaSamples(int samples); @@ -185,8 +187,6 @@ public: void setOrthoProjection(bool enable); bool isOrthoProjection() const; - AbstractDeclarative::ElementType selectedElement() const; - void setAspectRatio(qreal ratio); qreal aspectRatio() const; @@ -211,6 +211,8 @@ protected: virtual void updateWindowParameters(); virtual void handleSelectionModeChange(QAbstract3DGraph::SelectionFlags mode); virtual void handleShadowQualityChange(QAbstract3DGraph::ShadowQuality quality); + virtual void handleSelectedElementChange(QAbstract3DGraph::ElementType type); + virtual void handleOptimizationHintChange(QAbstract3DGraph::OptimizationHints hints); virtual QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *); signals: @@ -224,10 +226,10 @@ signals: void renderingModeChanged(AbstractDeclarative::RenderingMode mode); Q_REVISION(1) void measureFpsChanged(bool enabled); Q_REVISION(1) void currentFpsChanged(qreal fps); - Q_REVISION(1) void selectedElementChanged(QAbstract3DGraph::ElementType type); + Q_REVISION(1) void selectedElementChanged(AbstractDeclarative::ElementType type); Q_REVISION(1) void orthoProjectionChanged(bool enabled); Q_REVISION(1) void aspectRatioChanged(qreal ratio); - Q_REVISION(1) void optimizationHintsChanged(QAbstract3DGraph::OptimizationHints hints); + Q_REVISION(1) void optimizationHintsChanged(AbstractDeclarative::OptimizationHints hints); private: QPointer<Abstract3DController> m_controller; diff --git a/src/datavisualizationqml2/designer/default/Bars3D.qml b/src/datavisualizationqml2/designer/default/Bars3D.qml index 9f8c72e3..10fefe53 100644 --- a/src/datavisualizationqml2/designer/default/Bars3D.qml +++ b/src/datavisualizationqml2/designer/default/Bars3D.qml @@ -17,7 +17,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.0 +import QtDataVisualization 1.1 Bars3D { width: 300 diff --git a/src/datavisualizationqml2/designer/default/Scatter3D.qml b/src/datavisualizationqml2/designer/default/Scatter3D.qml index d38a9755..b08d4e24 100644 --- a/src/datavisualizationqml2/designer/default/Scatter3D.qml +++ b/src/datavisualizationqml2/designer/default/Scatter3D.qml @@ -17,7 +17,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.0 +import QtDataVisualization 1.1 Scatter3D { width: 300 diff --git a/src/datavisualizationqml2/designer/default/Surface3D.qml b/src/datavisualizationqml2/designer/default/Surface3D.qml index fde097df..77ee476e 100644 --- a/src/datavisualizationqml2/designer/default/Surface3D.qml +++ b/src/datavisualizationqml2/designer/default/Surface3D.qml @@ -17,7 +17,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.0 +import QtDataVisualization 1.1 Surface3D { width: 300 diff --git a/src/datavisualizationqml2/plugins.qmltypes b/src/datavisualizationqml2/plugins.qmltypes index 71decd74..6a580536 100644 --- a/src/datavisualizationqml2/plugins.qmltypes +++ b/src/datavisualizationqml2/plugins.qmltypes @@ -158,7 +158,7 @@ Module { Signal { name: "selectedElementChanged" revision: 1 - Parameter { name: "type"; type: "QAbstract3DGraph::ElementType" } + Parameter { name: "type"; type: "AbstractDeclarative::ElementType" } } Signal { name: "orthoProjectionChanged" @@ -173,7 +173,7 @@ Module { Signal { name: "optimizationHintsChanged" revision: 1 - Parameter { name: "hints"; type: "QAbstract3DGraph::OptimizationHints" } + Parameter { name: "hints"; type: "AbstractDeclarative::OptimizationHints" } } Method { name: "handleAxisXChanged" |