@@ -58,7 +58,7 void QXYModelMapper::setSeries(QXYSeries *series) | |||
|
58 | 58 | // connect the signals from the series |
|
59 | 59 | connect(d->m_series, SIGNAL(pointAdded(int)), d, SLOT(handlePointAdded(int))); |
|
60 | 60 | connect(d->m_series, SIGNAL(pointRemoved(int)), d, SLOT(handlePointRemoved(int))); |
|
61 |
connect(d->m_series, SIGNAL(pointReplaced(int)), d, SLOT( |
|
|
61 | connect(d->m_series, SIGNAL(pointReplaced(int)), d, SLOT(handlePointReplaced(int))); | |
|
62 | 62 | } |
|
63 | 63 | |
|
64 | 64 | int QXYModelMapper::first() const |
@@ -187,17 +187,48 QModelIndex QXYModelMapperPrivate::yModelIndex(int yPos) | |||
|
187 | 187 | |
|
188 | 188 | void QXYModelMapperPrivate::handlePointAdded(int pointPos) |
|
189 | 189 | { |
|
190 | Q_UNUSED(pointPos) | |
|
190 | if (m_seriesSignalsBlock) | |
|
191 | return; | |
|
192 | ||
|
193 | if (m_count != -1) | |
|
194 | m_count += 1; | |
|
195 | ||
|
196 | blockModelSignals(); | |
|
197 | if (m_orientation == Qt::Vertical) | |
|
198 | m_model->insertRows(pointPos + m_first, 1); | |
|
199 | else | |
|
200 | m_model->insertColumns(pointPos + m_first, 1); | |
|
201 | ||
|
202 | m_model->setData(xModelIndex(pointPos), m_series->points().at(pointPos).x()); | |
|
203 | m_model->setData(yModelIndex(pointPos), m_series->points().at(pointPos).y()); | |
|
204 | blockModelSignals(false); | |
|
191 | 205 | } |
|
192 | 206 | |
|
193 | 207 | void QXYModelMapperPrivate::handlePointRemoved(int pointPos) |
|
194 | 208 | { |
|
195 | Q_UNUSED(pointPos) | |
|
209 | if (m_seriesSignalsBlock) | |
|
210 | return; | |
|
211 | ||
|
212 | if (m_count != -1) | |
|
213 | m_count -= 1; | |
|
214 | ||
|
215 | blockModelSignals(); | |
|
216 | if (m_orientation == Qt::Vertical) | |
|
217 | m_model->removeRow(pointPos + m_first); | |
|
218 | else | |
|
219 | m_model->removeColumn(pointPos + m_first); | |
|
220 | blockModelSignals(false); | |
|
196 | 221 | } |
|
197 | 222 | |
|
198 | 223 | void QXYModelMapperPrivate::handlePointReplaced(int pointPos) |
|
199 | 224 | { |
|
200 | Q_UNUSED(pointPos) | |
|
225 | if (m_seriesSignalsBlock) | |
|
226 | return; | |
|
227 | ||
|
228 | blockModelSignals(); | |
|
229 | m_model->setData(xModelIndex(pointPos), m_series->points().at(pointPos).x()); | |
|
230 | m_model->setData(yModelIndex(pointPos), m_series->points().at(pointPos).y()); | |
|
231 | blockModelSignals(false); | |
|
201 | 232 | } |
|
202 | 233 | |
|
203 | 234 | void QXYModelMapperPrivate::modelUpdated(QModelIndex topLeft, QModelIndex bottomRight) |
@@ -102,7 +102,8 void QXYSeries::append(const QPointF &point) | |||
|
102 | 102 | { |
|
103 | 103 | Q_D(QXYSeries); |
|
104 | 104 | d->m_points<<point; |
|
105 | emit d->pointAdded(d->m_points.count()-1); | |
|
105 | // emit d->pointAdded(d->m_points.count()-1); | |
|
106 | emit pointAdded(d->m_points.count()-1); | |
|
106 | 107 | } |
|
107 | 108 | |
|
108 | 109 | /*! |
@@ -128,7 +129,8 void QXYSeries::replace(const QPointF &oldPoint,const QPointF &newPoint) | |||
|
128 | 129 | int index = d->m_points.indexOf(oldPoint); |
|
129 | 130 | if(index==-1) return; |
|
130 | 131 | d->m_points[index] = newPoint; |
|
131 | emit d->pointReplaced(index); | |
|
132 | // emit d->pointReplaced(index); | |
|
133 | emit pointReplaced(index); | |
|
132 | 134 | } |
|
133 | 135 | |
|
134 | 136 | /*! |
@@ -148,7 +150,8 void QXYSeries::remove(const QPointF &point) | |||
|
148 | 150 | int index = d->m_points.indexOf(point); |
|
149 | 151 | if(index==-1) return; |
|
150 | 152 | d->m_points.remove(index); |
|
151 | emit d->pointRemoved(index); | |
|
153 | // emit d->pointRemoved(index); | |
|
154 | emit pointRemoved(index); | |
|
152 | 155 | } |
|
153 | 156 | |
|
154 | 157 | /*! |
@@ -166,7 +169,8 void QXYSeries::insert(int index, const QPointF &point) | |||
|
166 | 169 | { |
|
167 | 170 | Q_D(QXYSeries); |
|
168 | 171 | d->m_points.insert(index, point); |
|
169 | emit d->pointAdded(index); | |
|
172 | // emit d->pointAdded(index); | |
|
173 | emit pointAdded(index); | |
|
170 | 174 | } |
|
171 | 175 | |
|
172 | 176 | void QXYSeries::clear() |
@@ -70,6 +70,9 public: | |||
|
70 | 70 | |
|
71 | 71 | Q_SIGNALS: |
|
72 | 72 | void clicked(const QPointF &point); |
|
73 | void pointReplaced(int index); | |
|
74 | void pointRemoved(int index); | |
|
75 | void pointAdded(int index); | |
|
73 | 76 | |
|
74 | 77 | private: |
|
75 | 78 | Q_DECLARE_PRIVATE(QXYSeries) |
@@ -48,9 +48,9 public: | |||
|
48 | 48 | |
|
49 | 49 | Q_SIGNALS: |
|
50 | 50 | void updated(); |
|
51 | void pointReplaced(int index); | |
|
52 | void pointRemoved(int index); | |
|
53 | void pointAdded(int index); | |
|
51 | // void pointReplaced(int index); | |
|
52 | // void pointRemoved(int index); | |
|
53 | // void pointAdded(int index); | |
|
54 | 54 | |
|
55 | 55 | protected: |
|
56 | 56 | QVector<QPointF> m_points; |
@@ -41,10 +41,13 m_series(series), | |||
|
41 | 41 | m_animation(0), |
|
42 | 42 | m_dirty(true) |
|
43 | 43 | { |
|
44 | QObject::connect(series->d_func(),SIGNAL(pointReplaced(int)),this,SLOT(handlePointReplaced(int))); | |
|
45 | QObject::connect(series->d_func(),SIGNAL(pointAdded(int)),this,SLOT(handlePointAdded(int))); | |
|
46 | QObject::connect(series->d_func(),SIGNAL(pointRemoved(int)),this,SLOT(handlePointRemoved(int))); | |
|
47 | QObject::connect(this,SIGNAL(clicked(QPointF)),series,SIGNAL(clicked(QPointF))); | |
|
44 | // QObject::connect(series->d_func(),SIGNAL(pointReplaced(int)),this,SLOT(handlePointReplaced(int))); | |
|
45 | // QObject::connect(series->d_func(),SIGNAL(pointAdded(int)),this,SLOT(handlePointAdded(int))); | |
|
46 | // QObject::connect(series->d_func(),SIGNAL(pointRemoved(int)),this,SLOT(handlePointRemoved(int))); | |
|
47 | QObject::connect(series, SIGNAL(pointReplaced(int)), this,SLOT(handlePointReplaced(int))); | |
|
48 | QObject::connect(series, SIGNAL(pointAdded(int)), this,SLOT(handlePointAdded(int))); | |
|
49 | QObject::connect(series, SIGNAL(pointRemoved(int)), this,SLOT(handlePointRemoved(int))); | |
|
50 | QObject::connect(this, SIGNAL(clicked(QPointF)), series,SIGNAL(clicked(QPointF))); | |
|
48 | 51 | } |
|
49 | 52 | |
|
50 | 53 | void XYChart::setGeometryPoints(const QVector<QPointF>& points) |
@@ -90,6 +90,9 TableWidget::TableWidget(QWidget *parent) | |||
|
90 | 90 | QPushButton* specialPieButton3 = new QPushButton("Modify slices using series API"); |
|
91 | 91 | connect(specialPieButton3, SIGNAL(clicked()), this, SLOT(testPie3())); |
|
92 | 92 | |
|
93 | QPushButton* xyTestButton = new QPushButton("Append XY point"); | |
|
94 | connect(xyTestButton, SIGNAL(clicked()), this, SLOT(testXY())); | |
|
95 | ||
|
93 | 96 | |
|
94 | 97 | QLabel *spinBoxLabel = new QLabel("Rows affected:"); |
|
95 | 98 | |
@@ -110,6 +113,7 TableWidget::TableWidget(QWidget *parent) | |||
|
110 | 113 | buttonsLayout->addWidget(specialPieButton); |
|
111 | 114 | buttonsLayout->addWidget(specialPieButton2); |
|
112 | 115 | buttonsLayout->addWidget(specialPieButton3); |
|
116 | buttonsLayout->addWidget(xyTestButton); | |
|
113 | 117 | buttonsLayout->addStretch(); |
|
114 | 118 | |
|
115 | 119 | // chart type radio buttons |
@@ -206,7 +210,7 void TableWidget::updateChartType(bool toggle) | |||
|
206 | 210 | |
|
207 | 211 | if (m_lineRadioButton->isChecked()) |
|
208 | 212 | { |
|
209 |
|
|
|
213 | m_chart->setAnimationOptions(QChart::NoAnimation); | |
|
210 | 214 | |
|
211 | 215 | // series 1 |
|
212 | 216 | m_series = new QLineSeries(this); |
@@ -217,7 +221,7 void TableWidget::updateChartType(bool toggle) | |||
|
217 | 221 | mapper->setXColumn(0); |
|
218 | 222 | mapper->setYColumn(1); |
|
219 | 223 | mapper->setFirst(3); |
|
220 |
|
|
|
224 | mapper->setCount(4); | |
|
221 | 225 | |
|
222 | 226 | // m_series->setModelMapping(0,1, Qt::Vertical); |
|
223 | 227 | // m_series->setModelMappingRange(3, 4); |
@@ -355,7 +359,7 void TableWidget::updateChartType(bool toggle) | |||
|
355 | 359 | m_pieMapper->setLabelsColumn(7); |
|
356 | 360 | m_pieMapper->setSeries(m_pieSeries); |
|
357 | 361 | m_pieMapper->setModel(m_model); |
|
358 |
|
|
|
362 | m_pieMapper->setFirst(2); | |
|
359 | 363 | // m_pieMapper->setCount(5); |
|
360 | 364 | // pieSeries->setModelMapper(mapper); |
|
361 | 365 | |
@@ -380,7 +384,7 void TableWidget::updateChartType(bool toggle) | |||
|
380 | 384 | m_pieMapper->setLabelsColumn(7); |
|
381 | 385 | m_pieMapper->setModel(m_model); |
|
382 | 386 | m_pieMapper->setSeries(m_pieSeries2); |
|
383 |
|
|
|
387 | m_pieMapper->setFirst(2); | |
|
384 | 388 | |
|
385 | 389 | m_pieSeries2->setLabelsVisible(true); |
|
386 | 390 | m_pieSeries2->setPieSize(0.35); |
@@ -518,6 +522,17 void TableWidget::testPie3() | |||
|
518 | 522 | } |
|
519 | 523 | } |
|
520 | 524 | |
|
525 | void TableWidget::testXY() | |
|
526 | { | |
|
527 | // if (m_series->type() != QAbstractSeries::SeriesTypeLine) { | |
|
528 | // m_series->append(QPointF(150, 75)); | |
|
529 | // } | |
|
530 | ||
|
531 | if (m_series->count() > 0) { | |
|
532 | m_series->remove(m_series->points().last()); | |
|
533 | } | |
|
534 | } | |
|
535 | ||
|
521 | 536 | TableWidget::~TableWidget() |
|
522 | 537 | { |
|
523 | 538 |
General Comments 0
You need to be logged in to leave comments.
Login now