@@ -168,16 +168,36 void ChartDataSet::removeSeries(QChartSeries* series) | |||
|
168 | 168 | emit seriesRemoved(series); |
|
169 | 169 | m_seriesMap.remove(axis,series); |
|
170 | 170 | //remove axis if no longer there |
|
171 |
if(!m_seriesMap.contains(axis) |
|
|
171 | if(!m_seriesMap.contains(axis)){ | |
|
172 | 172 | emit axisRemoved(axis); |
|
173 | 173 | m_domainMap.remove(axis); |
|
174 | if(axis != m_axisY) | |
|
174 | 175 | delete axis; |
|
175 | 176 | } |
|
177 | series->setParent(0); | |
|
176 | 178 | break; |
|
177 | 179 | } |
|
178 | 180 | } |
|
179 | 181 | } |
|
180 | 182 | |
|
183 | void ChartDataSet::removeAllSeries() | |
|
184 | { | |
|
185 | QList<QChartAxis*> keys = m_seriesMap.uniqueKeys(); | |
|
186 | foreach(QChartAxis* axis , keys) { | |
|
187 | QList<QChartSeries*> seriesList = m_seriesMap.values(axis); | |
|
188 | for(int i =0 ; i < seriesList.size();i++ ) | |
|
189 | { | |
|
190 | emit seriesRemoved(seriesList.at(i)); | |
|
191 | delete(seriesList.at(i)); | |
|
192 | } | |
|
193 | m_seriesMap.remove(axis); | |
|
194 | m_domainMap.remove(axis); | |
|
195 | emit axisRemoved(axis); | |
|
196 | if(axis != m_axisY) delete axis; | |
|
197 | } | |
|
198 | m_domainIndex=0; | |
|
199 | } | |
|
200 | ||
|
181 | 201 | bool ChartDataSet::nextDomain() |
|
182 | 202 | { |
|
183 | 203 | int limit = (m_domainMap.values().size()/m_domainMap.uniqueKeys().size())-1; |
@@ -18,6 +18,7 public: | |||
|
18 | 18 | |
|
19 | 19 | void addSeries(QChartSeries* series,QChartAxis *axisY = 0); |
|
20 | 20 | void removeSeries(QChartSeries* series); |
|
21 | void removeAllSeries(); | |
|
21 | 22 | void addDomain(const QRectF& rect, const QRectF& viewport); |
|
22 | 23 | bool nextDomain(); |
|
23 | 24 | bool previousDomain(); |
@@ -28,6 +28,11 void QChart::removeSeries(QChartSeries* series) | |||
|
28 | 28 | m_dataset->removeSeries(series); |
|
29 | 29 | } |
|
30 | 30 | |
|
31 | void QChart::removeAllSeries() | |
|
32 | { | |
|
33 | m_dataset->removeAllSeries(); | |
|
34 | } | |
|
35 | ||
|
31 | 36 | void QChart::setChartBackgroundBrush(const QBrush& brush) |
|
32 | 37 | { |
|
33 | 38 | createChartBackgroundItem(); |
@@ -42,8 +42,9 public: | |||
|
42 | 42 | QChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); |
|
43 | 43 | ~QChart(); |
|
44 | 44 | |
|
45 |
void addSeries(QChartSeries* series,QChartAxis |
|
|
46 | void removeSeries(QChartSeries* series); | |
|
45 | void addSeries(QChartSeries* series,QChartAxis* axisY=0);// takes series ownership , takes axis ownership | |
|
46 | void removeSeries(QChartSeries* series); //returns ownership , deletes axis if no series attached | |
|
47 | void removeAllSeries(); // deletes series and axis | |
|
47 | 48 | |
|
48 | 49 | void setMargin(int margin); |
|
49 | 50 | int margin() const; |
@@ -51,6 +51,11 void QChartView::removeSeries(QChartSeries* series) | |||
|
51 | 51 | m_chart->removeSeries(series); |
|
52 | 52 | } |
|
53 | 53 | |
|
54 | void QChartView::removeAllSeries() | |
|
55 | { | |
|
56 | m_chart->removeAllSeries(); | |
|
57 | } | |
|
58 | ||
|
54 | 59 | void QChartView::zoomIn() |
|
55 | 60 | { |
|
56 | 61 | m_chart->zoomIn(); |
@@ -24,8 +24,9 public: | |||
|
24 | 24 | //implement from QWidget |
|
25 | 25 | void resizeEvent(QResizeEvent *event); |
|
26 | 26 | |
|
27 | void addSeries(QChartSeries* series,QChartAxis* axisY=0);// takes ownership | |
|
28 | void removeSeries(QChartSeries* series); | |
|
27 | void addSeries(QChartSeries* series,QChartAxis* axisY=0);// takes series ownership , takes axis ownership | |
|
28 | void removeSeries(QChartSeries* series); //returns ownership , deletes axis if no series attached | |
|
29 | void removeAllSeries(); // deletes series and axis | |
|
29 | 30 | int margin() const; |
|
30 | 31 | |
|
31 | 32 | void setChartTitle(const QString& title); |
@@ -39,6 +39,8 private slots: | |||
|
39 | 39 | void nextpreviousDomain(); |
|
40 | 40 | void removeSeries_data(); |
|
41 | 41 | void removeSeries(); |
|
42 | void removeAllSeries_data(); | |
|
43 | void removeAllSeries(); | |
|
42 | 44 | }; |
|
43 | 45 | |
|
44 | 46 | void tst_ChartDataSet::initTestCase() |
@@ -189,8 +191,6 void tst_ChartDataSet::addSeries() | |||
|
189 | 191 | else |
|
190 | 192 | axisYCount++; |
|
191 | 193 | |
|
192 | ||
|
193 | ||
|
194 | 194 | QCOMPARE(spy0.count(), axisYCount); |
|
195 | 195 | QCOMPARE(spy1.count(), seriesCount*2); |
|
196 | 196 | QCOMPARE(spy2.count(), 0); |
@@ -513,6 +513,10 void tst_ChartDataSet::removeSeries() | |||
|
513 | 513 | dataSet.removeSeries(seriesList.at(i)); |
|
514 | 514 | } |
|
515 | 515 | |
|
516 | //default axis | |
|
517 | if (axisYCount == 0) | |
|
518 | axisYCount++; | |
|
519 | ||
|
516 | 520 | QCOMPARE(spy0.count(), 0); |
|
517 | 521 | QCOMPARE(spy1.count(), 0); |
|
518 | 522 | QCOMPARE(spy2.count(), axisYCount); |
@@ -521,8 +525,75 void tst_ChartDataSet::removeSeries() | |||
|
521 | 525 | QCOMPARE(spy5.count(), seriesCount); |
|
522 | 526 | |
|
523 | 527 | QCOMPARE(dataSet.domainIndex(), 0); |
|
528 | ||
|
529 | qDeleteAll(seriesList); | |
|
524 | 530 | } |
|
525 | 531 | |
|
532 | void tst_ChartDataSet::removeAllSeries_data() | |
|
533 | { | |
|
534 | QTest::addColumn<int>("seriesCount"); | |
|
535 | QTest::addColumn<int>("axisYCount"); | |
|
536 | QTest::newRow("2 series, default axis") << 2 << 0; | |
|
537 | QTest::newRow("2 series, 2 new axis") << 2 << 2; | |
|
538 | QTest::newRow("2 series, 1 new axis") << 2 << 2; | |
|
539 | QTest::newRow("3 series, 3 new axis") << 3 << 3; | |
|
540 | QTest::newRow("3 series, 2 new axis") << 3 << 2; | |
|
541 | QTest::newRow("3 series, 1 new axis") << 3 << 1; | |
|
542 | } | |
|
543 | ||
|
544 | void tst_ChartDataSet::removeAllSeries() | |
|
545 | { | |
|
546 | QFETCH(int, seriesCount); | |
|
547 | QFETCH(int, axisYCount); | |
|
548 | ||
|
549 | ChartDataSet dataSet; | |
|
550 | ||
|
551 | QList<QChartAxis*> axisList; | |
|
552 | ||
|
553 | for (int i = 0; i < axisYCount; i++) { | |
|
554 | QChartAxis* axis = new QChartAxis(); | |
|
555 | axisList << axis; | |
|
556 | } | |
|
557 | ||
|
558 | QList<QChartAxis*>::iterator iterator = axisList.begin(); | |
|
559 | ||
|
560 | for (int i = 0; i < seriesCount; i++) { | |
|
561 | QChartAxis* axisY = 0; | |
|
562 | QLineChartSeries* series = new QLineChartSeries(); | |
|
563 | if (iterator != axisList.end()) { | |
|
564 | axisY = *iterator; | |
|
565 | iterator++; | |
|
566 | } else if (axisList.count() > 0) { | |
|
567 | iterator--; | |
|
568 | axisY = *iterator; | |
|
569 | iterator++; | |
|
570 | } | |
|
571 | dataSet.addSeries(series, axisY); | |
|
572 | } | |
|
573 | ||
|
574 | QSignalSpy spy0(&dataSet, SIGNAL(axisAdded(QChartAxis*))); | |
|
575 | QSignalSpy spy1(&dataSet, SIGNAL(axisLabelsChanged(QChartAxis*, QStringList const&))); | |
|
576 | QSignalSpy spy2(&dataSet, SIGNAL(axisRemoved(QChartAxis*))); | |
|
577 | QSignalSpy spy3(&dataSet, SIGNAL(seriesAdded(QChartSeries*))); | |
|
578 | QSignalSpy spy4(&dataSet, SIGNAL(seriesDomainChanged(QChartSeries*, Domain const&))); | |
|
579 | QSignalSpy spy5(&dataSet, SIGNAL(seriesRemoved(QChartSeries*))); | |
|
580 | ||
|
581 | dataSet.removeAllSeries(); | |
|
582 | //default axis | |
|
583 | if (axisYCount == 0) | |
|
584 | axisYCount++; | |
|
585 | ||
|
586 | QCOMPARE(spy0.count(), 0); | |
|
587 | QCOMPARE(spy1.count(), 0); | |
|
588 | QCOMPARE(spy2.count(), axisYCount); | |
|
589 | QCOMPARE(spy3.count(), 0); | |
|
590 | QCOMPARE(spy4.count(), 0); | |
|
591 | QCOMPARE(spy5.count(), seriesCount); | |
|
592 | ||
|
593 | QCOMPARE(dataSet.domainIndex(), 0); | |
|
594 | } | |
|
595 | ||
|
596 | ||
|
526 | 597 | QTEST_MAIN(tst_ChartDataSet) |
|
527 | 598 | #include "tst_chartdataset.moc" |
|
528 | 599 |
General Comments 0
You need to be logged in to leave comments.
Login now