diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-12-05 06:28:02 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-12-05 06:28:56 +0200 |
commit | e57ed8602ac02ff86e3c08362ca4fbe23fe05bfb (patch) | |
tree | 8182e15307cf5853255b6d6d9d0c0b017875cc1d /src/datavisualization/data | |
parent | 78d4deb0be21f22d74e3e01315686857ef8edf2e (diff) |
Notifys added to properties
Task-number: QTRD-2671
Change-Id: If95696b01eab836c2b4d5c6a3c19d7da9b255ab3
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/data')
-rw-r--r-- | src/datavisualization/data/qabstract3dseries.h | 2 | ||||
-rw-r--r-- | src/datavisualization/data/qabstractdataproxy.h | 2 | ||||
-rw-r--r-- | src/datavisualization/data/qbardataproxy.cpp | 12 | ||||
-rw-r--r-- | src/datavisualization/data/qbardataproxy.h | 3 | ||||
-rw-r--r-- | src/datavisualization/data/qheightmapsurfacedataproxy.cpp | 66 | ||||
-rw-r--r-- | src/datavisualization/data/qheightmapsurfacedataproxy.h | 21 | ||||
-rw-r--r-- | src/datavisualization/data/qscatterdataproxy.cpp | 6 | ||||
-rw-r--r-- | src/datavisualization/data/qscatterdataproxy.h | 4 | ||||
-rw-r--r-- | src/datavisualization/data/qsurfacedataproxy.cpp | 7 | ||||
-rw-r--r-- | src/datavisualization/data/qsurfacedataproxy.h | 7 |
10 files changed, 99 insertions, 31 deletions
diff --git a/src/datavisualization/data/qabstract3dseries.h b/src/datavisualization/data/qabstract3dseries.h index 58346bec..f5dfcf09 100644 --- a/src/datavisualization/data/qabstract3dseries.h +++ b/src/datavisualization/data/qabstract3dseries.h @@ -32,7 +32,7 @@ class QT_DATAVISUALIZATION_EXPORT QAbstract3DSeries : public QObject Q_OBJECT Q_ENUMS(SeriesType) Q_ENUMS(Mesh) - Q_PROPERTY(SeriesType type READ type) + Q_PROPERTY(SeriesType type READ type CONSTANT) Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat NOTIFY itemLabelFormatChanged) Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibilityChanged) Q_PROPERTY(Mesh mesh READ mesh WRITE setMesh NOTIFY meshChanged) diff --git a/src/datavisualization/data/qabstractdataproxy.h b/src/datavisualization/data/qabstractdataproxy.h index 2320d254..2a053c60 100644 --- a/src/datavisualization/data/qabstractdataproxy.h +++ b/src/datavisualization/data/qabstractdataproxy.h @@ -31,7 +31,7 @@ class QT_DATAVISUALIZATION_EXPORT QAbstractDataProxy : public QObject { Q_OBJECT Q_ENUMS(DataType) - Q_PROPERTY(DataType type READ type) + Q_PROPERTY(DataType type READ type CONSTANT) public: enum DataType { diff --git a/src/datavisualization/data/qbardataproxy.cpp b/src/datavisualization/data/qbardataproxy.cpp index 2529eeac..80768059 100644 --- a/src/datavisualization/data/qbardataproxy.cpp +++ b/src/datavisualization/data/qbardataproxy.cpp @@ -129,6 +129,7 @@ QBar3DSeries *QBarDataProxy::series() void QBarDataProxy::resetArray() { resetArray(0, QStringList(), QStringList()); + emit rowCountChanged(rowCount()); } /*! @@ -142,6 +143,7 @@ void QBarDataProxy::resetArray(QBarDataArray *newArray) { dptr()->resetArray(newArray, 0, 0); emit arrayReset(); + emit rowCountChanged(rowCount()); } /*! @@ -156,6 +158,7 @@ void QBarDataProxy::resetArray(QBarDataArray *newArray, const QStringList &rowLa { dptr()->resetArray(newArray, &rowLabels, &columnLabels); emit arrayReset(); + emit rowCountChanged(rowCount()); } /*! @@ -221,6 +224,7 @@ int QBarDataProxy::addRow(QBarDataRow *row) { int addIndex = dptr()->addRow(row, 0); emit rowsAdded(addIndex, 1); + emit rowCountChanged(rowCount()); return addIndex; } @@ -233,6 +237,7 @@ int QBarDataProxy::addRow(QBarDataRow *row, const QString &label) { int addIndex = dptr()->addRow(row, &label); emit rowsAdded(addIndex, 1); + emit rowCountChanged(rowCount()); return addIndex; } @@ -246,6 +251,7 @@ int QBarDataProxy::addRows(const QBarDataArray &rows) { int addIndex = dptr()->addRows(rows, 0); emit rowsAdded(addIndex, rows.size()); + emit rowCountChanged(rowCount()); return addIndex; } @@ -258,6 +264,7 @@ int QBarDataProxy::addRows(const QBarDataArray &rows, const QStringList &labels) { int addIndex = dptr()->addRows(rows, &labels); emit rowsAdded(addIndex, rows.size()); + emit rowCountChanged(rowCount()); return addIndex; } @@ -272,6 +279,7 @@ void QBarDataProxy::insertRow(int rowIndex, QBarDataRow *row) { dptr()->insertRow(rowIndex, row, 0); emit rowsInserted(rowIndex, 1); + emit rowCountChanged(rowCount()); } /*! @@ -282,6 +290,7 @@ void QBarDataProxy::insertRow(int rowIndex, QBarDataRow *row, const QString &lab { dptr()->insertRow(rowIndex, row, &label); emit rowsInserted(rowIndex, 1); + emit rowCountChanged(rowCount()); } /*! @@ -295,6 +304,7 @@ void QBarDataProxy::insertRows(int rowIndex, const QBarDataArray &rows) { dptr()->insertRows(rowIndex, rows, 0); emit rowsInserted(rowIndex, rows.size()); + emit rowCountChanged(rowCount()); } /*! @@ -305,6 +315,7 @@ void QBarDataProxy::insertRows(int rowIndex, const QBarDataArray &rows, const QS { dptr()->insertRows(rowIndex, rows, &labels); emit rowsInserted(rowIndex, rows.size()); + emit rowCountChanged(rowCount()); } /*! @@ -319,6 +330,7 @@ void QBarDataProxy::removeRows(int rowIndex, int removeCount, bool removeLabels) if (rowIndex < rowCount() && removeCount >= 1) { dptr()->removeRows(rowIndex, removeCount, removeLabels); emit rowsRemoved(rowIndex, removeCount); + emit rowCountChanged(rowCount()); } } diff --git a/src/datavisualization/data/qbardataproxy.h b/src/datavisualization/data/qbardataproxy.h index accd7460..94e15116 100644 --- a/src/datavisualization/data/qbardataproxy.h +++ b/src/datavisualization/data/qbardataproxy.h @@ -36,7 +36,7 @@ class QT_DATAVISUALIZATION_EXPORT QBarDataProxy : public QAbstractDataProxy { Q_OBJECT - Q_PROPERTY(int rowCount READ rowCount) + Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) Q_PROPERTY(QStringList rowLabels READ rowLabels WRITE setRowLabels NOTIFY rowLabelsChanged) Q_PROPERTY(QStringList columnLabels READ columnLabels WRITE setColumnLabels NOTIFY columnLabelsChanged) Q_PROPERTY(QBar3DSeries *series READ series NOTIFY seriesChanged) @@ -88,6 +88,7 @@ signals: void rowsInserted(int startIndex, int count); void itemChanged(int rowIndex, int columnIndex); + void rowCountChanged(int count); void rowLabelsChanged(); void columnLabelsChanged(); void seriesChanged(QBar3DSeries *series); diff --git a/src/datavisualization/data/qheightmapsurfacedataproxy.cpp b/src/datavisualization/data/qheightmapsurfacedataproxy.cpp index 88ed2f5d..ce379592 100644 --- a/src/datavisualization/data/qheightmapsurfacedataproxy.cpp +++ b/src/datavisualization/data/qheightmapsurfacedataproxy.cpp @@ -59,11 +59,12 @@ const float defaultMaxValue = 10.0f; */ /*! - * \qmlproperty image HeightMapSurfaceDataProxy::heightMap + * \qmlproperty string HeightMapSurfaceDataProxy::heightMapFile * - * A height map to be visualized. Setting this property replaces current data with height map data. + * A file with a height map image to be visualized. Setting this property replaces current data + * with height map data. * - * There are several formats the image can be given in, but if it is not in a directly usable + * There are several formats the image file can be given in, but if it is not in a directly usable * format, a conversion is made. \note If the result seems wrong, the automatic conversion failed * and you should try converting the image yourself before setting it. Preferred format is * QImage::Format_RGB32 in grayscale. @@ -81,15 +82,6 @@ const float defaultMaxValue = 10.0f; */ /*! - * \qmlproperty string HeightMapSurfaceDataProxy::heightMapFile - * - * A file with a height map image to be visualized. Setting this property replaces current data - * with height map data. - * - * \sa heightMap - */ - -/*! * \qmlproperty real HeightMapSurfaceDataProxy::minXValue * * The minimum X value for the generated surface points. @@ -202,6 +194,7 @@ void QHeightMapSurfaceDataProxy::setHeightMapFile(const QString &filename) { dptr()->m_heightMapFile = filename; setHeightMap(QImage(filename)); + emit heightMapFileChanged(filename); } QString QHeightMapSurfaceDataProxy::heightMapFile() const @@ -330,11 +323,17 @@ QHeightMapSurfaceDataProxy *QHeightMapSurfaceDataProxyPrivate::qptr() void QHeightMapSurfaceDataProxyPrivate::setValueRanges(float minX, float maxX, float minZ, float maxZ) { - bool changed = false; - if (m_minXValue != minX || m_minZValue != minZ) { + bool minXChanged = false; + bool maxXChanged = false; + bool minZChanged = false; + bool maxZChanged = false; + if (m_minXValue != minX) { m_minXValue = minX; + minXChanged = true; + } + if (m_minZValue != minZ) { m_minZValue = minZ; - changed = true; + minZChanged = true; } if (m_maxXValue != maxX || minX >= maxX) { if (minX >= maxX) { @@ -345,7 +344,7 @@ void QHeightMapSurfaceDataProxyPrivate::setValueRanges(float minX, float maxX, f } else { m_maxXValue = maxX; } - changed = true; + maxXChanged = true; } if (m_maxZValue != maxZ || minZ >= maxZ) { if (minZ >= maxZ) { @@ -356,24 +355,38 @@ void QHeightMapSurfaceDataProxyPrivate::setValueRanges(float minX, float maxX, f } else { m_maxZValue = maxZ; } - changed = true; + maxZChanged = true; } - if (changed && !m_resolveTimer.isActive()) + if (minXChanged) + emit qptr()->minXValueChanged(m_minXValue); + if (minZChanged) + emit qptr()->minZValueChanged(m_minZValue); + if (maxXChanged) + emit qptr()->maxXValueChanged(m_maxXValue); + if (maxZChanged) + emit qptr()->maxZValueChanged(m_maxZValue); + + if ((minXChanged || minZChanged || maxXChanged || maxZChanged) && !m_resolveTimer.isActive()) m_resolveTimer.start(0); } void QHeightMapSurfaceDataProxyPrivate::setMinXValue(float min) { if (min != m_minXValue) { + bool maxChanged = false; if (min >= m_maxXValue) { float oldMax = m_maxXValue; m_maxXValue = min + 1.0f; qWarning() << "Warning: Tried to set minimum X to equal or larger than maximum X for" " value range. Maximum automatically adjusted to a valid one:" << oldMax << "-->" << m_maxXValue; + maxChanged = true; } m_minXValue = min; + emit qptr()->minXValueChanged(m_minXValue); + if (maxChanged) + emit qptr()->maxXValueChanged(m_maxXValue); if (!m_resolveTimer.isActive()) m_resolveTimer.start(0); @@ -383,14 +396,19 @@ void QHeightMapSurfaceDataProxyPrivate::setMinXValue(float min) void QHeightMapSurfaceDataProxyPrivate::setMaxXValue(float max) { if (m_maxXValue != max) { + bool minChanged = false; if (max <= m_minXValue) { float oldMin = m_minXValue; m_minXValue = max - 1.0f; qWarning() << "Warning: Tried to set maximum X to equal or smaller than minimum X for" " value range. Minimum automatically adjusted to a valid one:" << oldMin << "-->" << m_minXValue; + minChanged = true; } m_maxXValue = max; + emit qptr()->maxXValueChanged(m_maxXValue); + if (minChanged) + emit qptr()->minXValueChanged(m_minXValue); if (!m_resolveTimer.isActive()) m_resolveTimer.start(0); @@ -400,14 +418,19 @@ void QHeightMapSurfaceDataProxyPrivate::setMaxXValue(float max) void QHeightMapSurfaceDataProxyPrivate::setMinZValue(float min) { if (min != m_minZValue) { + bool maxChanged = false; if (min >= m_maxZValue) { float oldMax = m_maxZValue; m_maxZValue = min + 1.0f; qWarning() << "Warning: Tried to set minimum Z to equal or larger than maximum Z for" " value range. Maximum automatically adjusted to a valid one:" << oldMax << "-->" << m_maxZValue; + maxChanged = true; } m_minZValue = min; + emit qptr()->minZValueChanged(m_minZValue); + if (maxChanged) + emit qptr()->maxZValueChanged(m_maxZValue); if (!m_resolveTimer.isActive()) m_resolveTimer.start(0); @@ -417,14 +440,19 @@ void QHeightMapSurfaceDataProxyPrivate::setMinZValue(float min) void QHeightMapSurfaceDataProxyPrivate::setMaxZValue(float max) { if (m_maxZValue != max) { + bool minChanged = false; if (max <= m_minZValue) { float oldMin = m_minZValue; m_minZValue = max - 1.0f; qWarning() << "Warning: Tried to set maximum Z to equal or smaller than minimum Z for" " value range. Minimum automatically adjusted to a valid one:" << oldMin << "-->" << m_minZValue; + minChanged = true; } m_maxZValue = max; + emit qptr()->maxZValueChanged(m_maxZValue); + if (minChanged) + emit qptr()->minZValueChanged(m_minZValue); if (!m_resolveTimer.isActive()) m_resolveTimer.start(0); @@ -434,6 +462,7 @@ void QHeightMapSurfaceDataProxyPrivate::setMaxZValue(float max) void QHeightMapSurfaceDataProxyPrivate::handlePendingResolve() { QImage heightImage = m_heightMap; + // Convert to RGB32 to be sure we're reading the right bytes if (heightImage.format() != QImage::Format_RGB32) heightImage = heightImage.convertToFormat(QImage::Format_RGB32); @@ -516,6 +545,7 @@ void QHeightMapSurfaceDataProxyPrivate::handlePendingResolve() } qptr()->resetArray(dataArray); + emit qptr()->heightMapChanged(m_heightMap); } QT_DATAVISUALIZATION_END_NAMESPACE diff --git a/src/datavisualization/data/qheightmapsurfacedataproxy.h b/src/datavisualization/data/qheightmapsurfacedataproxy.h index 3306059f..16132b0d 100644 --- a/src/datavisualization/data/qheightmapsurfacedataproxy.h +++ b/src/datavisualization/data/qheightmapsurfacedataproxy.h @@ -31,12 +31,12 @@ class QT_DATAVISUALIZATION_EXPORT QHeightMapSurfaceDataProxy : public QSurfaceDa { Q_OBJECT - Q_PROPERTY(QImage heightMap READ heightMap WRITE setHeightMap) - Q_PROPERTY(QString heightMapFile READ heightMapFile WRITE setHeightMapFile) - Q_PROPERTY(float minXValue READ minXValue WRITE setMinXValue) - Q_PROPERTY(float maxXValue READ maxXValue WRITE setMaxXValue) - Q_PROPERTY(float minZValue READ minZValue WRITE setMinZValue) - Q_PROPERTY(float maxZValue READ maxZValue WRITE setMaxZValue) + Q_PROPERTY(QImage heightMap READ heightMap WRITE setHeightMap NOTIFY heightMapChanged) + Q_PROPERTY(QString heightMapFile READ heightMapFile WRITE setHeightMapFile NOTIFY heightMapFileChanged) + Q_PROPERTY(float minXValue READ minXValue WRITE setMinXValue NOTIFY minXValueChanged) + Q_PROPERTY(float maxXValue READ maxXValue WRITE setMaxXValue NOTIFY maxXValueChanged) + Q_PROPERTY(float minZValue READ minZValue WRITE setMinZValue NOTIFY minZValueChanged) + Q_PROPERTY(float maxZValue READ maxZValue WRITE setMaxZValue NOTIFY maxZValueChanged) public: explicit QHeightMapSurfaceDataProxy(QObject *parent = 0); @@ -45,7 +45,6 @@ public: void setHeightMap(const QImage &image); QImage heightMap() const; - void setHeightMapFile(const QString &filename); QString heightMapFile() const; @@ -59,6 +58,14 @@ public: void setMaxZValue(float max); float maxZValue() const; +signals: + void heightMapChanged(QImage image); + void heightMapFileChanged(QString filename); + void minXValueChanged(float value); + void maxXValueChanged(float value); + void minZValueChanged(float value); + void maxZValueChanged(float value); + protected: explicit QHeightMapSurfaceDataProxy(QHeightMapSurfaceDataProxyPrivate *d, QObject *parent = 0); QHeightMapSurfaceDataProxyPrivate *dptr(); diff --git a/src/datavisualization/data/qscatterdataproxy.cpp b/src/datavisualization/data/qscatterdataproxy.cpp index ff37dd24..791e5dd6 100644 --- a/src/datavisualization/data/qscatterdataproxy.cpp +++ b/src/datavisualization/data/qscatterdataproxy.cpp @@ -109,6 +109,7 @@ void QScatterDataProxy::resetArray(QScatterDataArray *newArray) dptr()->resetArray(newArray); emit arrayReset(); + emit itemCountChanged(itemCount()); } /*! @@ -138,6 +139,7 @@ int QScatterDataProxy::addItem(const QScatterDataItem &item) { int addIndex = dptr()->addItem(item); emit itemsAdded(addIndex, 1); + emit itemCountChanged(itemCount()); return addIndex; } @@ -150,6 +152,7 @@ int QScatterDataProxy::addItems(const QScatterDataArray &items) { int addIndex = dptr()->addItems(items); emit itemsAdded(addIndex, items.size()); + emit itemCountChanged(itemCount()); return addIndex; } @@ -161,6 +164,7 @@ void QScatterDataProxy::insertItem(int index, const QScatterDataItem &item) { dptr()->insertItem(index, item); emit itemsInserted(index, 1); + emit itemCountChanged(itemCount()); } /*! @@ -170,6 +174,7 @@ void QScatterDataProxy::insertItems(int index, const QScatterDataArray &items) { dptr()->insertItems(index, items); emit itemsInserted(index, items.size()); + emit itemCountChanged(itemCount()); } /*! @@ -180,6 +185,7 @@ void QScatterDataProxy::removeItems(int index, int removeCount) { dptr()->removeItems(index, removeCount); emit itemsRemoved(index, removeCount); + emit itemCountChanged(itemCount()); } /*! diff --git a/src/datavisualization/data/qscatterdataproxy.h b/src/datavisualization/data/qscatterdataproxy.h index 13f10301..acb3d3d4 100644 --- a/src/datavisualization/data/qscatterdataproxy.h +++ b/src/datavisualization/data/qscatterdataproxy.h @@ -33,7 +33,7 @@ class QT_DATAVISUALIZATION_EXPORT QScatterDataProxy : public QAbstractDataProxy { Q_OBJECT - Q_PROPERTY(int itemCount READ itemCount) + Q_PROPERTY(int itemCount READ itemCount NOTIFY itemCountChanged) Q_PROPERTY(QScatter3DSeries *series READ series NOTIFY seriesChanged) public: @@ -64,6 +64,8 @@ signals: void itemsChanged(int startIndex, int count); void itemsRemoved(int startIndex, int count); void itemsInserted(int startIndex, int count); + + void itemCountChanged(int count); void seriesChanged(QScatter3DSeries *series); protected: diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp index 678ffd8d..8deab6cc 100644 --- a/src/datavisualization/data/qsurfacedataproxy.cpp +++ b/src/datavisualization/data/qsurfacedataproxy.cpp @@ -137,6 +137,8 @@ void QSurfaceDataProxy::resetArray(QSurfaceDataArray *newArray) dptr()->resetArray(newArray); } emit arrayReset(); + emit rowCountChanged(rowCount()); + emit columnCountChanged(columnCount()); } /*! @@ -181,6 +183,7 @@ int QSurfaceDataProxy::addRow(QSurfaceDataRow *row) { int addIndex = dptr()->addRow(row); emit rowsAdded(addIndex, 1); + emit rowCountChanged(rowCount()); return addIndex; } @@ -194,6 +197,7 @@ int QSurfaceDataProxy::addRows(const QSurfaceDataArray &rows) { int addIndex = dptr()->addRows(rows); emit rowsAdded(addIndex, rows.size()); + emit rowCountChanged(rowCount()); return addIndex; } @@ -206,6 +210,7 @@ void QSurfaceDataProxy::insertRow(int rowIndex, QSurfaceDataRow *row) { dptr()->insertRow(rowIndex, row); emit rowsInserted(rowIndex, 1); + emit rowCountChanged(rowCount()); } /*! @@ -217,6 +222,7 @@ void QSurfaceDataProxy::insertRows(int rowIndex, const QSurfaceDataArray &rows) { dptr()->insertRows(rowIndex, rows); emit rowsInserted(rowIndex, rows.size()); + emit rowCountChanged(rowCount()); } /*! @@ -228,6 +234,7 @@ void QSurfaceDataProxy::removeRows(int rowIndex, int removeCount) if (rowIndex < rowCount() && removeCount >= 1) { dptr()->removeRows(rowIndex, removeCount); emit rowsRemoved(rowIndex, removeCount); + emit rowCountChanged(rowCount()); } } diff --git a/src/datavisualization/data/qsurfacedataproxy.h b/src/datavisualization/data/qsurfacedataproxy.h index c2a0fef2..04c6dbf7 100644 --- a/src/datavisualization/data/qsurfacedataproxy.h +++ b/src/datavisualization/data/qsurfacedataproxy.h @@ -34,8 +34,8 @@ class QT_DATAVISUALIZATION_EXPORT QSurfaceDataProxy : public QAbstractDataProxy { Q_OBJECT - Q_PROPERTY(int rowCount READ rowCount) - Q_PROPERTY(int columnCount READ columnCount) + Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) + Q_PROPERTY(int columnCount READ columnCount NOTIFY columnCountChanged) Q_PROPERTY(QSurface3DSeries *series READ series NOTIFY seriesChanged) public: @@ -70,6 +70,9 @@ signals: void rowsRemoved(int startIndex, int count); void rowsInserted(int startIndex, int count); void itemChanged(int rowIndex, int columnIndex); + + void rowCountChanged(int count); + void columnCountChanged(int count); void seriesChanged(QSurface3DSeries *series); protected: |