summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/bars3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-08 15:10:54 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-09 07:43:49 +0300
commit44871935507e215c9d7881911a1c9ade81cf5770 (patch)
tree9a1a349b857133823aa4767ec0916ecac26d512a /src/datavis3d/engine/bars3dcontroller.cpp
parente516c51ebf6e8c6c257e479f23196a54b15d6b2c (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.cpp7
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);
}