diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-09 12:16:10 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-09 12:39:35 +0300 |
commit | c0bd9987bd8262a629518c744062beab17a3a9ee (patch) | |
tree | afc415894bc66fd6a13584f65e153a95b4a21275 | |
parent | 4a128176cc7b699ba8ee9810e7242f8b73869197 (diff) |
Refactor axes to use more properties in preparation of qml support
+ Removed obsolete unused function.
Change-Id: I651b36a11a5b20632e78aeebc786084e33c4e12c
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
-rw-r--r-- | examples/barchart/main.cpp | 4 | ||||
-rw-r--r-- | examples/rainfall/rainfallchart.cpp | 4 | ||||
-rw-r--r-- | examples/scatterchart/scatterchart.cpp | 4 | ||||
-rw-r--r-- | examples/widget/chart.cpp | 12 | ||||
-rw-r--r-- | src/datavis3d/axis/qabstractaxis.h | 1 | ||||
-rw-r--r-- | src/datavis3d/axis/qcategoryaxis.cpp | 7 | ||||
-rw-r--r-- | src/datavis3d/axis/qcategoryaxis.h | 9 | ||||
-rw-r--r-- | src/datavis3d/axis/qvalueaxis.cpp | 20 | ||||
-rw-r--r-- | src/datavis3d/axis/qvalueaxis.h | 24 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3dcontroller.cpp | 8 | ||||
-rw-r--r-- | src/datavis3d/engine/bars3dcontroller_p.h | 2 |
11 files changed, 52 insertions, 43 deletions
diff --git a/examples/barchart/main.cpp b/examples/barchart/main.cpp index ce5e49e0..24690ebb 100644 --- a/examples/barchart/main.cpp +++ b/examples/barchart/main.cpp @@ -209,8 +209,8 @@ void ChartDataGenerator::setupModel() m_chart->columnAxis()->setTitle("Day of week"); m_chart->valueAxis()->setTitle("Hours playing banjo"); m_chart->valueAxis()->setSegmentCount(5); - m_chart->rowAxis()->setLabels(weeks); - m_chart->columnAxis()->setLabels(days); + m_chart->rowAxis()->setCategoryLabels(weeks); + m_chart->columnAxis()->setCategoryLabels(days); m_tableWidget->setRowCount(5); m_tableWidget->setColumnCount(7); diff --git a/examples/rainfall/rainfallchart.cpp b/examples/rainfall/rainfallchart.cpp index 4969f94f..9f0a9bd1 100644 --- a/examples/rainfall/rainfallchart.cpp +++ b/examples/rainfall/rainfallchart.cpp @@ -77,8 +77,8 @@ RainfallChart::RainfallChart(Q3DBars *rainfall) m_chart->rowAxis()->setTitle("Year"); m_chart->columnAxis()->setTitle("Month"); m_chart->valueAxis()->setTitle(QString("rainfall (in mm) in city %1").arg(m_city - 1)); - m_chart->rowAxis()->setLabels(m_years); - m_chart->columnAxis()->setLabels(months); + m_chart->rowAxis()->setCategoryLabels(m_years); + m_chart->columnAxis()->setCategoryLabels(months); // Set bar type to cylinder m_chart->setBarType(Cylinders, false); diff --git a/examples/scatterchart/scatterchart.cpp b/examples/scatterchart/scatterchart.cpp index 6a945bd4..20c88e59 100644 --- a/examples/scatterchart/scatterchart.cpp +++ b/examples/scatterchart/scatterchart.cpp @@ -86,8 +86,8 @@ void ScatterDataModifier::addData() m_chart->rowAxis()->setTitle("Somethings"); m_chart->columnAxis()->setTitle("Others"); m_chart->valueAxis()->setTitle("Values"); - m_chart->rowAxis()->setLabels(columnLabels); - m_chart->columnAxis()->setLabels(rowLabels); + m_chart->rowAxis()->setCategoryLabels(columnLabels); + m_chart->columnAxis()->setCategoryLabels(rowLabels); QScatterDataArray *dataArray = new QScatterDataArray; dataArray->resize(numberOfItems); diff --git a/examples/widget/chart.cpp b/examples/widget/chart.cpp index ebf283b6..7deffe6b 100644 --- a/examples/widget/chart.cpp +++ b/examples/widget/chart.cpp @@ -116,10 +116,10 @@ void ChartModifier::restart(bool dynamicData) m_chart->valueAxis()->setTitle("Generic Value"); if (m_chart->rowAxis()->labels().size() < m_rowCount) - m_chart->rowAxis()->setLabels(m_genericRowLabels.mid(0, m_rowCount)); + m_chart->rowAxis()->setCategoryLabels(m_genericRowLabels.mid(0, m_rowCount)); if (m_chart->columnAxis()->labels().size() < m_rowCount) - m_chart->columnAxis()->setLabels(m_genericColumnLabels.mid(0, m_columnCount)); + m_chart->columnAxis()->setCategoryLabels(m_genericColumnLabels.mid(0, m_columnCount)); } } @@ -154,8 +154,8 @@ void ChartModifier::addDataSet() m_chart->rowAxis()->setTitle("Year"); m_chart->columnAxis()->setTitle("Month"); m_chart->valueAxis()->setTitle("Average temperature (" + celsiusString + ")"); - m_chart->rowAxis()->setLabels(years); - m_chart->columnAxis()->setLabels(months); + m_chart->rowAxis()->setCategoryLabels(years); + m_chart->columnAxis()->setCategoryLabels(months); m_chart->valueAxis()->setSegmentCount(m_segments); m_chart->valueAxis()->setSubSegmentCount(m_subSegments); m_chart->valueAxis()->setRange(m_minval, m_maxval); @@ -390,7 +390,7 @@ void ChartModifier::setSampleCountX(int samples) m_columnCount = samples; m_chart->setupSampleSpace(m_rowCount, m_columnCount); if (m_chart->columnAxis()->labels().size() < m_columnCount) - m_chart->columnAxis()->setLabels(m_genericColumnLabels.mid(0, m_columnCount)); + m_chart->columnAxis()->setCategoryLabels(m_genericColumnLabels.mid(0, m_columnCount)); } void ChartModifier::setSampleCountZ(int samples) @@ -398,5 +398,5 @@ void ChartModifier::setSampleCountZ(int samples) m_rowCount = samples; m_chart->setupSampleSpace(m_rowCount, m_columnCount); if (m_chart->rowAxis()->labels().size() < m_rowCount) - m_chart->rowAxis()->setLabels(m_genericRowLabels.mid(0, m_rowCount)); + m_chart->rowAxis()->setCategoryLabels(m_genericRowLabels.mid(0, m_rowCount)); } diff --git a/src/datavis3d/axis/qabstractaxis.h b/src/datavis3d/axis/qabstractaxis.h index f95f53e9..d63f4f7c 100644 --- a/src/datavis3d/axis/qabstractaxis.h +++ b/src/datavis3d/axis/qabstractaxis.h @@ -58,6 +58,7 @@ class QT_DATAVIS3D_EXPORT QAbstractAxis : public QObject Q_ENUMS(AxisOrientation) Q_ENUMS(AxisType) Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged) + Q_PROPERTY(QStringList labels READ labels NOTIFY labelsChanged) Q_PROPERTY(AxisOrientation orientation READ orientation) Q_PROPERTY(AxisType type READ type) diff --git a/src/datavis3d/axis/qcategoryaxis.cpp b/src/datavis3d/axis/qcategoryaxis.cpp index aa3e2cc9..3e27c6e7 100644 --- a/src/datavis3d/axis/qcategoryaxis.cpp +++ b/src/datavis3d/axis/qcategoryaxis.cpp @@ -53,7 +53,12 @@ QCategoryAxis::~QCategoryAxis() { } -void QCategoryAxis::setLabels(const QStringList &labels) +QStringList QCategoryAxis::categoryLabels() const +{ + return labels(); +} + +void QCategoryAxis::setCategoryLabels(const QStringList &labels) { if (d_ptr->m_labels != labels) { d_ptr->m_labels = labels; diff --git a/src/datavis3d/axis/qcategoryaxis.h b/src/datavis3d/axis/qcategoryaxis.h index ae0d2ee8..b83efc6d 100644 --- a/src/datavis3d/axis/qcategoryaxis.h +++ b/src/datavis3d/axis/qcategoryaxis.h @@ -51,11 +51,18 @@ class QCategoryAxisPrivate; class QT_DATAVIS3D_EXPORT QCategoryAxis : public QAbstractAxis { Q_OBJECT + // Note: categoryLabels actually reads/writes the labels property in abstract axis, + // which is read only there. Since subclass cannot have property with same name, + // this partially duplicate property is necessary. + Q_PROPERTY(QStringList categoryLabels READ categoryLabels WRITE setCategoryLabels) public: explicit QCategoryAxis(); ~QCategoryAxis(); - void setLabels(const QStringList &labels); + QStringList categoryLabels() const; + +public slots: + void setCategoryLabels(const QStringList &labels); protected: QCategoryAxisPrivate *dptr(); diff --git a/src/datavis3d/axis/qvalueaxis.cpp b/src/datavis3d/axis/qvalueaxis.cpp index 78c4738a..3fc4af05 100644 --- a/src/datavis3d/axis/qvalueaxis.cpp +++ b/src/datavis3d/axis/qvalueaxis.cpp @@ -201,13 +201,13 @@ void QValueAxisPrivate::setMin(qreal min) { if (m_min != min) { if (min >= m_max) { - m_min = m_max - 1.0; + qreal oldMax = m_max; + m_max = min + 1.0; qWarning() << "Warning: Tried to set minimum to equal or larger than maximum for" - " value axis. Minimum automatically adjusted to a valid one:" - << min << "-->" << m_min; - } else { - m_min = min; + " value axis. Maximum automatically adjusted to a valid one:" + << oldMax << "-->" << m_max; } + m_min = min; recreateLabels(); emit qptr()->rangeChanged(m_min, m_max); } @@ -217,13 +217,13 @@ void QValueAxisPrivate::setMax(qreal max) { if (m_max != max) { if (max <= m_min) { - m_max = m_min + 1.0; + qreal oldMin = m_min; + m_min = max - 1.0; qWarning() << "Warning: Tried to set maximum to equal or smaller than minimum for" - " value axis. Maximum automatically adjusted to a valid one:" - << max << "-->" << m_max; - } else { - m_max = max; + " value axis. Minimum automatically adjusted to a valid one:" + << oldMin << "-->" << m_min; } + m_max = max; recreateLabels(); emit qptr()->rangeChanged(m_min, m_max); } diff --git a/src/datavis3d/axis/qvalueaxis.h b/src/datavis3d/axis/qvalueaxis.h index 14608ec7..0efc762b 100644 --- a/src/datavis3d/axis/qvalueaxis.h +++ b/src/datavis3d/axis/qvalueaxis.h @@ -51,26 +51,32 @@ class QValueAxisPrivate; class QT_DATAVIS3D_EXPORT QValueAxis : public QAbstractAxis { Q_OBJECT + Q_PROPERTY(qreal min READ min WRITE setMin NOTIFY rangeChanged) + Q_PROPERTY(qreal max READ max WRITE setMax NOTIFY rangeChanged) + Q_PROPERTY(int segmentCount READ segmentCount WRITE setSegmentCount NOTIFY segmentCountChanged) + Q_PROPERTY(int subSegmentCount READ subSegmentCount WRITE setSubSegmentCount NOTIFY subSegmentCountChanged) + Q_PROPERTY(bool autoAdjustRange READ isAutoAdjustRange WRITE setAutoAdjustRange NOTIFY autoAdjustRangeChanged) + Q_PROPERTY(QString labelFormat READ labelFormat WRITE setLabelFormat NOTIFY labelFormatChanged) + public: explicit QValueAxis(); ~QValueAxis(); - void setRange(qreal min, qreal max); - void setMin(qreal min); - void setMax (qreal max); qreal min() const; qreal max() const; - - void setSegmentCount(int count); int segmentCount() const; - void setSubSegmentCount(int count); int subSegmentCount() const; - - void setAutoAdjustRange(bool autoAdjust); bool isAutoAdjustRange() const; + QString labelFormat() const; +public slots: + void setRange(qreal min, qreal max); + void setMin(qreal min); + void setMax(qreal max); + void setSegmentCount(int count); + void setSubSegmentCount(int count); + void setAutoAdjustRange(bool autoAdjust); void setLabelFormat(const QString &format); - QString labelFormat() const; signals: void rangeChanged(qreal min, qreal max); diff --git a/src/datavis3d/engine/bars3dcontroller.cpp b/src/datavis3d/engine/bars3dcontroller.cpp index bba744ec..1c72b575 100644 --- a/src/datavis3d/engine/bars3dcontroller.cpp +++ b/src/datavis3d/engine/bars3dcontroller.cpp @@ -364,14 +364,6 @@ QString Bars3dController::objFile() return m_objFile; } -QPair<GLfloat, GLfloat> Bars3dController::limits() -{ - if (m_data) - return m_data->dptr()->limitValues(0, m_rowCount, 0, m_columnCount); - - return qMakePair(0.f, 0.f); -} - void Bars3dController::setBarType(BarStyle style, bool smooth) { if (style == Bars) { diff --git a/src/datavis3d/engine/bars3dcontroller_p.h b/src/datavis3d/engine/bars3dcontroller_p.h index 4810d60b..eeae402b 100644 --- a/src/datavis3d/engine/bars3dcontroller_p.h +++ b/src/datavis3d/engine/bars3dcontroller_p.h @@ -126,8 +126,6 @@ public: QMatrix4x4 calculateViewMatrix(int zoom, int viewPortWidth, int viewPortHeight, bool showUnder = false); - QPair<GLfloat, GLfloat> limits(); - // bar thickness, spacing between bars, and is spacing relative to thickness or absolute // y -component sets the thickness/spacing of z -direction // With relative 0.0f means side-to-side, 1.0f = one thickness in between |