diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-12 10:06:27 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-12 10:07:15 +0300 |
commit | 6880277f23b47117f7788f08f855ed99b5120f9f (patch) | |
tree | de8b9e64ffce03a3ce77c8ffac396f7174e91956 /src/datavisualizationqml2/abstractdeclarative.cpp | |
parent | 590d11726e0708e9f8fad0ec386cc5859dbe5cc8 (diff) |
CustomDataItem made into a public class
Task-number: QTRD-3055
Change-Id: I1e449df7c1bcb48fc639dbae579e2e1499c9ef2b
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualizationqml2/abstractdeclarative.cpp')
-rw-r--r-- | src/datavisualizationqml2/abstractdeclarative.cpp | 51 |
1 files changed, 42 insertions, 9 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); |