diff options
Diffstat (limited to 'src/datavisualizationqml2')
22 files changed, 866 insertions, 132 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index 65e7c6c3..a6dee6eb 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -17,7 +17,6 @@ ****************************************************************************/ #include "abstractdeclarative_p.h" -#include "qvalue3daxis.h" #include "declarativetheme_p.h" #include "declarativerendernode_p.h" @@ -37,18 +36,18 @@ AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) : m_controller(0), m_contextWindow(0), m_renderMode(RenderIndirect), -#if defined(QT_OPENGL_ES_2) + #if defined(QT_OPENGL_ES_2) m_samples(0), -#else + #else m_samples(4), -#endif + #endif m_windowSamples(0), m_initialisedSize(0, 0), -#ifdef USE_SHARED_CONTEXT + #ifdef USE_SHARED_CONTEXT m_context(0), -#else + #else m_stateStore(0), -#endif + #endif m_qtContext(0), m_mainThread(QThread::currentThread()), m_contextThread(0) @@ -171,7 +170,7 @@ Declarative3DScene* AbstractDeclarative::scene() const void AbstractDeclarative::setTheme(Q3DTheme *theme) { - m_controller->setActiveTheme(theme); + m_controller->setActiveTheme(theme, isComponentComplete()); } Q3DTheme *AbstractDeclarative::theme() const @@ -211,6 +210,84 @@ bool AbstractDeclarative::shadowsSupported() const return m_controller->shadowsSupported(); } +int AbstractDeclarative::addCustomItem(QCustom3DItem *item) +{ + return m_controller->addCustomItem(item); +} + +void AbstractDeclarative::removeCustomItems() +{ + m_controller->deleteCustomItems(); +} + +void AbstractDeclarative::removeCustomItem(QCustom3DItem *item) +{ + m_controller->deleteCustomItem(item); +} + +void AbstractDeclarative::removeCustomItemAt(const QVector3D &position) +{ + m_controller->deleteCustomItem(position); +} + +void AbstractDeclarative::releaseCustomItem(QCustom3DItem *item) +{ + return m_controller->releaseCustomItem(item); +} + +int AbstractDeclarative::selectedLabelIndex() const +{ + return m_controller->selectedLabelIndex(); +} + +QAbstract3DAxis *AbstractDeclarative::selectedAxis() const +{ + return m_controller->selectedAxis(); +} + +int AbstractDeclarative::selectedCustomItemIndex() const +{ + return m_controller->selectedCustomItemIndex(); +} + +QCustom3DItem *AbstractDeclarative::selectedCustomItem() const +{ + return m_controller->selectedCustomItem(); +} + +QQmlListProperty<QCustom3DItem> AbstractDeclarative::customItemList() +{ + return QQmlListProperty<QCustom3DItem>(this, this, + &AbstractDeclarative::appendCustomItemFunc, + &AbstractDeclarative::countCustomItemFunc, + &AbstractDeclarative::atCustomItemFunc, + &AbstractDeclarative::clearCustomItemFunc); +} + +void AbstractDeclarative::appendCustomItemFunc(QQmlListProperty<QCustom3DItem> *list, + QCustom3DItem *item) +{ + AbstractDeclarative *decl = reinterpret_cast<AbstractDeclarative *>(list->data); + decl->addCustomItem(item); +} + +int AbstractDeclarative::countCustomItemFunc(QQmlListProperty<QCustom3DItem> *list) +{ + return reinterpret_cast<AbstractDeclarative *>(list->data)->m_controller->m_customItems.size(); +} + +QCustom3DItem *AbstractDeclarative::atCustomItemFunc(QQmlListProperty<QCustom3DItem> *list, + int index) +{ + return reinterpret_cast<AbstractDeclarative *>(list->data)->m_controller->m_customItems.at(index); +} + +void AbstractDeclarative::clearCustomItemFunc(QQmlListProperty<QCustom3DItem> *list) +{ + AbstractDeclarative *decl = reinterpret_cast<AbstractDeclarative *>(list->data); + decl->removeCustomItems(); +} + void AbstractDeclarative::setSharedController(Abstract3DController *controller) { Q_ASSERT(controller); @@ -230,6 +307,8 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller) &AbstractDeclarative::themeChanged); QObject::connect(m_controller.data(), &Abstract3DController::selectionModeChanged, this, &AbstractDeclarative::handleSelectionModeChange); + QObject::connect(m_controller.data(), &Abstract3DController::elementSelected, this, + &AbstractDeclarative::selectedElementChanged); QObject::connect(m_controller.data(), &Abstract3DController::axisXChanged, this, &AbstractDeclarative::handleAxisXChanged); @@ -237,6 +316,17 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller) &AbstractDeclarative::handleAxisYChanged); QObject::connect(m_controller.data(), &Abstract3DController::axisZChanged, this, &AbstractDeclarative::handleAxisZChanged); + + QObject::connect(m_controller.data(), &Abstract3DController::measureFpsChanged, this, + &AbstractDeclarative::measureFpsChanged); + QObject::connect(m_controller.data(), &Abstract3DController::currentFpsChanged, this, + &AbstractDeclarative::currentFpsChanged); + + QObject::connect(m_controller.data(), &Abstract3DController::orthoProjectionChanged, this, + &AbstractDeclarative::orthoProjectionChanged); + + QObject::connect(m_controller.data(), &Abstract3DController::aspectRatioChanged, this, + &AbstractDeclarative::aspectRatioChanged); } void AbstractDeclarative::activateOpenGLContext(QQuickWindow *window) @@ -569,6 +659,58 @@ void AbstractDeclarative::checkWindowList(QQuickWindow *window) } } +void AbstractDeclarative::setMeasureFps(bool enable) +{ + m_controller->setMeasureFps(enable); +} + +bool AbstractDeclarative::measureFps() const +{ + return m_controller->measureFps(); +} + +qreal AbstractDeclarative::currentFps() const +{ + return m_controller->currentFps(); +} + +void AbstractDeclarative::setOrthoProjection(bool enable) +{ + m_controller->setOrthoProjection(enable); +} + +bool AbstractDeclarative::isOrthoProjection() const +{ + return m_controller->isOrthoProjection(); +} + +AbstractDeclarative::ElementType AbstractDeclarative::selectedElement() const +{ + return ElementType(m_controller->selectedElement()); +} + +void AbstractDeclarative::setAspectRatio(qreal ratio) +{ + m_controller->setAspectRatio(float(ratio)); +} + +qreal AbstractDeclarative::aspectRatio() const +{ + return m_controller->aspectRatio(); +} + +void AbstractDeclarative::setOptimizationHints(OptimizationHints hints) +{ + int intmode = int(hints); + m_controller->setOptimizationHints(QAbstract3DGraph::OptimizationHints(intmode)); +} + +AbstractDeclarative::OptimizationHints AbstractDeclarative::optimizationHints() const +{ + int intmode = int(m_controller->optimizationHints()); + return OptimizationHints(intmode); +} + void AbstractDeclarative::windowDestroyed(QObject *obj) { // Remove destroyed window from window lists diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h index 87b108db..ebe8b49c 100644 --- a/src/datavisualizationqml2/abstractdeclarative_p.h +++ b/src/datavisualizationqml2/abstractdeclarative_p.h @@ -31,12 +31,9 @@ #include "datavisualizationglobal_p.h" #include "abstract3dcontroller_p.h" -#include "qabstract3dinputhandler.h" #include "declarativescene_p.h" -#include <QtCore/QAbstractItemModel> #include <QtQuick/QQuickItem> -#include <QtQuick/QQuickWindow> #include <QtCore/QPointer> #include <QtCore/QThread> @@ -57,7 +54,9 @@ class AbstractDeclarative : public QQuickItem Q_OBJECT Q_ENUMS(ShadowQuality) Q_ENUMS(RenderingMode) + Q_ENUMS(ElementType) Q_FLAGS(SelectionFlag SelectionFlags) + Q_FLAGS(OptimizationHint OptimizationHints) Q_PROPERTY(SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged) Q_PROPERTY(ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged) Q_PROPERTY(bool shadowsSupported READ shadowsSupported NOTIFY shadowsSupportedChanged) @@ -66,6 +65,13 @@ class AbstractDeclarative : public QQuickItem Q_PROPERTY(QAbstract3DInputHandler* inputHandler READ inputHandler WRITE setInputHandler NOTIFY inputHandlerChanged) Q_PROPERTY(Q3DTheme* theme READ theme WRITE setTheme NOTIFY themeChanged) Q_PROPERTY(RenderingMode renderingMode READ renderingMode WRITE setRenderingMode NOTIFY renderingModeChanged) + Q_PROPERTY(bool measureFps READ measureFps WRITE setMeasureFps NOTIFY measureFpsChanged REVISION 1) + Q_PROPERTY(qreal currentFps READ currentFps NOTIFY currentFpsChanged REVISION 1) + Q_PROPERTY(QQmlListProperty<QCustom3DItem> customItemList READ customItemList REVISION 1) + Q_PROPERTY(bool orthoProjection READ isOrthoProjection WRITE setOrthoProjection NOTIFY orthoProjectionChanged REVISION 1) + Q_PROPERTY(ElementType selectedElement READ selectedElement NOTIFY selectedElementChanged REVISION 1) + Q_PROPERTY(qreal aspectRatio READ aspectRatio WRITE setAspectRatio NOTIFY aspectRatioChanged REVISION 1) + Q_PROPERTY(OptimizationHints optimizationHints READ optimizationHints WRITE setOptimizationHints NOTIFY optimizationHintsChanged REVISION 1) public: enum SelectionFlag { @@ -92,12 +98,27 @@ public: ShadowQualitySoftHigh }; + enum ElementType { + ElementNone = 0, + ElementSeries, + ElementAxisXLabel, + ElementAxisYLabel, + ElementAxisZLabel, + ElementCustomItem + }; + enum RenderingMode { RenderDirectToBackground = 0, RenderDirectToBackground_NoClear, RenderIndirect }; + enum OptimizationHint { + OptimizationDefault = 0, + OptimizationStatic = 1 + }; + Q_DECLARE_FLAGS(OptimizationHints, OptimizationHint) + public: explicit AbstractDeclarative(QQuickItem *parent = 0); virtual ~AbstractDeclarative(); @@ -126,7 +147,26 @@ public: Q_INVOKABLE virtual void clearSelection(); - virtual void geometryChanged(const QRectF & newGeometry, const QRectF & oldGeometry); + Q_REVISION(1) Q_INVOKABLE virtual int addCustomItem(QCustom3DItem *item); + Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItems(); + Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItem(QCustom3DItem *item); + Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItemAt(const QVector3D &position); + Q_REVISION(1) Q_INVOKABLE virtual void releaseCustomItem(QCustom3DItem *item); + + Q_REVISION(1) Q_INVOKABLE virtual int selectedLabelIndex() const; + Q_REVISION(1) Q_INVOKABLE virtual QAbstract3DAxis *selectedAxis() const; + + Q_REVISION(1) Q_INVOKABLE virtual int selectedCustomItemIndex() const; + Q_REVISION(1) Q_INVOKABLE virtual QCustom3DItem *selectedCustomItem() const; + + QQmlListProperty<QCustom3DItem> customItemList(); + static void appendCustomItemFunc(QQmlListProperty<QCustom3DItem> *list, + QCustom3DItem *item); + static int countCustomItemFunc(QQmlListProperty<QCustom3DItem> *list); + static QCustom3DItem *atCustomItemFunc(QQmlListProperty<QCustom3DItem> *list, int index); + static void clearCustomItemFunc(QQmlListProperty<QCustom3DItem> *list); + + 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 @@ -138,6 +178,21 @@ public: void checkWindowList(QQuickWindow *window); + void setMeasureFps(bool enable); + bool measureFps() const; + qreal currentFps() const; + + void setOrthoProjection(bool enable); + bool isOrthoProjection() const; + + AbstractDeclarative::ElementType selectedElement() const; + + void setAspectRatio(qreal ratio); + qreal aspectRatio() const; + + void setOptimizationHints(OptimizationHints hints); + OptimizationHints optimizationHints() const; + public slots: virtual void handleAxisXChanged(QAbstract3DAxis *axis) = 0; virtual void handleAxisYChanged(QAbstract3DAxis *axis) = 0; @@ -167,6 +222,12 @@ signals: void inputHandlerChanged(QAbstract3DInputHandler *inputHandler); void themeChanged(Q3DTheme *theme); 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 orthoProjectionChanged(bool enabled); + Q_REVISION(1) void aspectRatioChanged(qreal ratio); + Q_REVISION(1) void optimizationHintsChanged(QAbstract3DGraph::OptimizationHints hints); private: QPointer<Abstract3DController> m_controller; @@ -187,6 +248,7 @@ private: bool m_runningInDesigner; }; Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractDeclarative::SelectionFlags) +Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractDeclarative::OptimizationHints) QT_END_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp index 04e70ecb..09780dc5 100644 --- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp +++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp @@ -25,8 +25,11 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION void QtDataVisualizationQml2Plugin::registerTypes(const char *uri) { // @uri QtDataVisualization - qmlRegisterUncreatableType<const QAbstractItemModel>(uri, 1, 0, "AbstractItemModel", - QLatin1String("Trying to create uncreatable: AbstractItemModel.")); + + // QtDataVisualization 1.0 + + qmlRegisterUncreatableType<QAbstractItemModel>(uri, 1, 0, "AbstractItemModel", + QLatin1String("Trying to create uncreatable: AbstractItemModel.")); qmlRegisterUncreatableType<QAbstract3DAxis>(uri, 1, 0, "AbstractAxis3D", QLatin1String("Trying to create uncreatable: AbstractAxis.")); qmlRegisterUncreatableType<QAbstractDataProxy>(uri, 1, 0, "AbstractDataProxy", @@ -40,7 +43,7 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri) qmlRegisterUncreatableType<AbstractDeclarative>(uri, 1, 0, "AbstractGraph3D", QLatin1String("Trying to create uncreatable: AbstractGraph3D.")); qmlRegisterUncreatableType<Declarative3DScene>(uri, 1, 0, "Scene3D", - QLatin1String("Trying to create uncreatable: 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", @@ -80,6 +83,29 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri) qmlRegisterType<DeclarativeSurface3DSeries>(uri, 1, 0, "Surface3DSeries"); qRegisterMetaType<QAbstract3DGraph::ShadowQuality>("QAbstract3DGraph::ShadowQuality"); + + // QtDataVisualization 1.1 + + // New revisions + qmlRegisterUncreatableType<QAbstract3DAxis, 1>(uri, 1, 1, "AbstractAxis3D", + QLatin1String("Trying to create uncreatable: AbstractAxis.")); + qmlRegisterUncreatableType<QAbstract3DSeries, 1>(uri, 1, 1, "Abstract3DSeries", + QLatin1String("Trying to create uncreatable: Abstract3DSeries.")); + qmlRegisterUncreatableType<AbstractDeclarative, 1>(uri, 1, 1, "AbstractGraph3D", + QLatin1String("Trying to create uncreatable: AbstractGraph3D.")); + qmlRegisterType<QValue3DAxis, 1>(uri, 1, 1, "ValueAxis3D"); + qmlRegisterType<QItemModelBarDataProxy, 1>(uri, 1, 1, "ItemModelBarDataProxy"); + qmlRegisterType<QItemModelSurfaceDataProxy, 1>(uri, 1, 1, "ItemModelSurfaceDataProxy"); + qmlRegisterType<QItemModelScatterDataProxy, 1>(uri, 1, 1, "ItemModelScatterDataProxy"); + + // New types + qmlRegisterType<QValue3DAxisFormatter>(uri, 1, 1, "ValueAxis3DFormatter"); + qmlRegisterType<QLogValue3DAxisFormatter>(uri, 1, 1, "LogValueAxis3DFormatter"); + qmlRegisterType<QCustom3DItem>(uri, 1, 1, "Custom3DItem"); + qmlRegisterType<QCustom3DLabel>(uri, 1, 1, "Custom3DLabel"); + + // New metatypes + qRegisterMetaType<QAbstract3DGraph::ElementType>("QAbstract3DGraph::ElementType"); } QT_END_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h index e39d6b35..21ef85b8 100644 --- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h +++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h @@ -28,6 +28,8 @@ #include "qitemmodelsurfacedataproxy.h" #include "qheightmapsurfacedataproxy.h" #include "qvalue3daxis.h" +#include "qvalue3daxisformatter.h" +#include "qlogvalue3daxisformatter.h" #include "qcategory3daxis.h" #include "q3dobject.h" #include "q3dcamera.h" @@ -43,6 +45,8 @@ #include "qabstract3dinputhandler.h" #include "declarativecolor_p.h" #include "declarativescene_p.h" +#include "qcustom3ditem.h" +#include "qcustom3dlabel.h" #include <QtQml/QQmlExtensionPlugin> @@ -53,11 +57,13 @@ QML_DECLARE_TYPE(DeclarativeBars) QML_DECLARE_TYPE(DeclarativeScatter) QML_DECLARE_TYPE(DeclarativeSurface) -QML_DECLARE_TYPE(const QAbstractItemModel) +QML_DECLARE_TYPE(QAbstractItemModel) QML_DECLARE_TYPE(QAbstract3DAxis) QML_DECLARE_TYPE(QCategory3DAxis) QML_DECLARE_TYPE(QValue3DAxis) +QML_DECLARE_TYPE(QValue3DAxisFormatter) +QML_DECLARE_TYPE(QLogValue3DAxisFormatter) QML_DECLARE_TYPE(Q3DScene) QML_DECLARE_TYPE(Declarative3DScene) @@ -92,6 +98,9 @@ QML_DECLARE_TYPE(DeclarativeTheme3D) QML_DECLARE_TYPE(QAbstract3DInputHandler) +QML_DECLARE_TYPE(QCustom3DItem) +QML_DECLARE_TYPE(QCustom3DLabel) + QT_BEGIN_NAMESPACE_DATAVISUALIZATION class QtDataVisualizationQml2Plugin : public QQmlExtensionPlugin diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp index 4f984c32..9670a7db 100644 --- a/src/datavisualizationqml2/declarativebars.cpp +++ b/src/datavisualizationqml2/declarativebars.cpp @@ -17,9 +17,6 @@ ****************************************************************************/ #include "declarativebars_p.h" -#include "qvalue3daxis.h" -#include "qitemmodelbardataproxy.h" -#include "declarativescene_p.h" QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -90,7 +87,8 @@ bool DeclarativeBars::isMultiSeriesUniform() const void DeclarativeBars::setBarThickness(float thicknessRatio) { if (thicknessRatio != barThickness()) { - m_barsController->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), isBarSpacingRelative()); + m_barsController->setBarSpecs(GLfloat(thicknessRatio), barSpacing(), + isBarSpacingRelative()); emit barThicknessChanged(thicknessRatio); } } diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h index 97f5882a..52690813 100644 --- a/src/datavisualizationqml2/declarativebars_p.h +++ b/src/datavisualizationqml2/declarativebars_p.h @@ -32,11 +32,6 @@ #include "datavisualizationglobal_p.h" #include "abstractdeclarative_p.h" #include "bars3dcontroller_p.h" -#include "declarativebars_p.h" -#include "qvalue3daxis.h" -#include "qcategory3daxis.h" -#include "qbardataproxy.h" -#include "qbar3dseries.h" QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -88,7 +83,6 @@ public: Q_INVOKABLE void insertSeries(int index, QBar3DSeries *series); void setPrimarySeries(QBar3DSeries *series); QBar3DSeries *primarySeries() const; - QBar3DSeries *selectedSeries() const; public slots: diff --git a/src/datavisualizationqml2/declarativerendernode.cpp b/src/datavisualizationqml2/declarativerendernode.cpp index 1f6d4b56..e9bb65fd 100644 --- a/src/datavisualizationqml2/declarativerendernode.cpp +++ b/src/datavisualizationqml2/declarativerendernode.cpp @@ -17,24 +17,22 @@ ****************************************************************************/ #include "declarativerendernode_p.h" -#include "abstract3dcontroller_p.h" #include "abstractdeclarative_p.h" -#include <QtGui/QOpenGLContext> #include <QtGui/QOpenGLFramebufferObject> QT_BEGIN_NAMESPACE_DATAVISUALIZATION DeclarativeRenderNode::DeclarativeRenderNode(AbstractDeclarative *declarative) : QSGGeometryNode(), - m_geometry(QSGGeometry::defaultAttributes_TexturedPoint2D(), 4), - m_texture(0), - m_declarative(declarative), - m_controller(0), - m_fbo(0), - m_multisampledFBO(0), - m_window(0), - m_samples(0), - m_dirtyFBO(false) + m_geometry(QSGGeometry::defaultAttributes_TexturedPoint2D(), 4), + m_texture(0), + m_declarative(declarative), + m_controller(0), + m_fbo(0), + m_multisampledFBO(0), + m_window(0), + m_samples(0), + m_dirtyFBO(false) { setMaterial(&m_material); setOpaqueMaterial(&m_materialO); @@ -92,8 +90,10 @@ void DeclarativeRenderNode::updateFBO() QSGGeometry::updateTexturedRectGeometry(&m_geometry, QRectF(0, 0, - m_size.width() / m_controller->scene()->devicePixelRatio(), - m_size.height() / m_controller->scene()->devicePixelRatio()), + m_size.width() + / m_controller->scene()->devicePixelRatio(), + m_size.height() + / m_controller->scene()->devicePixelRatio()), QRectF(0, 1, 1, -1)); delete m_texture; diff --git a/src/datavisualizationqml2/declarativerendernode_p.h b/src/datavisualizationqml2/declarativerendernode_p.h index e35791d4..a7ede03a 100644 --- a/src/datavisualizationqml2/declarativerendernode_p.h +++ b/src/datavisualizationqml2/declarativerendernode_p.h @@ -33,12 +33,8 @@ #include <QtQuick/QSGGeometryNode> #include <QtQuick/QSGTextureMaterial> -#include <QtQuick/QSGOpaqueTextureMaterial> #include <QtQuick/QQuickWindow> -class QOpenGLContext; -class QOpenGLFramebufferObject; - QT_BEGIN_NAMESPACE_DATAVISUALIZATION class Abstract3DController; diff --git a/src/datavisualizationqml2/declarativescatter.cpp b/src/datavisualizationqml2/declarativescatter.cpp index dcc52a3d..96af6df6 100644 --- a/src/datavisualizationqml2/declarativescatter.cpp +++ b/src/datavisualizationqml2/declarativescatter.cpp @@ -17,8 +17,6 @@ ****************************************************************************/ #include "declarativescatter_p.h" -#include "qitemmodelscatterdataproxy.h" -#include "declarativescene_p.h" QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -79,13 +77,14 @@ QScatter3DSeries *DeclarativeScatter::selectedSeries() const QQmlListProperty<QScatter3DSeries> DeclarativeScatter::seriesList() { return QQmlListProperty<QScatter3DSeries>(this, this, - &DeclarativeScatter::appendSeriesFunc, - &DeclarativeScatter::countSeriesFunc, - &DeclarativeScatter::atSeriesFunc, - &DeclarativeScatter::clearSeriesFunc); + &DeclarativeScatter::appendSeriesFunc, + &DeclarativeScatter::countSeriesFunc, + &DeclarativeScatter::atSeriesFunc, + &DeclarativeScatter::clearSeriesFunc); } -void DeclarativeScatter::appendSeriesFunc(QQmlListProperty<QScatter3DSeries> *list, QScatter3DSeries *series) +void DeclarativeScatter::appendSeriesFunc(QQmlListProperty<QScatter3DSeries> *list, + QScatter3DSeries *series) { reinterpret_cast<DeclarativeScatter *>(list->data)->addSeries(series); } diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h index 79b56e02..370750ea 100644 --- a/src/datavisualizationqml2/declarativescatter_p.h +++ b/src/datavisualizationqml2/declarativescatter_p.h @@ -32,9 +32,6 @@ #include "datavisualizationglobal_p.h" #include "abstractdeclarative_p.h" #include "scatter3dcontroller_p.h" -#include "declarativescatter_p.h" -#include "qvalue3daxis.h" -#include "qscatterdataproxy.h" #include "qscatter3dseries.h" QT_BEGIN_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/declarativeseries.cpp b/src/datavisualizationqml2/declarativeseries.cpp index 21555f45..661f87ba 100644 --- a/src/datavisualizationqml2/declarativeseries.cpp +++ b/src/datavisualizationqml2/declarativeseries.cpp @@ -17,14 +17,12 @@ ****************************************************************************/ #include "declarativeseries_p.h" -#include "qbardataproxy.h" -#include "qscatterdataproxy.h" -#include "qsurfacedataproxy.h" #include <QtCore/QMetaMethod> QT_BEGIN_NAMESPACE_DATAVISUALIZATION -static void setSeriesGradient(QAbstract3DSeries *series, const ColorGradient &gradient, GradientType type) +static void setSeriesGradient(QAbstract3DSeries *series, const ColorGradient &gradient, + GradientType type) { QLinearGradient newGradient; QGradientStops stops; @@ -198,7 +196,8 @@ QQmlListProperty<QObject> DeclarativeScatter3DSeries::seriesChildren() , 0, 0, 0); } -void DeclarativeScatter3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element) +void DeclarativeScatter3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, + QObject *element) { QScatterDataProxy *proxy = qobject_cast<QScatterDataProxy *>(element); if (proxy) @@ -293,7 +292,8 @@ QQmlListProperty<QObject> DeclarativeSurface3DSeries::seriesChildren() , 0, 0, 0); } -void DeclarativeSurface3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element) +void DeclarativeSurface3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *list, + QObject *element) { QSurfaceDataProxy *proxy = qobject_cast<QSurfaceDataProxy *>(element); if (proxy) diff --git a/src/datavisualizationqml2/declarativesurface.cpp b/src/datavisualizationqml2/declarativesurface.cpp index 78519586..3075d207 100644 --- a/src/datavisualizationqml2/declarativesurface.cpp +++ b/src/datavisualizationqml2/declarativesurface.cpp @@ -17,9 +17,6 @@ ****************************************************************************/ #include "declarativesurface_p.h" -#include "qvalue3daxis.h" -#include "qitemmodelsurfacedataproxy.h" -#include "declarativescene_p.h" QT_BEGIN_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/declarativesurface_p.h b/src/datavisualizationqml2/declarativesurface_p.h index a4747167..6fe800ba 100644 --- a/src/datavisualizationqml2/declarativesurface_p.h +++ b/src/datavisualizationqml2/declarativesurface_p.h @@ -32,9 +32,6 @@ #include "datavisualizationglobal_p.h" #include "abstractdeclarative_p.h" #include "surface3dcontroller_p.h" -#include "declarativesurface_p.h" -#include "qvalue3daxis.h" -#include "qsurfacedataproxy.h" #include "qsurface3dseries.h" QT_BEGIN_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/declarativetheme.cpp b/src/datavisualizationqml2/declarativetheme.cpp index 5aec2408..ab10155e 100644 --- a/src/datavisualizationqml2/declarativetheme.cpp +++ b/src/datavisualizationqml2/declarativetheme.cpp @@ -36,17 +36,17 @@ DeclarativeTheme3D::~DeclarativeTheme3D() { } -QQmlListProperty<QObject> DeclarativeTheme3D::seriesChildren() +QQmlListProperty<QObject> DeclarativeTheme3D::themeChildren() { - return QQmlListProperty<QObject>(this, this, &DeclarativeTheme3D::appendSeriesChildren, + return QQmlListProperty<QObject>(this, this, &DeclarativeTheme3D::appendThemeChildren, 0, 0, 0); } -void DeclarativeTheme3D::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element) +void DeclarativeTheme3D::appendThemeChildren(QQmlListProperty<QObject> *list, QObject *element) { Q_UNUSED(list) Q_UNUSED(element) - // Nothing to do, seriesChildren is there only to enable scoping gradient items in Theme3D item. + // Nothing to do, themeChildren is there only to enable scoping gradient items in Theme3D item. } void DeclarativeTheme3D::handleTypeChange(Theme themeType) @@ -236,6 +236,10 @@ ColorGradient *DeclarativeTheme3D::convertGradient(const QLinearGradient &gradie void DeclarativeTheme3D::addColor(DeclarativeColor *color) { + if (!color) { + qWarning("Color is invalid, use ThemeColor"); + return; + } clearDummyColors(); m_colors.append(color); connect(color, &DeclarativeColor::colorChanged, @@ -283,6 +287,10 @@ void DeclarativeTheme3D::clearDummyColors() void DeclarativeTheme3D::addGradient(ColorGradient *gradient) { + if (!gradient) { + qWarning("Gradient is invalid, use ColorGradient"); + return; + } clearDummyGradients(); m_gradients.append(gradient); connect(gradient, &ColorGradient::updated, diff --git a/src/datavisualizationqml2/declarativetheme_p.h b/src/datavisualizationqml2/declarativetheme_p.h index a7f40b1e..89b66f8c 100644 --- a/src/datavisualizationqml2/declarativetheme_p.h +++ b/src/datavisualizationqml2/declarativetheme_p.h @@ -42,19 +42,19 @@ class DeclarativeTheme3D : public Q3DTheme, public QQmlParserStatus { Q_OBJECT Q_INTERFACES(QQmlParserStatus) - Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) + Q_PROPERTY(QQmlListProperty<QObject> themeChildren READ themeChildren) Q_PROPERTY(QQmlListProperty<DeclarativeColor> baseColors READ baseColors) Q_PROPERTY(QQmlListProperty<ColorGradient> baseGradients READ baseGradients) Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged) Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged) - Q_CLASSINFO("DefaultProperty", "seriesChildren") + Q_CLASSINFO("DefaultProperty", "themeChildren") public: DeclarativeTheme3D(QObject *parent = 0); virtual ~DeclarativeTheme3D(); - QQmlListProperty<QObject> seriesChildren(); - static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element); + QQmlListProperty<QObject> themeChildren(); + static void appendThemeChildren(QQmlListProperty<QObject> *list, QObject *element); QQmlListProperty<DeclarativeColor> baseColors(); static void appendBaseColorsFunc(QQmlListProperty<DeclarativeColor> *list, diff --git a/src/datavisualizationqml2/designer/Bars3DSpecifics.qml b/src/datavisualizationqml2/designer/Bars3DSpecifics.qml index e52320ac..cb5fb4a0 100644 --- a/src/datavisualizationqml2/designer/Bars3DSpecifics.qml +++ b/src/datavisualizationqml2/designer/Bars3DSpecifics.qml @@ -266,6 +266,29 @@ Column { } } } + Label { + text: qsTr("measureFps") + toolTip: qsTr("Measure Frames Per Second") + Layout.fillWidth: true + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.measureFps + Layout.fillWidth: true + } + } + Label { + text: qsTr("orthoProjection") + toolTip: qsTr("Use Orthographic Projection") + Layout.fillWidth: true + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.orthoProjection + Layout.fillWidth: true + } + } + // Kept for debugging Label { } SecondColumnLayout { diff --git a/src/datavisualizationqml2/designer/Scatter3DSpecifics.qml b/src/datavisualizationqml2/designer/Scatter3DSpecifics.qml index b9a9ef97..1e2556ec 100644 --- a/src/datavisualizationqml2/designer/Scatter3DSpecifics.qml +++ b/src/datavisualizationqml2/designer/Scatter3DSpecifics.qml @@ -84,6 +84,43 @@ Column { scope: "AbstractGraph3D" } } + Label { + text: qsTr("measureFps") + toolTip: qsTr("Measure Frames Per Second") + Layout.fillWidth: true + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.measureFps + Layout.fillWidth: true + } + } + Label { + text: qsTr("orthoProjection") + toolTip: qsTr("Use Orthographic Projection") + Layout.fillWidth: true + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.orthoProjection + Layout.fillWidth: true + } + } + Label { + text: qsTr("aspectRatio") + toolTip: qsTr("Horizontal to Vertical Aspect Ratio") + Layout.fillWidth: true + } + SecondColumnLayout { + SpinBox { + backendValue: backendValues.aspectRatio + minimumValue: 0.1 + maximumValue: 10.0 + stepSize: 0.1 + decimals: 1 + Layout.fillWidth: true + } + } } } } diff --git a/src/datavisualizationqml2/designer/Surface3DSpecifics.qml b/src/datavisualizationqml2/designer/Surface3DSpecifics.qml index 74470e4b..65a65d37 100644 --- a/src/datavisualizationqml2/designer/Surface3DSpecifics.qml +++ b/src/datavisualizationqml2/designer/Surface3DSpecifics.qml @@ -204,6 +204,44 @@ Column { } } } + Label { + text: qsTr("measureFps") + toolTip: qsTr("Measure Frames Per Second") + Layout.fillWidth: true + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.measureFps + Layout.fillWidth: true + } + } + Label { + text: qsTr("orthoProjection") + toolTip: qsTr("Use Orthographic Projection") + Layout.fillWidth: true + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.orthoProjection + Layout.fillWidth: true + } + } + Label { + text: qsTr("aspectRatio") + toolTip: qsTr("Horizontal to Vertical Aspect Ratio") + Layout.fillWidth: true + } + SecondColumnLayout { + SpinBox { + backendValue: backendValues.aspectRatio + minimumValue: 0.1 + maximumValue: 10.0 + stepSize: 0.1 + decimals: 1 + Layout.fillWidth: true + } + } + // Kept for debugging Label { } SecondColumnLayout { diff --git a/src/datavisualizationqml2/enumtostringmap.cpp b/src/datavisualizationqml2/enumtostringmap.cpp index 249fbae3..b4b04fc2 100644 --- a/src/datavisualizationqml2/enumtostringmap.cpp +++ b/src/datavisualizationqml2/enumtostringmap.cpp @@ -15,12 +15,13 @@ ** contact form at http://qt.digia.com ** ****************************************************************************/ + #include "enumtostringmap_p.h" -#include <QString> -#include <QDebug> #ifdef VERBOSE_STATE_STORE +#include <QDebug> + static EnumToStringMap *theInstance = 0; static unsigned int theInstanceCount = 0; @@ -367,7 +368,8 @@ EnumToStringMap::EnumToStringMap() : m_map[GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE] = "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"; m_map[GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME] = "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"; m_map[GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"; - m_map[GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"; + m_map[GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE] = + "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"; m_map[GL_COLOR_ATTACHMENT0] = "COLOR_ATTACHMENT0"; m_map[GL_DEPTH_ATTACHMENT] = "DEPTH_ATTACHMENT"; @@ -375,11 +377,16 @@ EnumToStringMap::EnumToStringMap() : m_map[GL_FRAMEBUFFER_COMPLETE] = "FRAMEBUFFER_COMPLETE"; m_map[GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT] = "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"; - m_map[GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT] = "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"; + m_map[GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT] = + "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"; m_map[GL_FRAMEBUFFER_UNSUPPORTED] = "FRAMEBUFFER_UNSUPPORTED"; m_map[GL_FRAMEBUFFER_BINDING] = "FRAMEBUFFER_BINDING"; +#if !defined(QT_OPENGL_ES_2) m_map[GL_RENDERBUFFER_BINDING] = "RENDERBUFFER_BINDING"; +#else + m_map[GL_RENDERBUFFER] = "RENDERBUFFER_BINDING"; +#endif m_map[GL_MAX_RENDERBUFFER_SIZE] = "MAX_RENDERBUFFER_SIZE"; m_map[GL_INVALID_FRAMEBUFFER_OPERATION] = "INVALID_FRAMEBUFFER_OPERATION"; diff --git a/src/datavisualizationqml2/glstatestore.cpp b/src/datavisualizationqml2/glstatestore.cpp index f053078b..973d5054 100644 --- a/src/datavisualizationqml2/glstatestore.cpp +++ b/src/datavisualizationqml2/glstatestore.cpp @@ -15,6 +15,7 @@ ** contact form at http://qt.digia.com ** ****************************************************************************/ + #include "glstatestore_p.h" #include <QDebug> #include <QColor> @@ -50,13 +51,13 @@ GLStateStore::GLStateStore(QOpenGLContext *context, QObject *parent) : #endif m_maxVertexAttribs = qMin(maxVertexAttribs, 2); // Datavis only uses 2 attribs max - m_vertexAttribArrayEnabledStates = new GLint[maxVertexAttribs]; - m_vertexAttribArrayBoundBuffers = new GLint[maxVertexAttribs]; - m_vertexAttribArraySizes = new GLint[maxVertexAttribs]; - m_vertexAttribArrayTypes = new GLint[maxVertexAttribs]; - m_vertexAttribArrayNormalized = new GLint[maxVertexAttribs]; - m_vertexAttribArrayStrides = new GLint[maxVertexAttribs]; - m_vertexAttribArrayOffsets = new GLint[maxVertexAttribs]; + m_vertexAttribArrayEnabledStates.reset(new GLint[maxVertexAttribs]); + m_vertexAttribArrayBoundBuffers.reset(new GLint[maxVertexAttribs]); + m_vertexAttribArraySizes.reset(new GLint[maxVertexAttribs]); + m_vertexAttribArrayTypes.reset(new GLint[maxVertexAttribs]); + m_vertexAttribArrayNormalized.reset(new GLint[maxVertexAttribs]); + m_vertexAttribArrayStrides.reset(new GLint[maxVertexAttribs]); + m_vertexAttribArrayOffsets.reset(new GLint[maxVertexAttribs]); initGLDefaultState(); } @@ -67,8 +68,6 @@ GLStateStore::~GLStateStore() EnumToStringMap::deleteInstance(); m_map = 0; #endif - delete m_vertexAttribArrayEnabledStates; - delete m_vertexAttribArrayBoundBuffers; } void GLStateStore::storeGLState() @@ -80,8 +79,10 @@ void GLStateStore::storeGLState() #if !defined(QT_OPENGL_ES_2) glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &m_drawFramebuffer); glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, &m_readFramebuffer); -#endif glGetIntegerv(GL_RENDERBUFFER_BINDING, &m_renderbuffer); +#else + glGetIntegerv(GL_RENDERBUFFER, &m_renderbuffer); +#endif glGetFloatv(GL_COLOR_CLEAR_VALUE, m_clearColor); m_isBlendingEnabled = glIsEnabled(GL_BLEND); m_isDepthTestEnabled = glIsEnabled(GL_DEPTH_TEST); @@ -111,11 +112,14 @@ void GLStateStore::storeGLState() glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &m_boundElementArrayBuffer); for (int i = 0; i < m_maxVertexAttribs;i++) { - glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &m_vertexAttribArrayEnabledStates[i]); - glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, &m_vertexAttribArrayBoundBuffers[i]); + glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_ENABLED, + &m_vertexAttribArrayEnabledStates[i]); + glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, + &m_vertexAttribArrayBoundBuffers[i]); glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_SIZE, &m_vertexAttribArraySizes[i]); glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_TYPE, &m_vertexAttribArrayTypes[i]); - glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, &m_vertexAttribArrayNormalized[i]); + glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, + &m_vertexAttribArrayNormalized[i]); glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_STRIDE, &m_vertexAttribArrayStrides[i]); } } @@ -173,8 +177,10 @@ void GLStateStore::printCurrentState(bool in) #if !defined(QT_OPENGL_ES_2) glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &drawFramebuffer); glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, &readFramebuffer); -#endif glGetIntegerv(GL_RENDERBUFFER_BINDING, &renderbuffer); +#else + glGetIntegerv(GL_RENDERBUFFER, &renderbuffer); +#endif glGetFloatv(GL_COLOR_CLEAR_VALUE, clearColor); glGetFloatv(GL_DEPTH_CLEAR_VALUE, &clearDepth); glGetIntegerv(GL_DEPTH_FUNC, &depthFunc); @@ -198,11 +204,14 @@ void GLStateStore::printCurrentState(bool in) glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &arrayBufferBinding); for (int i = 0; i < m_maxVertexAttribs;i++) { - glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &vertexAttribArrayEnabledStates[i]); - glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, &vertexAttribArrayBoundBuffers[i]); + glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_ENABLED, + &vertexAttribArrayEnabledStates[i]); + glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, + &vertexAttribArrayBoundBuffers[i]); glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_SIZE, &vertexAttribArraySizes[i]); glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_TYPE, &vertexAttribArrayTypes[i]); - glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, &vertexAttribArrayNormalized[i]); + glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, + &vertexAttribArrayNormalized[i]); glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_STRIDE, &vertexAttribArrayStrides[i]); } @@ -265,8 +274,10 @@ void GLStateStore::restoreGLState() #if !defined(QT_OPENGL_ES_2) glBindFramebuffer(GL_READ_FRAMEBUFFER, m_readFramebuffer); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_drawFramebuffer); -#endif glBindRenderbuffer(GL_RENDERBUFFER_BINDING, m_renderbuffer); +#else + glBindRenderbuffer(GL_RENDERBUFFER, m_renderbuffer); +#endif if (m_isScissorTestEnabled) glEnable(GL_SCISSOR_TEST); diff --git a/src/datavisualizationqml2/glstatestore_p.h b/src/datavisualizationqml2/glstatestore_p.h index 14c46c43..4add606b 100644 --- a/src/datavisualizationqml2/glstatestore_p.h +++ b/src/datavisualizationqml2/glstatestore_p.h @@ -29,9 +29,8 @@ #ifndef GLSTATESTORE_P_H #define GLSTATESTORE_P_H -#include <QObject> #include <QtGui/QOpenGLFunctions> -#include <QtGui/QOpenGLContext> +#include <QtCore/QScopedArrayPointer> #include "enumtostringmap_p.h" class GLStateStore : public QObject, protected QOpenGLFunctions @@ -66,13 +65,13 @@ public: GLboolean m_isDepthWriteEnabled; GLint m_currentProgram; GLint m_maxVertexAttribs; - GLint *m_vertexAttribArrayEnabledStates; - GLint *m_vertexAttribArrayBoundBuffers; - GLint *m_vertexAttribArraySizes; - GLint *m_vertexAttribArrayTypes; - GLint *m_vertexAttribArrayNormalized; - GLint *m_vertexAttribArrayStrides; - GLint *m_vertexAttribArrayOffsets; + QScopedArrayPointer<GLint> m_vertexAttribArrayEnabledStates; + QScopedArrayPointer<GLint> m_vertexAttribArrayBoundBuffers; + QScopedArrayPointer<GLint> m_vertexAttribArraySizes; + QScopedArrayPointer<GLint> m_vertexAttribArrayTypes; + QScopedArrayPointer<GLint> m_vertexAttribArrayNormalized; + QScopedArrayPointer<GLint> m_vertexAttribArrayStrides; + QScopedArrayPointer<GLint> m_vertexAttribArrayOffsets; GLint m_activeTexture; GLint m_texBinding2D; diff --git a/src/datavisualizationqml2/plugins.qmltypes b/src/datavisualizationqml2/plugins.qmltypes index 48a30665..99fa53de 100644 --- a/src/datavisualizationqml2/plugins.qmltypes +++ b/src/datavisualizationqml2/plugins.qmltypes @@ -4,16 +4,19 @@ import QtQuick.tooling 1.1 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtDataVisualization 1.0' +// 'qmlplugindump -nonrelocatable QtDataVisualization 1.1' Module { Component { name: "QtDataVisualization::AbstractDeclarative" defaultProperty: "data" prototype: "QQuickItem" - exports: ["QtDataVisualization/AbstractGraph3D 1.0"] + exports: [ + "QtDataVisualization/AbstractGraph3D 1.0", + "QtDataVisualization/AbstractGraph3D 1.1" + ] isCreatable: false - exportMetaObjectRevisions: [0] + exportMetaObjectRevisions: [0, 1] Enum { name: "SelectionFlag" values: { @@ -57,6 +60,17 @@ Module { } } Enum { + name: "ElementType" + values: { + "ElementNone": 0, + "ElementSeries": 1, + "ElementAxisXLabel": 2, + "ElementAxisYLabel": 3, + "ElementAxisZLabel": 4, + "ElementCustomItem": 5 + } + } + Enum { name: "RenderingMode" values: { "RenderDirectToBackground": 0, @@ -66,18 +80,35 @@ Module { } Property { name: "selectionMode"; type: "SelectionFlags" } Property { name: "shadowQuality"; type: "ShadowQuality" } + Property { name: "shadowsSupported"; type: "bool"; isReadonly: true } Property { name: "msaaSamples"; type: "int" } Property { name: "scene"; type: "Declarative3DScene"; isReadonly: true; isPointer: true } Property { name: "inputHandler"; type: "QAbstract3DInputHandler"; isPointer: true } Property { name: "theme"; type: "Q3DTheme"; isPointer: true } Property { name: "renderingMode"; type: "RenderingMode" } + Property { name: "measureFps"; revision: 1; type: "bool" } + Property { name: "currentFps"; revision: 1; type: "double"; isReadonly: true } + Property { + name: "customItemList" + revision: 1 + type: "QCustom3DItem" + isList: true + isReadonly: true + } + Property { name: "orthoProjection"; revision: 1; type: "bool" } + Property { name: "selectedElement"; revision: 1; type: "ElementType"; isReadonly: true } + Property { name: "aspectRatio"; revision: 1; type: "double" } Signal { name: "selectionModeChanged" - Parameter { name: "mode"; type: "SelectionFlags" } + Parameter { name: "mode"; type: "AbstractDeclarative::SelectionFlags" } } Signal { name: "shadowQualityChanged" - Parameter { name: "quality"; type: "ShadowQuality" } + Parameter { name: "quality"; type: "AbstractDeclarative::ShadowQuality" } + } + Signal { + name: "shadowsSupportedChanged" + Parameter { name: "supported"; type: "bool" } } Signal { name: "msaaSamplesChanged" @@ -97,7 +128,32 @@ Module { } Signal { name: "renderingModeChanged" - Parameter { name: "mode"; type: "RenderingMode" } + Parameter { name: "mode"; type: "AbstractDeclarative::RenderingMode" } + } + Signal { + name: "measureFpsChanged" + revision: 1 + Parameter { name: "enabled"; type: "bool" } + } + Signal { + name: "currentFpsChanged" + revision: 1 + Parameter { name: "fps"; type: "double" } + } + Signal { + name: "selectedElementChanged" + revision: 1 + Parameter { name: "type"; type: "QAbstract3DGraph::ElementType" } + } + Signal { + name: "orthoProjectionChanged" + revision: 1 + Parameter { name: "enabled"; type: "bool" } + } + Signal { + name: "aspectRatioChanged" + revision: 1 + Parameter { name: "ratio"; type: "double" } } Method { name: "handleAxisXChanged" @@ -116,6 +172,32 @@ Module { Parameter { name: "obj"; type: "QObject"; isPointer: true } } Method { name: "clearSelection" } + Method { + name: "addCustomItem" + revision: 1 + type: "int" + Parameter { name: "item"; type: "QCustom3DItem"; isPointer: true } + } + Method { name: "removeCustomItems"; revision: 1 } + Method { + name: "removeCustomItem" + revision: 1 + Parameter { name: "item"; type: "QCustom3DItem"; isPointer: true } + } + Method { + name: "removeCustomItemAt" + revision: 1 + Parameter { name: "position"; type: "QVector3D" } + } + Method { + name: "releaseCustomItem" + revision: 1 + Parameter { name: "item"; type: "QCustom3DItem"; isPointer: true } + } + Method { name: "selectedLabelIndex"; revision: 1; type: "int" } + Method { name: "selectedAxis"; revision: 1; type: "QAbstract3DAxis*" } + Method { name: "selectedCustomItemIndex"; revision: 1; type: "int" } + Method { name: "selectedCustomItem"; revision: 1; type: "QCustom3DItem*" } } Component { name: "QtDataVisualization::ColorGradient" @@ -437,11 +519,11 @@ Module { } Component { name: "QtDataVisualization::DeclarativeTheme3D" - defaultProperty: "seriesChildren" + defaultProperty: "themeChildren" prototype: "QtDataVisualization::Q3DTheme" exports: ["QtDataVisualization/Theme3D 1.0"] exportMetaObjectRevisions: [0] - Property { name: "seriesChildren"; type: "QObject"; isList: true; isReadonly: true } + Property { name: "themeChildren"; type: "QObject"; isList: true; isReadonly: true } Property { name: "baseColors"; type: "DeclarativeColor"; isList: true; isReadonly: true } Property { name: "baseGradients"; type: "ColorGradient"; isList: true; isReadonly: true } Property { name: "singleHighlightGradient"; type: "ColorGradient"; isPointer: true } @@ -492,7 +574,7 @@ Module { } Property { name: "xRotation"; type: "double" } Property { name: "yRotation"; type: "double" } - Property { name: "zoomLevel"; type: "int" } + Property { name: "zoomLevel"; type: "double" } Property { name: "cameraPreset"; type: "CameraPreset" } Property { name: "wrapXRotation"; type: "bool" } Property { name: "wrapYRotation"; type: "bool" } @@ -506,11 +588,11 @@ Module { } Signal { name: "zoomLevelChanged" - Parameter { name: "zoomLevel"; type: "int" } + Parameter { name: "zoomLevel"; type: "double" } } Signal { name: "cameraPresetChanged" - Parameter { name: "preset"; type: "CameraPreset" } + Parameter { name: "preset"; type: "Q3DCamera::CameraPreset" } } Signal { name: "wrapXRotationChanged" @@ -642,7 +724,7 @@ Module { Property { name: "colorStyle"; type: "ColorStyle" } Signal { name: "typeChanged" - Parameter { name: "themeType"; type: "Theme" } + Parameter { name: "themeType"; type: "Q3DTheme::Theme" } } Signal { name: "baseColorsChanged" @@ -726,15 +808,18 @@ Module { } Signal { name: "colorStyleChanged" - Parameter { name: "style"; type: "ColorStyle" } + Parameter { name: "style"; type: "Q3DTheme::ColorStyle" } } } Component { name: "QtDataVisualization::QAbstract3DAxis" prototype: "QObject" - exports: ["QtDataVisualization/AbstractAxis3D 1.0"] + exports: [ + "QtDataVisualization/AbstractAxis3D 1.0", + "QtDataVisualization/AbstractAxis3D 1.1" + ] isCreatable: false - exportMetaObjectRevisions: [0] + exportMetaObjectRevisions: [0, 1] Enum { name: "AxisOrientation" values: { @@ -759,13 +844,14 @@ Module { Property { name: "min"; type: "double" } Property { name: "max"; type: "double" } Property { name: "autoAdjustRange"; type: "bool" } + Property { name: "labelAutoRotation"; revision: 1; type: "double" } Signal { name: "titleChanged" Parameter { name: "newTitle"; type: "string" } } Signal { name: "orientationChanged" - Parameter { name: "orientation"; type: "AxisOrientation" } + Parameter { name: "orientation"; type: "QAbstract3DAxis::AxisOrientation" } } Signal { name: "minChanged" @@ -784,6 +870,11 @@ Module { name: "autoAdjustRangeChanged" Parameter { name: "autoAdjust"; type: "bool" } } + Signal { + name: "labelAutoRotationChanged" + revision: 1 + Parameter { name: "angle"; type: "double" } + } } Component { name: "QtDataVisualization::QAbstract3DInputHandler" @@ -808,7 +899,7 @@ Module { } Signal { name: "inputViewChanged" - Parameter { name: "view"; type: "InputView" } + Parameter { name: "view"; type: "QAbstract3DInputHandler::InputView" } } Signal { name: "sceneChanged" @@ -818,9 +909,12 @@ Module { Component { name: "QtDataVisualization::QAbstract3DSeries" prototype: "QObject" - exports: ["QtDataVisualization/Abstract3DSeries 1.0"] + exports: [ + "QtDataVisualization/Abstract3DSeries 1.0", + "QtDataVisualization/Abstract3DSeries 1.1" + ] isCreatable: false - exportMetaObjectRevisions: [0] + exportMetaObjectRevisions: [0, 1] Enum { name: "SeriesType" values: { @@ -862,6 +956,8 @@ Module { Property { name: "multiHighlightColor"; type: "QColor" } Property { name: "multiHighlightGradient"; type: "QLinearGradient" } Property { name: "name"; type: "string" } + Property { name: "itemLabel"; revision: 1; type: "string"; isReadonly: true } + Property { name: "itemLabelVisible"; revision: 1; type: "bool" } Signal { name: "itemLabelFormatChanged" Parameter { name: "format"; type: "string" } @@ -872,7 +968,7 @@ Module { } Signal { name: "meshChanged" - Parameter { name: "mesh"; type: "Mesh" } + Parameter { name: "mesh"; type: "QAbstract3DSeries::Mesh" } } Signal { name: "meshSmoothChanged" @@ -918,6 +1014,16 @@ Module { name: "nameChanged" Parameter { name: "name"; type: "string" } } + Signal { + name: "itemLabelChanged" + revision: 1 + Parameter { name: "label"; type: "string" } + } + Signal { + name: "itemLabelVisibilityChanged" + revision: 1 + Parameter { name: "visible"; type: "bool" } + } Method { name: "setMeshAxisAndAngle" Parameter { name: "axis"; type: "QVector3D" } @@ -1016,6 +1122,57 @@ Module { Property { name: "labels"; type: "QStringList" } } Component { + name: "QtDataVisualization::QCustom3DItem" + prototype: "QObject" + exports: ["QtDataVisualization/Custom3DItem 1.1"] + exportMetaObjectRevisions: [0] + Property { name: "meshFile"; type: "string" } + Property { name: "textureFile"; type: "string" } + Property { name: "position"; type: "QVector3D" } + Property { name: "positionAbsolute"; type: "bool" } + Property { name: "scaling"; type: "QVector3D" } + Property { name: "rotation"; type: "QQuaternion" } + Property { name: "visible"; type: "bool" } + Property { name: "shadowCasting"; type: "bool" } + Signal { + name: "meshFileChanged" + Parameter { name: "meshFile"; type: "string" } + } + Signal { + name: "textureFileChanged" + Parameter { name: "textureFile"; type: "string" } + } + Signal { + name: "positionChanged" + Parameter { name: "position"; type: "QVector3D" } + } + Signal { + name: "positionAbsoluteChanged" + Parameter { name: "positionAbsolute"; type: "bool" } + } + Signal { + name: "scalingChanged" + Parameter { name: "scaling"; type: "QVector3D" } + } + Signal { + name: "rotationChanged" + Parameter { name: "rotation"; type: "QQuaternion" } + } + Signal { + name: "visibleChanged" + Parameter { name: "visible"; type: "bool" } + } + Signal { + name: "shadowCastingChanged" + Parameter { name: "shadowCasting"; type: "bool" } + } + Method { + name: "setRotationAxisAndAngle" + Parameter { name: "axis"; type: "QVector3D" } + Parameter { name: "angle"; type: "double" } + } + } + Component { name: "QtDataVisualization::QHeightMapSurfaceDataProxy" prototype: "QtDataVisualization::QSurfaceDataProxy" exports: ["QtDataVisualization/HeightMapSurfaceDataProxy 1.0"] @@ -1054,8 +1211,20 @@ Module { Component { name: "QtDataVisualization::QItemModelBarDataProxy" prototype: "QtDataVisualization::QBarDataProxy" - exports: ["QtDataVisualization/ItemModelBarDataProxy 1.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtDataVisualization/ItemModelBarDataProxy 1.0", + "QtDataVisualization/ItemModelBarDataProxy 1.1" + ] + exportMetaObjectRevisions: [0, 1] + Enum { + name: "MultiMatchBehavior" + values: { + "MMBFirst": 0, + "MMBLast": 1, + "MMBAverage": 2, + "MMBCumulative": 3 + } + } Property { name: "itemModel"; type: "const QAbstractItemModel"; isPointer: true } Property { name: "rowRole"; type: "string" } Property { name: "columnRole"; type: "string" } @@ -1066,6 +1235,15 @@ Module { Property { name: "useModelCategories"; type: "bool" } Property { name: "autoRowCategories"; type: "bool" } Property { name: "autoColumnCategories"; type: "bool" } + Property { name: "rowRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "columnRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "valueRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "rotationRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "rowRoleReplace"; revision: 1; type: "string" } + Property { name: "columnRoleReplace"; revision: 1; type: "string" } + Property { name: "valueRoleReplace"; revision: 1; type: "string" } + Property { name: "rotationRoleReplace"; revision: 1; type: "string" } + Property { name: "multiMatchBehavior"; revision: 1; type: "MultiMatchBehavior" } Signal { name: "itemModelChanged" Parameter { name: "itemModel"; type: "const QAbstractItemModel"; isPointer: true } @@ -1098,6 +1276,51 @@ Module { name: "autoColumnCategoriesChanged" Parameter { name: "enable"; type: "bool" } } + Signal { + name: "rowRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "columnRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "valueRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "rotationRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "rowRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "columnRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "valueRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "rotationRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "multiMatchBehaviorChanged" + revision: 1 + Parameter { name: "behavior"; type: "MultiMatchBehavior" } + } Method { name: "rowCategoryIndex" type: "int" @@ -1112,13 +1335,24 @@ Module { Component { name: "QtDataVisualization::QItemModelScatterDataProxy" prototype: "QtDataVisualization::QScatterDataProxy" - exports: ["QtDataVisualization/ItemModelScatterDataProxy 1.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtDataVisualization/ItemModelScatterDataProxy 1.0", + "QtDataVisualization/ItemModelScatterDataProxy 1.1" + ] + exportMetaObjectRevisions: [0, 1] Property { name: "itemModel"; type: "const QAbstractItemModel"; isPointer: true } Property { name: "xPosRole"; type: "string" } Property { name: "yPosRole"; type: "string" } Property { name: "zPosRole"; type: "string" } Property { name: "rotationRole"; type: "string" } + Property { name: "xPosRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "yPosRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "zPosRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "rotationRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "xPosRoleReplace"; revision: 1; type: "string" } + Property { name: "yPosRoleReplace"; revision: 1; type: "string" } + Property { name: "zPosRoleReplace"; revision: 1; type: "string" } + Property { name: "rotationRoleReplace"; revision: 1; type: "string" } Signal { name: "itemModelChanged" Parameter { name: "itemModel"; type: "const QAbstractItemModel"; isPointer: true } @@ -1139,12 +1373,64 @@ Module { name: "rotationRoleChanged" Parameter { name: "role"; type: "string" } } + Signal { + name: "xPosRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "yPosRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "zPosRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "rotationRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "rotationRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "xPosRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "yPosRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "zPosRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } } Component { name: "QtDataVisualization::QItemModelSurfaceDataProxy" prototype: "QtDataVisualization::QSurfaceDataProxy" - exports: ["QtDataVisualization/ItemModelSurfaceDataProxy 1.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtDataVisualization/ItemModelSurfaceDataProxy 1.0", + "QtDataVisualization/ItemModelSurfaceDataProxy 1.1" + ] + exportMetaObjectRevisions: [0, 1] + Enum { + name: "MultiMatchBehavior" + values: { + "MMBFirst": 0, + "MMBLast": 1, + "MMBAverage": 2, + "MMBCumulativeY": 3 + } + } Property { name: "itemModel"; type: "const QAbstractItemModel"; isPointer: true } Property { name: "rowRole"; type: "string" } Property { name: "columnRole"; type: "string" } @@ -1156,6 +1442,17 @@ Module { Property { name: "useModelCategories"; type: "bool" } Property { name: "autoRowCategories"; type: "bool" } Property { name: "autoColumnCategories"; type: "bool" } + Property { name: "rowRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "columnRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "xPosRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "yPosRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "zPosRolePattern"; revision: 1; type: "QRegExp" } + Property { name: "rowRoleReplace"; revision: 1; type: "string" } + Property { name: "columnRoleReplace"; revision: 1; type: "string" } + Property { name: "xPosRoleReplace"; revision: 1; type: "string" } + Property { name: "yPosRoleReplace"; revision: 1; type: "string" } + Property { name: "zPosRoleReplace"; revision: 1; type: "string" } + Property { name: "multiMatchBehavior"; revision: 1; type: "MultiMatchBehavior" } Signal { name: "itemModelChanged" Parameter { name: "itemModel"; type: "const QAbstractItemModel"; isPointer: true } @@ -1192,6 +1489,61 @@ Module { name: "autoColumnCategoriesChanged" Parameter { name: "enable"; type: "bool" } } + Signal { + name: "rowRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "columnRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "xPosRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "yPosRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "zPosRolePatternChanged" + revision: 1 + Parameter { name: "pattern"; type: "QRegExp" } + } + Signal { + name: "rowRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "columnRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "xPosRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "yPosRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "zPosRoleReplaceChanged" + revision: 1 + Parameter { name: "replace"; type: "string" } + } + Signal { + name: "multiMatchBehaviorChanged" + revision: 1 + Parameter { name: "behavior"; type: "MultiMatchBehavior" } + } Method { name: "rowCategoryIndex" type: "int" @@ -1204,6 +1556,27 @@ Module { } } Component { + name: "QtDataVisualization::QLogValue3DAxisFormatter" + prototype: "QtDataVisualization::QValue3DAxisFormatter" + exports: ["QtDataVisualization/LogValueAxis3DFormatter 1.1"] + exportMetaObjectRevisions: [0] + Property { name: "base"; type: "double" } + Property { name: "autoSubGrid"; type: "bool" } + Property { name: "showEdgeLabels"; type: "bool" } + Signal { + name: "baseChanged" + Parameter { name: "base"; type: "double" } + } + Signal { + name: "autoSubGridChanged" + Parameter { name: "enabled"; type: "bool" } + } + Signal { + name: "showEdgeLabelsChanged" + Parameter { name: "enabled"; type: "bool" } + } + } + Component { name: "QtDataVisualization::QScatter3DSeries" prototype: "QtDataVisualization::QAbstract3DSeries" exports: ["QtDataVisualization/QScatter3DSeries 1.0"] @@ -1366,11 +1739,16 @@ Module { Component { name: "QtDataVisualization::QValue3DAxis" prototype: "QtDataVisualization::QAbstract3DAxis" - exports: ["QtDataVisualization/ValueAxis3D 1.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtDataVisualization/ValueAxis3D 1.0", + "QtDataVisualization/ValueAxis3D 1.1" + ] + exportMetaObjectRevisions: [0, 1] Property { name: "segmentCount"; type: "int" } Property { name: "subSegmentCount"; type: "int" } Property { name: "labelFormat"; type: "string" } + Property { name: "formatter"; revision: 1; type: "QValue3DAxisFormatter"; isPointer: true } + Property { name: "reversed"; revision: 1; type: "bool" } Signal { name: "segmentCountChanged" Parameter { name: "count"; type: "int" } @@ -1383,5 +1761,21 @@ Module { name: "labelFormatChanged" Parameter { name: "format"; type: "string" } } + Signal { + name: "formatterChanged" + revision: 1 + Parameter { name: "formatter"; type: "QValue3DAxisFormatter"; isPointer: true } + } + Signal { + name: "reversedChanged" + revision: 1 + Parameter { name: "enable"; type: "bool" } + } + } + Component { + name: "QtDataVisualization::QValue3DAxisFormatter" + prototype: "QObject" + exports: ["QtDataVisualization/ValueAxis3DFormatter 1.1"] + exportMetaObjectRevisions: [0] } } |