##// END OF EJS Templates
Add QPieSlice::series() and tests
Jani Honkonen -
r1323:f354dfd88f13
parent child
Show More
@@ -273,6 +273,7 bool QPieSeries::append(QList<QPieSlice*> slices)
273
273
274 foreach (QPieSlice* s, slices) {
274 foreach (QPieSlice* s, slices) {
275 s->setParent(this);
275 s->setParent(this);
276 QPieSlicePrivate::fromSlice(s)->m_series = this;
276 d->m_slices << s;
277 d->m_slices << s;
277 }
278 }
278
279
@@ -329,6 +330,7 bool QPieSeries::insert(int index, QPieSlice* slice)
329 return false;
330 return false;
330
331
331 slice->setParent(this);
332 slice->setParent(this);
333 QPieSlicePrivate::fromSlice(slice)->m_series = this;
332 d->m_slices.insert(index, slice);
334 d->m_slices.insert(index, slice);
333
335
334 d->updateDerivativeData();
336 d->updateDerivativeData();
@@ -452,9 +452,20 qreal QPieSlice::angleSpan() const
452 return d_ptr->m_data.m_angleSpan;
452 return d_ptr->m_data.m_angleSpan;
453 }
453 }
454
454
455 /*!
456 Returns the series that this slice belongs to.
457
458 \sa QPieSeries::append()
459 */
460 QPieSeries *QPieSlice::series() const
461 {
462 return d_ptr->m_series;
463 }
464
455 QPieSlicePrivate::QPieSlicePrivate(QPieSlice *parent)
465 QPieSlicePrivate::QPieSlicePrivate(QPieSlice *parent)
456 :QObject(parent),
466 :QObject(parent),
457 q_ptr(parent)
467 q_ptr(parent),
468 m_series(0)
458 {
469 {
459
470
460 }
471 }
@@ -29,6 +29,7
29
29
30 QTCOMMERCIALCHART_BEGIN_NAMESPACE
30 QTCOMMERCIALCHART_BEGIN_NAMESPACE
31 class QPieSlicePrivate;
31 class QPieSlicePrivate;
32 class QPieSeries;
32
33
33 class QTCOMMERCIALCHART_EXPORT QPieSlice : public QObject
34 class QTCOMMERCIALCHART_EXPORT QPieSlice : public QObject
34 {
35 {
@@ -86,6 +87,8 public:
86 qreal startAngle() const;
87 qreal startAngle() const;
87 qreal angleSpan() const;
88 qreal angleSpan() const;
88
89
90 QPieSeries *series() const;
91
89 Q_SIGNALS:
92 Q_SIGNALS:
90 void labelChanged();
93 void labelChanged();
91 void valueChanged();
94 void valueChanged();
@@ -6,6 +6,7
6 #include "pieslicedata_p.h"
6 #include "pieslicedata_p.h"
7
7
8 QTCOMMERCIALCHART_BEGIN_NAMESPACE
8 QTCOMMERCIALCHART_BEGIN_NAMESPACE
9 class QPieSeries;
9
10
10 class QPieSlicePrivate : public QObject
11 class QPieSlicePrivate : public QObject
11 {
12 {
@@ -27,15 +28,16 public:
27 void setAngleSpan(qreal span);
28 void setAngleSpan(qreal span);
28
29
29 private:
30 private:
30 PieSliceData m_data;
31 friend class QPieSeries;
31
32 private:
33 friend class QPieSeriesPrivate;
32 friend class QPieSeriesPrivate;
34 friend class ChartTheme;
33 friend class ChartTheme;
35 friend class PieChartItem;
34 friend class PieChartItem;
36
35
37 QPieSlice * const q_ptr;
36 QPieSlice * const q_ptr;
38 Q_DECLARE_PUBLIC(QPieSlice)
37 Q_DECLARE_PUBLIC(QPieSlice)
38
39 PieSliceData m_data;
40 QPieSeries *m_series;
39 };
41 };
40
42
41 QTCOMMERCIALCHART_END_NAMESPACE
43 QTCOMMERCIALCHART_END_NAMESPACE
@@ -53,6 +53,7 private slots:
53 void calculatedValues();
53 void calculatedValues();
54 void clickedSignal();
54 void clickedSignal();
55 void hoverSignal();
55 void hoverSignal();
56 void sliceSeries();
56
57
57 private:
58 private:
58 void verifyCalculatedData(const QPieSeries &series, bool *ok);
59 void verifyCalculatedData(const QPieSeries &series, bool *ok);
@@ -531,6 +532,23 void tst_qpieseries::hoverSignal()
531 QCOMPARE(qvariant_cast<bool>(hoverSpy.at(1).at(1)), false);
532 QCOMPARE(qvariant_cast<bool>(hoverSpy.at(1).at(1)), false);
532 }
533 }
533
534
535 void tst_qpieseries::sliceSeries()
536 {
537 QPieSlice *slice = new QPieSlice();
538 QVERIFY(!slice->series());
539 delete slice;
540
541 slice = new QPieSlice(m_series);
542 QVERIFY(!slice->series());
543
544 m_series->append(slice);
545 QCOMPARE(slice->series(), m_series);
546
547 slice = new QPieSlice();
548 m_series->insert(0, slice);
549 QCOMPARE(slice->series(), m_series);
550 }
551
534 QTEST_MAIN(tst_qpieseries)
552 QTEST_MAIN(tst_qpieseries)
535
553
536 #include "tst_qpieseries.moc"
554 #include "tst_qpieseries.moc"
General Comments 0
You need to be logged in to leave comments. Login now