@@ -29,6 +29,7 | |||||
29 | #include <QPieSeries> |
|
29 | #include <QPieSeries> | |
30 | #include <QPieSlice> |
|
30 | #include <QPieSlice> | |
31 | #include <QLegendMarker> |
|
31 | #include <QLegendMarker> | |
|
32 | #include <QPieLegendMarker> | |||
32 |
|
33 | |||
33 | QTCOMMERCIALCHART_USE_NAMESPACE |
|
34 | QTCOMMERCIALCHART_USE_NAMESPACE | |
34 |
|
35 | |||
@@ -264,9 +265,8 void MainWidget::showDebugInfo() | |||||
264 | { |
|
265 | { | |
265 | qDebug() << "marker count:" << m_chart->legend()->markers().count(); |
|
266 | qDebug() << "marker count:" << m_chart->legend()->markers().count(); | |
266 | foreach (QLegendMarker* marker, m_chart->legend()->markers()) { |
|
267 | foreach (QLegendMarker* marker, m_chart->legend()->markers()) { | |
267 |
qDebug() << "marker |
|
268 | qDebug() << "marker type:" << marker->type(); | |
268 |
qDebug() << " |
|
269 | qDebug() << "related series:" << marker->series(); | |
269 | qDebug() << "label:" << marker->label(); |
|
|||
270 | } |
|
270 | } | |
271 | } |
|
271 | } | |
272 |
|
272 | |||
@@ -291,23 +291,20 void MainWidget::updateLegendLayout() | |||||
291 | void MainWidget::handleMarkerClicked() |
|
291 | void MainWidget::handleMarkerClicked() | |
292 | { |
|
292 | { | |
293 | QLegendMarker* marker = qobject_cast<QLegendMarker*> (sender()); |
|
293 | QLegendMarker* marker = qobject_cast<QLegendMarker*> (sender()); | |
|
294 | Q_ASSERT(marker); | |||
294 |
|
295 | |||
295 | qDebug() << "marker clicked:" << marker; |
|
296 | switch (marker->type()) | |
296 |
|
||||
297 | switch (marker->series()->type()) |
|
|||
298 | { |
|
297 | { | |
299 |
case Q |
|
298 | case QLegendMarker::LegendMarkerTypePie: | |
300 | { |
|
299 | { | |
301 | // Series type is pie. |
|
300 | QPieLegendMarker *pieMarker = qobject_cast<QPieLegendMarker *> (marker); | |
302 | // The peer object is QPieSlice |
|
301 | QPieSlice* slice = pieMarker->slice(); | |
303 | QPieSlice* slice = qobject_cast<QPieSlice*> (marker->peerObject()); |
|
|||
304 | Q_ASSERT(slice); |
|
|||
305 | slice->setExploded(!slice->isExploded()); |
|
302 | slice->setExploded(!slice->isExploded()); | |
306 | break; |
|
303 | break; | |
307 | } |
|
304 | } | |
308 | default: |
|
305 | default: | |
309 | { |
|
306 | { | |
310 |
qDebug() << "Unknown |
|
307 | qDebug() << "Unknown marker type"; | |
311 | break; |
|
308 | break; | |
312 | } |
|
309 | } | |
313 | } |
|
310 | } |
@@ -50,12 +50,6 QAreaSeries* QAreaLegendMarker::series() | |||||
50 | return d->m_series; |
|
50 | return d->m_series; | |
51 | } |
|
51 | } | |
52 |
|
52 | |||
53 | QAreaSeries* QAreaLegendMarker::peerObject() |
|
|||
54 | { |
|
|||
55 | Q_D(QAreaLegendMarker); |
|
|||
56 | return d->m_series; |
|
|||
57 | } |
|
|||
58 |
|
||||
59 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
53 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
60 |
|
54 | |||
61 | QAreaLegendMarkerPrivate::QAreaLegendMarkerPrivate(QAreaLegendMarker *q, QAreaSeries *series, QLegend *legend) : |
|
55 | QAreaLegendMarkerPrivate::QAreaLegendMarkerPrivate(QAreaLegendMarker *q, QAreaSeries *series, QLegend *legend) : |
@@ -38,16 +38,14 public: | |||||
38 | explicit QAreaLegendMarker(QAreaSeries* series, QLegend *legend, QObject *parent = 0); |
|
38 | explicit QAreaLegendMarker(QAreaSeries* series, QLegend *legend, QObject *parent = 0); | |
39 | virtual ~QAreaLegendMarker(); |
|
39 | virtual ~QAreaLegendMarker(); | |
40 |
|
40 | |||
41 | virtual QAreaSeries* series(); |
|
41 | virtual LegendMarkerType type() { return LegendMarkerTypeArea; } | |
42 | virtual QAreaSeries* peerObject(); // TODO: rename to slice and remove these virtuals from base class? |
|
42 | ||
|
43 | // Related series | |||
|
44 | QAreaSeries* series(); | |||
43 |
|
45 | |||
44 | protected: |
|
46 | protected: | |
45 | QAreaLegendMarker(QAreaLegendMarkerPrivate &d, QObject *parent = 0); |
|
47 | QAreaLegendMarker(QAreaLegendMarkerPrivate &d, QObject *parent = 0); | |
46 |
|
48 | |||
47 | //Q_SIGNALS: |
|
|||
48 |
|
||||
49 | //public Q_SLOTS: |
|
|||
50 |
|
||||
51 | private: |
|
49 | private: | |
52 | Q_DECLARE_PRIVATE(QAreaLegendMarker) |
|
50 | Q_DECLARE_PRIVATE(QAreaLegendMarker) | |
53 | Q_DISABLE_COPY(QAreaLegendMarker) |
|
51 | Q_DISABLE_COPY(QAreaLegendMarker) |
@@ -50,7 +50,7 QAbstractBarSeries *QBarLegendMarker::series() | |||||
50 | return d->m_series; |
|
50 | return d->m_series; | |
51 | } |
|
51 | } | |
52 |
|
52 | |||
53 |
QBarSet* QBarLegendMarker:: |
|
53 | QBarSet* QBarLegendMarker::barset() | |
54 | { |
|
54 | { | |
55 | Q_D(QBarLegendMarker); |
|
55 | Q_D(QBarLegendMarker); | |
56 | return d->m_barset; |
|
56 | return d->m_barset; |
@@ -37,16 +37,15 public: | |||||
37 | explicit QBarLegendMarker(QAbstractBarSeries* series, QBarSet* barset, QLegend *legend, QObject *parent = 0); |
|
37 | explicit QBarLegendMarker(QAbstractBarSeries* series, QBarSet* barset, QLegend *legend, QObject *parent = 0); | |
38 | virtual ~QBarLegendMarker(); |
|
38 | virtual ~QBarLegendMarker(); | |
39 |
|
39 | |||
40 | virtual QAbstractBarSeries* series(); |
|
40 | virtual LegendMarkerType type() { return LegendMarkerTypeBar; } | |
41 | virtual QBarSet* peerObject(); // TODO: rename to slice and remove these virtuals from base class? |
|
41 | ||
|
42 | // Related series and barset | |||
|
43 | QAbstractBarSeries* series(); | |||
|
44 | QBarSet* barset(); | |||
42 |
|
45 | |||
43 | protected: |
|
46 | protected: | |
44 | QBarLegendMarker(QBarLegendMarkerPrivate &d, QObject *parent = 0); |
|
47 | QBarLegendMarker(QBarLegendMarkerPrivate &d, QObject *parent = 0); | |
45 |
|
48 | |||
46 | //Q_SIGNALS: |
|
|||
47 |
|
||||
48 | //public Q_SLOTS: |
|
|||
49 |
|
||||
50 | private: |
|
49 | private: | |
51 | Q_DECLARE_PRIVATE(QBarLegendMarker) |
|
50 | Q_DECLARE_PRIVATE(QBarLegendMarker) | |
52 | Q_DISABLE_COPY(QBarLegendMarker) |
|
51 | Q_DISABLE_COPY(QBarLegendMarker) |
@@ -33,19 +33,25 class QLegendMarkerPrivate; | |||||
33 | class QAbstractSeries; |
|
33 | class QAbstractSeries; | |
34 | class QLegend; |
|
34 | class QLegend; | |
35 |
|
35 | |||
36 | // TODO: should this be QAbstractLegendMarker? |
|
|||
37 | class QTCOMMERCIALCHART_EXPORT QLegendMarker : public QObject |
|
36 | class QTCOMMERCIALCHART_EXPORT QLegendMarker : public QObject | |
38 | { |
|
37 | { | |
39 | Q_OBJECT |
|
38 | Q_OBJECT | |
40 |
|
39 | |||
41 | // TODO: need for these? |
|
40 | enum LegendMarkerType { | |
|
41 | LegendMarkerTypeArea, | |||
|
42 | LegendMarkerTypeBar, | |||
|
43 | LegendMarkerTypePie, | |||
|
44 | LegendMarkerTypeXY | |||
|
45 | }; | |||
|
46 | ||||
|
47 | // TODO: | |||
42 | // Q_PROPERTY(QString label READ label WRITE setlabel NOTIFY labelChanged); |
|
48 | // Q_PROPERTY(QString label READ label WRITE setlabel NOTIFY labelChanged); | |
43 | // Q_PROPERTY(QPen pen READ pen WRITE setPen NOTIFY penChanged); |
|
49 | // Q_PROPERTY(QPen pen READ pen WRITE setPen NOTIFY penChanged); | |
44 | // Q_PROPERTY(QBrush brush READ brush WRITE setBrush NOTIFY brushChanged); |
|
50 | // Q_PROPERTY(QBrush brush READ brush WRITE setBrush NOTIFY brushChanged); | |
45 |
|
51 | |||
46 | public: |
|
52 | public: | |
47 | // explicit QLegendMarker(QAbstractSeries* series, QObject *parent = 0); |
|
|||
48 | virtual ~QLegendMarker(); |
|
53 | virtual ~QLegendMarker(); | |
|
54 | virtual LegendMarkerType type() = 0; | |||
49 |
|
55 | |||
50 | QString label() const; |
|
56 | QString label() const; | |
51 | void setLabel(const QString &label); |
|
57 | void setLabel(const QString &label); | |
@@ -65,10 +71,6 public: | |||||
65 | bool isVisible() const; |
|
71 | bool isVisible() const; | |
66 | void setVisible(bool visible); |
|
72 | void setVisible(bool visible); | |
67 |
|
73 | |||
68 | // virtual QAbstractSeries::SeriesType type() = 0; // TODO? Or use LegendMarker type enum? |
|
|||
69 | virtual QAbstractSeries* series() = 0; // TODO: remove these and use specialised functions on derived classes? |
|
|||
70 | virtual QObject* peerObject() = 0; |
|
|||
71 |
|
||||
72 | protected: |
|
74 | protected: | |
73 | explicit QLegendMarker(QLegendMarkerPrivate &d, QObject *parent = 0); |
|
75 | explicit QLegendMarker(QLegendMarkerPrivate &d, QObject *parent = 0); | |
74 |
|
76 |
@@ -50,7 +50,7 QPieSeries* QPieLegendMarker::series() | |||||
50 | return d->m_series; |
|
50 | return d->m_series; | |
51 | } |
|
51 | } | |
52 |
|
52 | |||
53 |
QPieSlice* QPieLegendMarker:: |
|
53 | QPieSlice* QPieLegendMarker::slice() | |
54 | { |
|
54 | { | |
55 | Q_D(QPieLegendMarker); |
|
55 | Q_D(QPieLegendMarker); | |
56 | return d->m_slice; |
|
56 | return d->m_slice; |
@@ -39,16 +39,15 public: | |||||
39 | explicit QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QLegend *legend, QObject *parent = 0); |
|
39 | explicit QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QLegend *legend, QObject *parent = 0); | |
40 | virtual ~QPieLegendMarker(); |
|
40 | virtual ~QPieLegendMarker(); | |
41 |
|
41 | |||
42 | virtual QPieSeries* series(); |
|
42 | virtual LegendMarkerType type() { return LegendMarkerTypePie; } | |
43 | virtual QPieSlice* peerObject(); // TODO: rename to slice and remove these virtuals from base class? |
|
43 | ||
|
44 | // Related series and slice | |||
|
45 | QPieSeries* series(); | |||
|
46 | QPieSlice* slice(); | |||
44 |
|
47 | |||
45 | protected: |
|
48 | protected: | |
46 | QPieLegendMarker(QPieLegendMarkerPrivate &d, QObject *parent = 0); |
|
49 | QPieLegendMarker(QPieLegendMarkerPrivate &d, QObject *parent = 0); | |
47 |
|
50 | |||
48 | //Q_SIGNALS: |
|
|||
49 |
|
||||
50 | //public Q_SLOTS: |
|
|||
51 |
|
||||
52 | private: |
|
51 | private: | |
53 | Q_DECLARE_PRIVATE(QPieLegendMarker) |
|
52 | Q_DECLARE_PRIVATE(QPieLegendMarker) | |
54 | Q_DISABLE_COPY(QPieLegendMarker) |
|
53 | Q_DISABLE_COPY(QPieLegendMarker) |
@@ -50,12 +50,6 QXYSeries* QXYLegendMarker::series() | |||||
50 | return d->m_series; |
|
50 | return d->m_series; | |
51 | } |
|
51 | } | |
52 |
|
52 | |||
53 | QXYSeries* QXYLegendMarker::peerObject() |
|
|||
54 | { |
|
|||
55 | Q_D(QXYLegendMarker); |
|
|||
56 | return d->m_series; |
|
|||
57 | } |
|
|||
58 |
|
||||
59 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
53 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
60 |
|
54 | |||
61 | QXYLegendMarkerPrivate::QXYLegendMarkerPrivate(QXYLegendMarker *q, QXYSeries *series, QLegend *legend) : |
|
55 | QXYLegendMarkerPrivate::QXYLegendMarkerPrivate(QXYLegendMarker *q, QXYSeries *series, QLegend *legend) : |
@@ -36,16 +36,14 public: | |||||
36 | explicit QXYLegendMarker(QXYSeries* series, QLegend *legend, QObject *parent = 0); |
|
36 | explicit QXYLegendMarker(QXYSeries* series, QLegend *legend, QObject *parent = 0); | |
37 | virtual ~QXYLegendMarker(); |
|
37 | virtual ~QXYLegendMarker(); | |
38 |
|
38 | |||
39 | virtual QXYSeries* series(); |
|
39 | virtual LegendMarkerType type() { return LegendMarkerTypeXY; } | |
40 | virtual QXYSeries* peerObject(); // TODO: rename to slice and remove these virtuals from base class? |
|
40 | ||
|
41 | // Related series | |||
|
42 | QXYSeries* series(); | |||
41 |
|
43 | |||
42 | protected: |
|
44 | protected: | |
43 | QXYLegendMarker(QXYLegendMarkerPrivate &d, QObject *parent = 0); |
|
45 | QXYLegendMarker(QXYLegendMarkerPrivate &d, QObject *parent = 0); | |
44 |
|
46 | |||
45 | //Q_SIGNALS: |
|
|||
46 |
|
||||
47 | //public Q_SLOTS: |
|
|||
48 |
|
||||
49 | private: |
|
47 | private: | |
50 | Q_DECLARE_PRIVATE(QXYLegendMarker) |
|
48 | Q_DECLARE_PRIVATE(QXYLegendMarker) | |
51 | Q_DISABLE_COPY(QXYLegendMarker) |
|
49 | Q_DISABLE_COPY(QXYLegendMarker) |
General Comments 0
You need to be logged in to leave comments.
Login now