summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-12-04 06:47:31 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-12-04 08:12:42 +0200
commitf272b13f025897e157480b9bc3e5b6f1163c6125 (patch)
tree7d5637ce1d88b0ba621fbeaeef93f21939c0f533 /src/datavisualization/data
parent344870fb79e647b87aa79b9433eef8237c901e10 (diff)
Item size per series for scatter
Task-number: QTRD-2568 Change-Id: Ic137185304a5cc5ad16699cbb127035db86196cb Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r--src/datavisualization/data/qscatter3dseries.cpp40
-rw-r--r--src/datavisualization/data/qscatter3dseries.h6
-rw-r--r--src/datavisualization/data/qscatter3dseries_p.h2
-rw-r--r--src/datavisualization/data/qscatterdataitem.cpp12
-rw-r--r--src/datavisualization/data/qscatterdataitem.h5
5 files changed, 47 insertions, 18 deletions
diff --git a/src/datavisualization/data/qscatter3dseries.cpp b/src/datavisualization/data/qscatter3dseries.cpp
index 25e32ffe..4c2f368a 100644
--- a/src/datavisualization/data/qscatter3dseries.cpp
+++ b/src/datavisualization/data/qscatter3dseries.cpp
@@ -95,6 +95,14 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
*/
/*!
+ * \qmlproperty float Scatter3DSeries::itemSize
+ *
+ * Set item size for the series. Size must be between 0.0 and 1.0. Setting the size to 0.0
+ * causes item size to be automatically scaled based on combined item count in all the series for
+ * the graph. Preset default is \c 0.0.
+ */
+
+/*!
* \qmlmethod int Scatter3DSeries::invalidSelectionIndex()
* \return an invalid index for selection. Set this index to selectedItem property if you
* want to clear the selection.
@@ -176,6 +184,28 @@ int QScatter3DSeries::selectedItem() const
}
/*!
+ * \property QScatter3DSeries::selectedItem
+ *
+ * Set item \a size for the series. Size must be between 0.0f and 1.0f. Setting the size to 0.0f
+ * causes item size to be automatically scaled based on combined item count in all the series for
+ * the graph. Preset default is \c 0.0f.
+ */
+void QScatter3DSeries::setItemSize(float size)
+{
+ if (size < 0.0f || size > 1.0f) {
+ qWarning("Invalid size. Valid range for itemSize is 0.0f...1.0f");
+ } else if (size != dptr()->m_itemSize) {
+ dptr()->setItemSize(size);
+ emit itemSizeChanged(size);
+ }
+}
+
+float QScatter3DSeries::itemSize() const
+{
+ return dptrc()->m_itemSize;
+}
+
+/*!
* \return an invalid index for selection. Set this index to selectedItem property if you
* want to clear the selection.
*/
@@ -204,7 +234,8 @@ const QScatter3DSeriesPrivate *QScatter3DSeries::dptrc() const
QScatter3DSeriesPrivate::QScatter3DSeriesPrivate(QScatter3DSeries *q)
: QAbstract3DSeriesPrivate(q, QAbstract3DSeries::SeriesTypeScatter),
- m_selectedItem(Scatter3DController::invalidSelectionIndex())
+ m_selectedItem(Scatter3DController::invalidSelectionIndex()),
+ m_itemSize(0.0f)
{
m_itemLabelFormat = QStringLiteral("@valueTitle: @valueLabel");
m_mesh = QAbstract3DSeries::MeshSphere;
@@ -261,4 +292,11 @@ void QScatter3DSeriesPrivate::setSelectedItem(int index)
}
}
+void QScatter3DSeriesPrivate::setItemSize(float size)
+{
+ m_itemSize = size;
+ if (m_controller)
+ m_controller->markSeriesVisualsDirty();
+}
+
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualization/data/qscatter3dseries.h b/src/datavisualization/data/qscatter3dseries.h
index 8c28f3a6..1d9abc11 100644
--- a/src/datavisualization/data/qscatter3dseries.h
+++ b/src/datavisualization/data/qscatter3dseries.h
@@ -31,6 +31,7 @@ class QT_DATAVISUALIZATION_EXPORT QScatter3DSeries : public QAbstract3DSeries
Q_OBJECT
Q_PROPERTY(QScatterDataProxy *dataProxy READ dataProxy WRITE setDataProxy NOTIFY dataProxyChanged)
Q_PROPERTY(int selectedItem READ selectedItem WRITE setSelectedItem NOTIFY selectedItemChanged)
+ Q_PROPERTY(float itemSize READ itemSize WRITE setItemSize NOTIFY itemSizeChanged)
public:
explicit QScatter3DSeries(QObject *parent = 0);
@@ -42,11 +43,16 @@ public:
void setSelectedItem(int index);
int selectedItem() const;
+
+ void setItemSize(float size);
+ float itemSize() const;
+
Q_INVOKABLE int invalidSelectionIndex() const;
signals:
void dataProxyChanged(QScatterDataProxy *proxy);
void selectedItemChanged(int index);
+ void itemSizeChanged(float size);
protected:
explicit QScatter3DSeries(QScatter3DSeriesPrivate *d, QObject *parent = 0);
diff --git a/src/datavisualization/data/qscatter3dseries_p.h b/src/datavisualization/data/qscatter3dseries_p.h
index 0cf47bce..a09536c9 100644
--- a/src/datavisualization/data/qscatter3dseries_p.h
+++ b/src/datavisualization/data/qscatter3dseries_p.h
@@ -45,10 +45,12 @@ public:
virtual void connectControllerAndProxy(Abstract3DController *newController);
void setSelectedItem(int index);
+ void setItemSize(float size);
private:
QScatter3DSeries *qptr();
int m_selectedItem;
+ float m_itemSize;
private:
friend class QScatter3DSeries;
diff --git a/src/datavisualization/data/qscatterdataitem.cpp b/src/datavisualization/data/qscatterdataitem.cpp
index 480bc13b..2c0c0d5a 100644
--- a/src/datavisualization/data/qscatterdataitem.cpp
+++ b/src/datavisualization/data/qscatterdataitem.cpp
@@ -72,13 +72,11 @@ QScatterDataItem::~QScatterDataItem()
QScatterDataItem &QScatterDataItem::operator=(const QScatterDataItem &other)
{
m_position = other.m_position;
- //m_size = other.m_size;
if (other.d_ptr)
createExtraData();
else
d_ptr = 0;
- // TODO set extra data
return *this;
}
@@ -123,16 +121,6 @@ QScatterDataItem &QScatterDataItem::operator=(const QScatterDataItem &other)
* \return the Z component of the position of this data item.
*/
-//void QScatterDataItem::setSize(float size)
-//{
-// m_size = size;
-//}
-
-//const float &QScatterDataItem::size() const
-//{
-// return m_size;
-//}
-
/*!
* \internal
*/
diff --git a/src/datavisualization/data/qscatterdataitem.h b/src/datavisualization/data/qscatterdataitem.h
index ab6007db..7992864c 100644
--- a/src/datavisualization/data/qscatterdataitem.h
+++ b/src/datavisualization/data/qscatterdataitem.h
@@ -45,10 +45,6 @@ public:
inline float y() const { return m_position.y(); }
inline float z() const { return m_position.z(); }
- // TODO: Will we ever support item specific size? If not, remove.
- //void setSize(float size);
- //float size() const;
-
protected:
virtual void createExtraData();
@@ -56,7 +52,6 @@ protected:
private:
QVector3D m_position;
- //float m_size;
};
QT_DATAVISUALIZATION_END_NAMESPACE