@@ -60,6 +60,7 void LineChartItem::updateGeometry() | |||
|
60 | 60 | if (m_points.size() == 0) { |
|
61 | 61 | prepareGeometryChange(); |
|
62 | 62 | m_path = QPainterPath(); |
|
63 | m_linePath = QPainterPath(); | |
|
63 | 64 | m_rect = QRect(); |
|
64 | 65 | return; |
|
65 | 66 | } |
@@ -70,6 +71,7 void LineChartItem::updateGeometry() | |||
|
70 | 71 | |
|
71 | 72 | int size = m_linePen.width(); |
|
72 | 73 | linePath.addEllipse(m_points.at(0), size, size); |
|
74 | linePath.moveTo(m_points.at(0)); | |
|
73 | 75 | for (int i = 1; i < m_points.size(); i++) { |
|
74 | 76 | linePath.lineTo(m_points.at(i)); |
|
75 | 77 | linePath.addEllipse(m_points.at(i), size, size); |
@@ -100,10 +102,17 void LineChartItem::updateGeometry() | |||
|
100 | 102 | |
|
101 | 103 | void LineChartItem::handleUpdated() |
|
102 | 104 | { |
|
105 | // If points visiblity has changed, a geometry update is needed. | |
|
106 | // Also, if pen changes when points are visible, geometry update is needed. | |
|
107 | bool doGeometryUpdate = | |
|
108 | (m_pointsVisible != m_series->pointsVisible()) | |
|
109 | || (m_series->pointsVisible() && (m_linePen != m_series->pen())); | |
|
103 | 110 | setVisible(m_series->isVisible()); |
|
104 | 111 | setOpacity(m_series->opacity()); |
|
105 | 112 | m_pointsVisible = m_series->pointsVisible(); |
|
106 | 113 | m_linePen = m_series->pen(); |
|
114 | if (doGeometryUpdate) | |
|
115 | updateGeometry(); | |
|
107 | 116 | update(); |
|
108 | 117 | } |
|
109 | 118 |
General Comments 0
You need to be logged in to leave comments.
Login now