diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-08 15:10:54 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-09 07:43:49 +0300 |
commit | 44871935507e215c9d7881911a1c9ade81cf5770 (patch) | |
tree | 9a1a349b857133823aa4767ec0916ecac26d512a /src/datavis3d/engine/bars3dcontroller.cpp | |
parent | e516c51ebf6e8c6c257e479f23196a54b15d6b2c (diff) |
Value axis labels support for barchart
+ Subtick support for value axes
+ misc fixes
Change-Id: I409670312ec0dede1a1faa33c30c5b6bc7c7ee29
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavis3d/engine/bars3dcontroller.cpp')
-rw-r--r-- | src/datavis3d/engine/bars3dcontroller.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/datavis3d/engine/bars3dcontroller.cpp b/src/datavis3d/engine/bars3dcontroller.cpp index 6188d203..bba744ec 100644 --- a/src/datavis3d/engine/bars3dcontroller.cpp +++ b/src/datavis3d/engine/bars3dcontroller.cpp @@ -270,7 +270,8 @@ void Bars3dController::setDataProxy(QBarDataProxy *proxy) QObject::connect(m_data, &QBarDataProxy::rowsRemoved, this, &Bars3dController::handleRowsRemoved); QObject::connect(m_data, &QBarDataProxy::rowsInserted, this, &Bars3dController::handleRowsInserted); - // emit something? Renderer might be interested? + adjustValueAxisRange(); + m_valuesDirty = true; } QBarDataProxy *Bars3dController::dataProxy() @@ -478,13 +479,15 @@ int Bars3dController::rowCount() void Bars3dController::adjustValueAxisRange() { QValueAxis *valueAxis = static_cast<QValueAxis *>(m_axisY); - if (valueAxis && valueAxis->isAutoAdjustRange()) { + if (valueAxis && valueAxis->isAutoAdjustRange() && m_data) { QPair<GLfloat, GLfloat> limits = m_data->dptr()->limitValues(0, m_rowCount, 0, m_columnCount); if (limits.first < 0) { // TODO: Currently we only support symmetric y-axis for bar chart if there are negative values qreal maxAbs = qMax(qFabs(limits.first), qFabs(limits.second)); // Call private implementation to avoid unsetting auto adjust flag valueAxis->dptr()->setRange(-maxAbs, maxAbs); + } else if (limits.second == 0.0) { + valueAxis->dptr()->setRange(0.0, 1.0); // Only zero value values in data set, set range to something. } else { valueAxis->dptr()->setRange(0.0, limits.second); } |