summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-02-22 11:57:03 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-02-22 11:57:03 +0200
commitb3d485323aa99d999511694e3e3c0496b5b4e3ca (patch)
treeaa2bd95d3bdc4675c92dca89433f109ad71dc91c /src
parentdc3d4ff0038e274edde3b3387795fcef30beaabc (diff)
Fix crash when changing the values to empty model with logarithmic axis
One zero or negative value invalidates the whole layout for logarithmic axes, but this wasn't taken into account when replacing the points. Task-number: QTRD-1914 Reviewed-by: Mika Salmela
Diffstat (limited to 'src')
-rw-r--r--src/xychart/xychart.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/xychart/xychart.cpp b/src/xychart/xychart.cpp
index 26bed339..9b808edd 100644
--- a/src/xychart/xychart.cpp
+++ b/src/xychart/xychart.cpp
@@ -84,16 +84,15 @@ void XYChart::handlePointAdded(int index)
QVector<QPointF> points;
- if (m_dirty) {
+ if (m_dirty || m_points.isEmpty()) {
points = domain()->calculateGeometryPoints(m_series->points());
} else {
points = m_points;
QPointF point = domain()->calculateGeometryPoint(m_series->points()[index], m_validData);
- if (!m_validData) {
+ if (!m_validData)
m_points.clear();
- return;
- }
- points.insert(index, point);
+ else
+ points.insert(index, point);
}
updateChart(m_points, points, index);
@@ -106,7 +105,7 @@ void XYChart::handlePointRemoved(int index)
QVector<QPointF> points;
- if (m_dirty) {
+ if (m_dirty || m_points.isEmpty()) {
points = domain()->calculateGeometryPoints(m_series->points());
} else {
points = m_points;
@@ -123,16 +122,15 @@ void XYChart::handlePointReplaced(int index)
QVector<QPointF> points;
- if (m_dirty) {
+ if (m_dirty || m_points.isEmpty()) {
points = domain()->calculateGeometryPoints(m_series->points());
} else {
QPointF point = domain()->calculateGeometryPoint(m_series->points()[index], m_validData);
- if (!m_validData) {
+ if (!m_validData)
m_points.clear();
- return;
- }
points = m_points;
- points.replace(index, point);
+ if (m_validData)
+ points.replace(index, point);
}
updateChart(m_points, points, index);