@@ -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