@@ -273,6 +273,7 bool QPieSeries::append(QList<QPieSlice*> slices) | |||
|
273 | 273 | |
|
274 | 274 | foreach (QPieSlice* s, slices) { |
|
275 | 275 | s->setParent(this); |
|
276 | QPieSlicePrivate::fromSlice(s)->m_series = this; | |
|
276 | 277 | d->m_slices << s; |
|
277 | 278 | } |
|
278 | 279 | |
@@ -329,6 +330,7 bool QPieSeries::insert(int index, QPieSlice* slice) | |||
|
329 | 330 | return false; |
|
330 | 331 | |
|
331 | 332 | slice->setParent(this); |
|
333 | QPieSlicePrivate::fromSlice(slice)->m_series = this; | |
|
332 | 334 | d->m_slices.insert(index, slice); |
|
333 | 335 | |
|
334 | 336 | d->updateDerivativeData(); |
@@ -452,9 +452,20 qreal QPieSlice::angleSpan() const | |||
|
452 | 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 | 465 | QPieSlicePrivate::QPieSlicePrivate(QPieSlice *parent) |
|
456 | 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 | 30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
31 | 31 | class QPieSlicePrivate; |
|
32 | class QPieSeries; | |
|
32 | 33 | |
|
33 | 34 | class QTCOMMERCIALCHART_EXPORT QPieSlice : public QObject |
|
34 | 35 | { |
@@ -86,6 +87,8 public: | |||
|
86 | 87 | qreal startAngle() const; |
|
87 | 88 | qreal angleSpan() const; |
|
88 | 89 | |
|
90 | QPieSeries *series() const; | |
|
91 | ||
|
89 | 92 | Q_SIGNALS: |
|
90 | 93 | void labelChanged(); |
|
91 | 94 | void valueChanged(); |
@@ -6,6 +6,7 | |||
|
6 | 6 | #include "pieslicedata_p.h" |
|
7 | 7 | |
|
8 | 8 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
9 | class QPieSeries; | |
|
9 | 10 | |
|
10 | 11 | class QPieSlicePrivate : public QObject |
|
11 | 12 | { |
@@ -27,15 +28,16 public: | |||
|
27 | 28 | void setAngleSpan(qreal span); |
|
28 | 29 | |
|
29 | 30 | private: |
|
30 | PieSliceData m_data; | |
|
31 | ||
|
32 | private: | |
|
31 | friend class QPieSeries; | |
|
33 | 32 | friend class QPieSeriesPrivate; |
|
34 | 33 | friend class ChartTheme; |
|
35 | 34 | friend class PieChartItem; |
|
36 | 35 | |
|
37 | 36 | QPieSlice * const q_ptr; |
|
38 | 37 | Q_DECLARE_PUBLIC(QPieSlice) |
|
38 | ||
|
39 | PieSliceData m_data; | |
|
40 | QPieSeries *m_series; | |
|
39 | 41 | }; |
|
40 | 42 | |
|
41 | 43 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -53,6 +53,7 private slots: | |||
|
53 | 53 | void calculatedValues(); |
|
54 | 54 | void clickedSignal(); |
|
55 | 55 | void hoverSignal(); |
|
56 | void sliceSeries(); | |
|
56 | 57 | |
|
57 | 58 | private: |
|
58 | 59 | void verifyCalculatedData(const QPieSeries &series, bool *ok); |
@@ -531,6 +532,23 void tst_qpieseries::hoverSignal() | |||
|
531 | 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 | 552 | QTEST_MAIN(tst_qpieseries) |
|
535 | 553 | |
|
536 | 554 | #include "tst_qpieseries.moc" |
General Comments 0
You need to be logged in to leave comments.
Login now