diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-14 13:40:35 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-14 13:44:46 +0300 |
commit | 8015a58ea819b41e0a896ea9e7d57d7f3a9f1c5f (patch) | |
tree | 486a6017c2bd0fdaeb408aed46b76587ddd034dd /src/datavisualization/data | |
parent | 824cf363f6ab999d2fc38ebdab1f7faae5559ad0 (diff) |
Added visible flag and possibility to release ownership of custom item
Task-number: QTRD-3080
Change-Id: I198930c48fe9bce6a158406aff5fbf31272b9afe
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r-- | src/datavisualization/data/customrenderitem.cpp | 3 | ||||
-rw-r--r-- | src/datavisualization/data/customrenderitem_p.h | 3 | ||||
-rw-r--r-- | src/datavisualization/data/qcustom3ditem.cpp | 26 | ||||
-rw-r--r-- | src/datavisualization/data/qcustom3ditem.h | 5 | ||||
-rw-r--r-- | src/datavisualization/data/qcustom3ditem_p.h | 1 |
5 files changed, 35 insertions, 3 deletions
diff --git a/src/datavisualization/data/customrenderitem.cpp b/src/datavisualization/data/customrenderitem.cpp index ad1fba71..53db9bd1 100644 --- a/src/datavisualization/data/customrenderitem.cpp +++ b/src/datavisualization/data/customrenderitem.cpp @@ -23,7 +23,8 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION CustomRenderItem::CustomRenderItem() : AbstractRenderItem(), m_texture(0), - m_object(0) + m_object(0), + m_visible(true) { } diff --git a/src/datavisualization/data/customrenderitem_p.h b/src/datavisualization/data/customrenderitem_p.h index 0632f53e..70c162b7 100644 --- a/src/datavisualization/data/customrenderitem_p.h +++ b/src/datavisualization/data/customrenderitem_p.h @@ -49,12 +49,15 @@ public: inline QVector3D scaling() { return m_scaling; } inline void setBlendNeeded(bool blend) { m_needBlend = blend; } inline bool isBlendNeeded() { return m_needBlend; } + inline void setVisible(bool visible) { m_visible = visible; } + inline bool isVisible() { return m_visible; } private: GLuint m_texture; QVector3D m_scaling; ObjectHelper *m_object; bool m_needBlend; + bool m_visible; }; typedef QVector<CustomRenderItem *> CustomRenderItemArray; diff --git a/src/datavisualization/data/qcustom3ditem.cpp b/src/datavisualization/data/qcustom3ditem.cpp index 70795fdf..285f5a39 100644 --- a/src/datavisualization/data/qcustom3ditem.cpp +++ b/src/datavisualization/data/qcustom3ditem.cpp @@ -187,6 +187,23 @@ QQuaternion QCustom3DItem::rotation() return d_ptr->m_rotation; } +/*! \property QCustom3DItem::visible + * + * Sets the item \a visible. Defaults to \c{true}. + */ +void QCustom3DItem::setVisible(bool visible) +{ + if (d_ptr->m_visible != visible) { + d_ptr->m_visible = visible; + emit visibleChanged(visible); + } +} + +bool QCustom3DItem::isVisible() +{ + return d_ptr->m_visible; +} + /*! * A convenience function to construct rotation quaternion from \a axis and \a angle. * @@ -242,7 +259,11 @@ QString QCustom3DItem::textureFile() QCustom3DItemPrivate::QCustom3DItemPrivate(QCustom3DItem *q, QObject *parent) : QObject(parent), - q_ptr(q) + q_ptr(q), + m_position(QVector3D(0.0f, 0.0f, 0.0f)), + m_scaling(QVector3D(0.1f, 0.1f, 0.1f)), + m_rotation(QQuaternion(0.0f, 0.0f, 0.0f, 0.0f)), + m_visible(true) { } @@ -254,7 +275,8 @@ QCustom3DItemPrivate::QCustom3DItemPrivate(QCustom3DItem *q, const QString &mesh m_meshFile(meshFile), m_position(position), m_scaling(scaling), - m_rotation(rotation) + m_rotation(rotation), + m_visible(true) { } diff --git a/src/datavisualization/data/qcustom3ditem.h b/src/datavisualization/data/qcustom3ditem.h index 394c51d7..c9d0cd63 100644 --- a/src/datavisualization/data/qcustom3ditem.h +++ b/src/datavisualization/data/qcustom3ditem.h @@ -36,6 +36,7 @@ class QT_DATAVISUALIZATION_EXPORT QCustom3DItem : public QObject Q_PROPERTY(QVector3D position READ position WRITE setPosition NOTIFY positionChanged) Q_PROPERTY(QVector3D scaling READ scaling WRITE setScaling NOTIFY scalingChanged) Q_PROPERTY(QQuaternion rotation READ rotation WRITE setRotation NOTIFY rotationChanged) + Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) public: explicit QCustom3DItem(QObject *parent = 0); @@ -59,6 +60,9 @@ public: void setRotation(const QQuaternion &rotation); QQuaternion rotation(); + void setVisible(bool visible); + bool isVisible(); + Q_INVOKABLE void setRotationAxisAndAngle(const QVector3D &axis, float angle); void setTextureImage(const QImage &textureImage); @@ -69,6 +73,7 @@ signals: void positionChanged(const QVector3D &position); void scalingChanged(const QVector3D &scaling); void rotationChanged(const QQuaternion &rotation); + void visibleChanged(bool visible); protected: QScopedPointer<QCustom3DItemPrivate> d_ptr; diff --git a/src/datavisualization/data/qcustom3ditem_p.h b/src/datavisualization/data/qcustom3ditem_p.h index 77062768..f85ec5bf 100644 --- a/src/datavisualization/data/qcustom3ditem_p.h +++ b/src/datavisualization/data/qcustom3ditem_p.h @@ -53,6 +53,7 @@ public: QVector3D m_position; QVector3D m_scaling; QQuaternion m_rotation; + bool m_visible; private: friend class QCustom3DItem; |