diff options
Diffstat (limited to 'src/datavisualizationqml2')
8 files changed, 69 insertions, 26 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index 70ba8df8..fa69cac9 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -211,19 +211,19 @@ bool AbstractDeclarative::shadowsSupported() const return m_controller->shadowsSupported(); } -int AbstractDeclarative::addCustomItem(const QString &meshFile, const QVector3D &position, - const QVector3D &scaling, const QQuaternion &rotation, - const QString &textureFile) +int AbstractDeclarative::addCustomItem(QCustom3DItem *item) { - QImage textureImage; - if (!textureFile.isNull()) - textureImage = QImage(textureFile); - return m_controller->addCustomItem(meshFile, position, scaling, rotation, textureImage); + return m_controller->addCustomItem(item); } -void AbstractDeclarative::removeCustomItemAt(int index) +void AbstractDeclarative::removeCustomItems() { - m_controller->deleteCustomItem(index); + m_controller->deleteCustomItems(); +} + +void AbstractDeclarative::removeCustomItem(QCustom3DItem *item) +{ + m_controller->deleteCustomItem(item); } void AbstractDeclarative::removeCustomItemAt(const QVector3D &position) @@ -231,6 +231,39 @@ void AbstractDeclarative::removeCustomItemAt(const QVector3D &position) m_controller->deleteCustomItem(position); } +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); diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h index d5ad8836..8121e35d 100644 --- a/src/datavisualizationqml2/abstractdeclarative_p.h +++ b/src/datavisualizationqml2/abstractdeclarative_p.h @@ -68,6 +68,7 @@ class AbstractDeclarative : public QQuickItem 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) public: enum SelectionFlag { @@ -128,14 +129,18 @@ public: Q_INVOKABLE virtual void clearSelection(); - Q_REVISION(1) Q_INVOKABLE virtual int addCustomItem(const QString &meshFile, - const QVector3D &position, - const QVector3D &scaling, - const QQuaternion &rotation, - const QString &textureFile = 0); - Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItemAt(int index); + 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); + 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); diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp index d7a82d6b..d419d904 100644 --- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp +++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp @@ -43,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", @@ -89,7 +89,7 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri) // New revisions qmlRegisterType<QValue3DAxis, 1>(uri, 1, 1, "ValueAxis3D"); qmlRegisterUncreatableType<QAbstract3DSeries, 1>(uri, 1, 1, "Abstract3DSeries", - QLatin1String("Trying to create uncreatable: Abstract3DSeries.")); + QLatin1String("Trying to create uncreatable: Abstract3DSeries.")); qmlRegisterUncreatableType<AbstractDeclarative, 1>(uri, 1, 1, "AbstractGraph3D", QLatin1String("Trying to create uncreatable: AbstractGraph3D.")); qmlRegisterType<QItemModelBarDataProxy, 1>(uri, 1, 1, "ItemModelBarDataProxy"); @@ -97,6 +97,7 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri) // New types qmlRegisterType<QValue3DAxisFormatter>(uri, 1, 1, "ValueAxis3DFormatter"); qmlRegisterType<QLogValue3DAxisFormatter>(uri, 1, 1, "LogValueAxis3DFormatter"); + qmlRegisterType<QCustom3DItem>(uri, 1, 1, "Custom3DItem"); } QT_END_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h index 14fb530e..fcc0bcde 100644 --- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h +++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h @@ -45,6 +45,7 @@ #include "qabstract3dinputhandler.h" #include "declarativecolor_p.h" #include "declarativescene_p.h" +#include "qcustom3ditem.h" #include <QtQml/QQmlExtensionPlugin> @@ -96,6 +97,8 @@ QML_DECLARE_TYPE(DeclarativeTheme3D) QML_DECLARE_TYPE(QAbstract3DInputHandler) +QML_DECLARE_TYPE(QCustom3DItem) + QT_BEGIN_NAMESPACE_DATAVISUALIZATION class QtDataVisualizationQml2Plugin : public QQmlExtensionPlugin diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h index 97f5882a..ae44e2ab 100644 --- a/src/datavisualizationqml2/declarativebars_p.h +++ b/src/datavisualizationqml2/declarativebars_p.h @@ -88,7 +88,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/declarativecolor.cpp b/src/datavisualizationqml2/declarativecolor.cpp index ffd4227f..f8ef06d2 100644 --- a/src/datavisualizationqml2/declarativecolor.cpp +++ b/src/datavisualizationqml2/declarativecolor.cpp @@ -20,6 +20,8 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION +// TODO: Docs missing? + DeclarativeColor::DeclarativeColor(QObject *parent) : QObject(parent) { diff --git a/src/datavisualizationqml2/declarativetheme.cpp b/src/datavisualizationqml2/declarativetheme.cpp index f051341e..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) 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, |