summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-09 12:16:10 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-09 12:39:35 +0300
commitc0bd9987bd8262a629518c744062beab17a3a9ee (patch)
treeafc415894bc66fd6a13584f65e153a95b4a21275
parent4a128176cc7b699ba8ee9810e7242f8b73869197 (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.cpp4
-rw-r--r--examples/rainfall/rainfallchart.cpp4
-rw-r--r--examples/scatterchart/scatterchart.cpp4
-rw-r--r--examples/widget/chart.cpp12
-rw-r--r--src/datavis3d/axis/qabstractaxis.h1
-rw-r--r--src/datavis3d/axis/qcategoryaxis.cpp7
-rw-r--r--src/datavis3d/axis/qcategoryaxis.h9
-rw-r--r--src/datavis3d/axis/qvalueaxis.cpp20
-rw-r--r--src/datavis3d/axis/qvalueaxis.h24
-rw-r--r--src/datavis3d/engine/bars3dcontroller.cpp8
-rw-r--r--src/datavis3d/engine/bars3dcontroller_p.h2
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