diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-04-23 09:58:15 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-04-23 11:43:41 +0300 |
commit | 555acef736a72cdc92113a268826a6bba77fbe40 (patch) | |
tree | 83200c64836afbfcbbbd73bbeba2dbf8765dae98 /src/datavisualizationqml2 | |
parent | a11dcce773b9ad2a913a32efe0c51b1221694659 (diff) |
Added QML support for custom items
Task-number: QTRD-3048
Change-Id: I90e6fbee38bae858c2e0910178684e28eacc6472
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r-- | src/datavisualizationqml2/abstractdeclarative.cpp | 32 | ||||
-rw-r--r-- | src/datavisualizationqml2/abstractdeclarative_p.h | 8 |
2 files changed, 33 insertions, 7 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index 881a7860..2a02ad24 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -37,18 +37,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) @@ -211,6 +211,26 @@ 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) +{ + QImage textureImage; + if (!textureFile.isNull()) + textureImage = QImage(textureFile); + return m_controller->addCustomItem(meshFile, position, scaling, rotation, textureImage); +} + +void AbstractDeclarative::removeCustomItemAt(int index) +{ + m_controller->deleteCustomItem(index); +} + +void AbstractDeclarative::removeCustomItemAt(const QVector3D &position) +{ + m_controller->deleteCustomItem(position); +} + void AbstractDeclarative::setSharedController(Abstract3DController *controller) { Q_ASSERT(controller); diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h index 8ba86b11..4f73380f 100644 --- a/src/datavisualizationqml2/abstractdeclarative_p.h +++ b/src/datavisualizationqml2/abstractdeclarative_p.h @@ -128,7 +128,13 @@ public: Q_INVOKABLE virtual void clearSelection(); - virtual void geometryChanged(const QRectF & newGeometry, const QRectF & oldGeometry); + Q_INVOKABLE virtual int addCustomItem(const QString &meshFile, const QVector3D &position, + const QVector3D &scaling, const QQuaternion &rotation, + const QString &textureFile = 0); + Q_INVOKABLE virtual void removeCustomItemAt(int index); + Q_INVOKABLE virtual void removeCustomItemAt(const QVector3D &position); + + 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 |