@@ -24,6 +24,10 | |||
|
24 | 24 | #include "qlegend_p.h" |
|
25 | 25 | #include "chartlayout_p.h" |
|
26 | 26 | |
|
27 | #include "qlegendmarker_p.h" | |
|
28 | #include "legendmarkeritem_p.h" | |
|
29 | #include "qlegendmarker.h" | |
|
30 | ||
|
27 | 31 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | 32 | |
|
29 | 33 | LegendLayout::LegendLayout(QLegend *legend) |
@@ -125,52 +129,84 void LegendLayout::setAttachedGeometry(const QRectF &rect) | |||
|
125 | 129 | |
|
126 | 130 | QRectF geometry = rect.adjusted(left, top, -right, -bottom); |
|
127 | 131 | |
|
128 |
switch |
|
|
132 | switch(m_legend->alignment()) { | |
|
129 | 133 | case Qt::AlignTop: |
|
130 | 134 | case Qt::AlignBottom: { |
|
131 |
QPointF point(0, |
|
|
132 | foreach (LegendMarker *marker, m_legend->d_ptr->markers()) { | |
|
133 | if (marker->isVisible()) { | |
|
134 |
marker-> |
|
|
135 | marker->setPos(point.x(), geometry.height() / 2 - marker->boundingRect().height() / 2); | |
|
136 | const QRectF &rect = marker->boundingRect(); | |
|
137 | size = size.expandedTo(rect.size()); | |
|
138 |
|
|
|
139 |
|
|
|
140 | point.setX(point.x() + w); | |
|
135 | QPointF point(0,0); | |
|
136 | /* | |
|
137 | foreach (LegendMarker* marker, m_legend->d_ptr->markers()) { | |
|
138 | if (marker->isVisible()) { | |
|
139 | marker->setGeometry(geometry); | |
|
140 | marker->setPos(point.x(),geometry.height()/2 - marker->boundingRect().height()/2); | |
|
141 | const QRectF& rect = marker->boundingRect(); | |
|
142 | size = size.expandedTo(rect.size()); | |
|
143 | qreal w = rect.width(); | |
|
144 | m_width+=w; | |
|
145 | point.setX(point.x() + w); | |
|
146 | } | |
|
147 | } | |
|
148 | */ | |
|
149 | // New markers -->> | |
|
150 | foreach (QLegendMarker* marker, m_legend->d_ptr->legendMarkers()) { | |
|
151 | if (marker->isVisible()) { | |
|
152 | LegendMarkerItem* item = marker->d_ptr.data()->item(); | |
|
153 | item->setGeometry(geometry); | |
|
154 | item->setPos(point.x(),geometry.height()/2 - item->boundingRect().height()/2); | |
|
155 | const QRectF& rect = item->boundingRect(); | |
|
156 | size = size.expandedTo(rect.size()); | |
|
157 | qreal w = rect.width(); | |
|
158 | m_width+=w; | |
|
159 | point.setX(point.x() + w); | |
|
160 | } | |
|
141 | 161 | } |
|
162 | // <<-- New markers | |
|
163 | if (m_width < geometry.width()) | |
|
164 | m_legend->d_ptr->items()->setPos(geometry.width() / 2 - m_width / 2, geometry.top()); | |
|
165 | else | |
|
166 | m_legend->d_ptr->items()->setPos(geometry.topLeft()); | |
|
167 | m_height = size.height(); | |
|
142 | 168 | } |
|
143 | if (m_width < geometry.width()) | |
|
144 | m_legend->d_ptr->items()->setPos(geometry.width() / 2 - m_width / 2, geometry.top()); | |
|
145 | else | |
|
146 | m_legend->d_ptr->items()->setPos(geometry.topLeft()); | |
|
147 | m_height = size.height(); | |
|
148 | } | |
|
149 | break; | |
|
169 | break; | |
|
150 | 170 | case Qt::AlignLeft: |
|
151 | 171 | case Qt::AlignRight: { |
|
152 |
QPointF point(0, |
|
|
153 | foreach (LegendMarker *marker, m_legend->d_ptr->markers()) { | |
|
154 | if (marker->isVisible()) { | |
|
155 |
marker-> |
|
|
156 |
marker->set |
|
|
157 |
|
|
|
158 | qreal h = rect.height(); | |
|
159 |
|
|
|
160 | m_height += h; | |
|
161 | point.setY(point.y() + h); | |
|
172 | QPointF point(0,0); | |
|
173 | /* | |
|
174 | foreach (LegendMarker* marker, m_legend->d_ptr->markers()) { | |
|
175 | if (marker->isVisible()) { | |
|
176 | marker->setGeometry(geometry); | |
|
177 | marker->setPos(point); | |
|
178 | const QRectF& rect = marker->boundingRect(); | |
|
179 | qreal h = rect.height(); | |
|
180 | size = size.expandedTo(rect.size()); | |
|
181 | m_height+=h; | |
|
182 | point.setY(point.y() + h); | |
|
183 | } | |
|
184 | } | |
|
185 | */ | |
|
186 | // New markers -->> | |
|
187 | foreach (QLegendMarker* marker, m_legend->d_ptr->legendMarkers()) { | |
|
188 | if (marker->isVisible()) { | |
|
189 | LegendMarkerItem* item = marker->d_ptr.data()->item(); | |
|
190 | item->setGeometry(geometry); | |
|
191 | item->setPos(point); | |
|
192 | const QRectF& rect = item->boundingRect(); | |
|
193 | qreal h = rect.height(); | |
|
194 | size = size.expandedTo(rect.size()); | |
|
195 | m_height+=h; | |
|
196 | point.setY(point.y() + h); | |
|
197 | } | |
|
198 | } | |
|
199 | // <<--- New markers | |
|
200 | ||
|
201 | if (m_height < geometry.height()) | |
|
202 | m_legend->d_ptr->items()->setPos(geometry.left(), geometry.height() / 2 - m_height / 2); | |
|
203 | else | |
|
204 | m_legend->d_ptr->items()->setPos(geometry.topLeft()); | |
|
205 | m_width = size.width(); | |
|
206 | break; | |
|
162 | 207 | } |
|
163 | 208 | } |
|
164 | 209 | |
|
165 | if (m_height < geometry.height()) | |
|
166 | m_legend->d_ptr->items()->setPos(geometry.left(), geometry.height() / 2 - m_height / 2); | |
|
167 | else | |
|
168 | m_legend->d_ptr->items()->setPos(geometry.topLeft()); | |
|
169 | m_width = size.width(); | |
|
170 | break; | |
|
171 | } | |
|
172 | } | |
|
173 | ||
|
174 | 210 | m_minOffsetX = -left; |
|
175 | 211 | m_minOffsetY = - top; |
|
176 | 212 | m_maxOffsetX = m_width - geometry.width() - right; |
@@ -348,6 +384,7 void LegendLayout::setDettachedGeometry(const QRectF &rect) | |||
|
348 | 384 | |
|
349 | 385 | QSizeF LegendLayout::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const |
|
350 | 386 | { |
|
387 | /* | |
|
351 | 388 | QSizeF size(0, 0); |
|
352 | 389 | qreal left, top, right, bottom; |
|
353 | 390 | getContentsMargins(&left, &top, &right, &bottom); |
@@ -379,6 +416,49 QSizeF LegendLayout::sizeHint(Qt::SizeHint which, const QSizeF &constraint) cons | |||
|
379 | 416 | } |
|
380 | 417 | size += QSize(left + right, top + bottom); |
|
381 | 418 | return size; |
|
419 | */ | |
|
420 | // New markers -->> | |
|
421 | QSizeF size(0, 0); | |
|
422 | qreal left, top, right, bottom; | |
|
423 | getContentsMargins(&left, &top, &right, &bottom); | |
|
424 | ||
|
425 | if(constraint.isValid()) { | |
|
426 | foreach(QLegendMarker* marker, m_legend->d_ptr->legendMarkers()) { | |
|
427 | LegendMarkerItem *item = marker->d_ptr.data()->item(); | |
|
428 | size = size.expandedTo(item->effectiveSizeHint(which)); | |
|
429 | } | |
|
430 | size = size.boundedTo(constraint); | |
|
431 | } | |
|
432 | else if (constraint.width() >= 0) { | |
|
433 | qreal width = 0; | |
|
434 | qreal height = 0; | |
|
435 | foreach(QLegendMarker* marker, m_legend->d_ptr->legendMarkers()) { | |
|
436 | LegendMarkerItem *item = marker->d_ptr.data()->item(); | |
|
437 | width+=item->effectiveSizeHint(which).width(); | |
|
438 | height=qMax(height,item->effectiveSizeHint(which).height()); | |
|
439 | } | |
|
440 | ||
|
441 | size = QSizeF(qMin(constraint.width(),width), height); | |
|
442 | } | |
|
443 | else if (constraint.height() >= 0) { | |
|
444 | qreal width = 0; | |
|
445 | qreal height = 0; | |
|
446 | foreach(QLegendMarker* marker, m_legend->d_ptr->legendMarkers()) { | |
|
447 | LegendMarkerItem *item = marker->d_ptr.data()->item(); | |
|
448 | width=qMax(width,item->effectiveSizeHint(which).width()); | |
|
449 | height+=height,item->effectiveSizeHint(which).height(); | |
|
450 | } | |
|
451 | size = QSizeF(width,qMin(constraint.height(),height)); | |
|
452 | } | |
|
453 | else { | |
|
454 | foreach(QLegendMarker* marker, m_legend->d_ptr->legendMarkers()) { | |
|
455 | LegendMarkerItem *item = marker->d_ptr.data()->item(); | |
|
456 | size = size.expandedTo(item->effectiveSizeHint(which)); | |
|
457 | } | |
|
458 | } | |
|
459 | size += QSize(left + right, top + bottom); | |
|
460 | return size; | |
|
461 | // <<-- New markers | |
|
382 | 462 | } |
|
383 | 463 | |
|
384 | 464 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -33,15 +33,17 LegendMarkerItem::LegendMarkerItem(QLegendMarkerPrivate *marker, QGraphicsObject | |||
|
33 | 33 | QGraphicsObject(parent), |
|
34 | 34 | m_marker(marker), |
|
35 | 35 | m_markerRect(0,0,10.0,10.0), |
|
36 | m_boundingRect(0,0,0,0), | |
|
36 | m_boundingRect(0,0,10,10), | |
|
37 | 37 | m_textItem(new QGraphicsSimpleTextItem(this)), |
|
38 | 38 | m_rectItem(new QGraphicsRectItem(this)), |
|
39 | 39 | m_margin(4), |
|
40 | 40 | m_space(4) |
|
41 | 41 | { |
|
42 | qDebug() << "LegendMarkerItem created for marker:" << m_marker; | |
|
42 | // qDebug() << "LegendMarkerItem created for marker:" << m_marker; | |
|
43 | 43 | setAcceptedMouseButtons(Qt::LeftButton|Qt::RightButton); |
|
44 | 44 | m_rectItem->setRect(m_markerRect); |
|
45 | // setZValue(zValue() + 20); | |
|
46 | // qDebug() << "z:" << this->zValue(); | |
|
45 | 47 | } |
|
46 | 48 | |
|
47 | 49 | void LegendMarkerItem::setPen(const QPen &pen) |
@@ -79,6 +81,7 QFont LegendMarkerItem::font() const | |||
|
79 | 81 | |
|
80 | 82 | void LegendMarkerItem::setLabel(const QString label) |
|
81 | 83 | { |
|
84 | qDebug() << "LegendMarkerItem::setlabel" << label; | |
|
82 | 85 | m_text = label; |
|
83 | 86 | updateGeometry(); |
|
84 | 87 | } |
@@ -88,11 +91,6 QString LegendMarkerItem::label() const | |||
|
88 | 91 | return m_text; |
|
89 | 92 | } |
|
90 | 93 | |
|
91 | QRectF LegendMarkerItem::boundingRect() const | |
|
92 | { | |
|
93 | return m_boundingRect; | |
|
94 | } | |
|
95 | ||
|
96 | 94 | void LegendMarkerItem::setLabelBrush(const QBrush &brush) |
|
97 | 95 | { |
|
98 | 96 | m_textItem->setBrush(brush); |
@@ -103,10 +101,9 QBrush LegendMarkerItem::labelBrush() const | |||
|
103 | 101 | return m_textItem->brush(); |
|
104 | 102 | } |
|
105 | 103 | |
|
106 | ||
|
107 | 104 | void LegendMarkerItem::setGeometry(const QRectF& rect) |
|
108 | 105 | { |
|
109 |
QFontMetrics fn (font |
|
|
106 | QFontMetrics fn (m_font); | |
|
110 | 107 | |
|
111 | 108 | int width = rect.width(); |
|
112 | 109 | qreal x = m_margin + m_markerRect.width() + m_space + m_margin; |
@@ -133,6 +130,11 void LegendMarkerItem::setGeometry(const QRectF& rect) | |||
|
133 | 130 | m_boundingRect = QRectF(0,0,x+textRect.width()+m_margin,y); |
|
134 | 131 | } |
|
135 | 132 | |
|
133 | QRectF LegendMarkerItem::boundingRect() const | |
|
134 | { | |
|
135 | return m_boundingRect; | |
|
136 | } | |
|
137 | ||
|
136 | 138 | void LegendMarkerItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) |
|
137 | 139 | { |
|
138 | 140 | Q_UNUSED(option) |
@@ -32,6 +32,7 | |||
|
32 | 32 | |
|
33 | 33 | #include "qchartglobal.h" |
|
34 | 34 | #include <QGraphicsObject> |
|
35 | #include <QFont> | |
|
35 | 36 | #include <QBrush> |
|
36 | 37 | #include <QPen> |
|
37 | 38 | #include <QGraphicsSimpleTextItem> |
@@ -46,7 +47,6 class LegendMarkerItem : public QGraphicsObject, public QGraphicsLayoutItem | |||
|
46 | 47 | Q_OBJECT |
|
47 | 48 | Q_INTERFACES(QGraphicsLayoutItem) |
|
48 | 49 | public: |
|
49 | // explicit LegendMarkerItem(QAbstractSeries *m_series, QGraphicsObject *parent = 0); | |
|
50 | 50 | explicit LegendMarkerItem(QLegendMarkerPrivate *marker, QGraphicsObject *parent = 0); |
|
51 | 51 | |
|
52 | 52 | void setPen(const QPen &pen); |
@@ -77,7 +77,7 protected: | |||
|
77 | 77 | void mousePressEvent(QGraphicsSceneMouseEvent *event); |
|
78 | 78 | |
|
79 | 79 | protected: |
|
80 | QLegendMarkerPrivate *m_marker; | |
|
80 | QLegendMarkerPrivate *m_marker; // Knows | |
|
81 | 81 | QRectF m_markerRect; |
|
82 | 82 | QRectF m_boundingRect; |
|
83 | 83 | QGraphicsSimpleTextItem *m_textItem; |
@@ -86,6 +86,15 protected: | |||
|
86 | 86 | qreal m_space; |
|
87 | 87 | QString m_text; |
|
88 | 88 | |
|
89 | QString m_label; | |
|
90 | QBrush m_labelBrush; | |
|
91 | QFont m_font; | |
|
92 | QPen m_pen; | |
|
93 | QBrush m_brush; | |
|
94 | bool m_visible; | |
|
95 | ||
|
96 | friend class QLegendMarkerPrivate; | |
|
97 | friend class LegendLayout; | |
|
89 | 98 | }; |
|
90 | 99 | |
|
91 | 100 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -510,9 +510,7 void QLegendPrivate::handleSeriesAdded(QAbstractSeries *series, Domain *domain) | |||
|
510 | 510 | marker->setFont(m_font); |
|
511 | 511 | marker->setLabelBrush(m_labelBrush); |
|
512 | 512 | marker->setVisible(series->isVisible()); |
|
513 | // TODO: possible hazard. What if marker is deleted and group still has pointer? | |
|
514 | 513 | m_items->addToGroup(marker->d_ptr.data()->item()); |
|
515 | // qDebug() << "item:" << marker->d_ptr.data()->item(); | |
|
516 | 514 | m_legendMarkers << marker; |
|
517 | 515 | } |
|
518 | 516 |
@@ -44,77 +44,69 QLegendMarker::~QLegendMarker() | |||
|
44 | 44 | |
|
45 | 45 | QString QLegendMarker::label() const |
|
46 | 46 | { |
|
47 |
return d_ptr-> |
|
|
47 | return d_ptr->label(); | |
|
48 | 48 | } |
|
49 | 49 | |
|
50 | 50 | void QLegendMarker::setLabel(const QString &label) |
|
51 | 51 | { |
|
52 |
d_ptr-> |
|
|
52 | d_ptr->setLabel(label); | |
|
53 | 53 | } |
|
54 | 54 | |
|
55 | 55 | QBrush QLegendMarker::labelBrush() const |
|
56 | 56 | { |
|
57 |
return d_ptr-> |
|
|
57 | return d_ptr->labelBrush(); | |
|
58 | 58 | } |
|
59 | 59 | |
|
60 | 60 | void QLegendMarker::setLabelBrush(const QBrush &brush) |
|
61 | 61 | { |
|
62 |
d_ptr-> |
|
|
62 | d_ptr->setLabelBrush(brush); | |
|
63 | 63 | } |
|
64 | 64 | |
|
65 | 65 | QFont QLegendMarker::font() const |
|
66 | 66 | { |
|
67 |
return d_ptr-> |
|
|
67 | return d_ptr->font(); | |
|
68 | 68 | } |
|
69 | 69 | |
|
70 | 70 | void QLegendMarker::setFont(const QFont &font) |
|
71 | 71 | { |
|
72 |
d_ptr-> |
|
|
72 | d_ptr->setFont(font); | |
|
73 | 73 | } |
|
74 | 74 | |
|
75 | 75 | QPen QLegendMarker::pen() const |
|
76 | 76 | { |
|
77 |
return d_ptr-> |
|
|
77 | return d_ptr->pen(); | |
|
78 | 78 | } |
|
79 | 79 | |
|
80 | 80 | void QLegendMarker::setPen(const QPen &pen) |
|
81 | 81 | { |
|
82 |
d_ptr-> |
|
|
82 | d_ptr->setPen(pen); | |
|
83 | 83 | } |
|
84 | 84 | |
|
85 | 85 | QBrush QLegendMarker::brush() const |
|
86 | 86 | { |
|
87 |
return d_ptr-> |
|
|
87 | return d_ptr->brush(); | |
|
88 | 88 | } |
|
89 | 89 | |
|
90 | 90 | void QLegendMarker::setBrush(const QBrush &brush) |
|
91 | 91 | { |
|
92 |
d_ptr-> |
|
|
92 | d_ptr->setBrush(brush); | |
|
93 | 93 | } |
|
94 | 94 | |
|
95 | 95 | bool QLegendMarker::isVisible() const |
|
96 | 96 | { |
|
97 |
return d_ptr-> |
|
|
97 | return d_ptr->isVisible(); | |
|
98 | 98 | } |
|
99 | 99 | |
|
100 | 100 | void QLegendMarker::setVisible(bool visible) |
|
101 | 101 | { |
|
102 |
d_ptr-> |
|
|
102 | d_ptr->setVisible(visible); | |
|
103 | 103 | } |
|
104 | 104 | |
|
105 | 105 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
106 | /* | |
|
107 | QLegendMarkerPrivate::QLegendMarkerPrivate(QAbstractSeries *series, QLegendMarker *q) : | |
|
108 | q_ptr(q), | |
|
109 | m_series(series) | |
|
110 | { | |
|
111 | m_item = new LegendMarkerItem(m_series); | |
|
112 | } | |
|
113 | */ | |
|
114 | 106 | QLegendMarkerPrivate::QLegendMarkerPrivate(QLegendMarker *q) : |
|
115 | 107 | q_ptr(q) |
|
116 | 108 | { |
|
117 | qDebug() << "QLegendMarkerPrivate created"; | |
|
109 | // qDebug() << "QLegendMarkerPrivate created"; | |
|
118 | 110 | m_item = new LegendMarkerItem(this); |
|
119 | 111 | } |
|
120 | 112 | |
@@ -130,6 +122,66 void QLegendMarkerPrivate::handleMousePressEvent(QGraphicsSceneEvent *event) | |||
|
130 | 122 | emit q->clicked(); |
|
131 | 123 | } |
|
132 | 124 | |
|
125 | void QLegendMarkerPrivate::setPen(const QPen &pen) | |
|
126 | { | |
|
127 | m_item->setPen(pen); | |
|
128 | } | |
|
129 | ||
|
130 | QPen QLegendMarkerPrivate::pen() const | |
|
131 | { | |
|
132 | return m_item->pen(); | |
|
133 | } | |
|
134 | ||
|
135 | void QLegendMarkerPrivate::setBrush(const QBrush &brush) | |
|
136 | { | |
|
137 | m_item->setBrush(brush); | |
|
138 | } | |
|
139 | ||
|
140 | QBrush QLegendMarkerPrivate::brush() const | |
|
141 | { | |
|
142 | return m_item->brush(); | |
|
143 | } | |
|
144 | ||
|
145 | void QLegendMarkerPrivate::setFont(const QFont &font) | |
|
146 | { | |
|
147 | m_item->setFont(font); | |
|
148 | } | |
|
149 | ||
|
150 | QFont QLegendMarkerPrivate::font() const | |
|
151 | { | |
|
152 | return m_item->font(); | |
|
153 | } | |
|
154 | ||
|
155 | void QLegendMarkerPrivate::setLabel(const QString label) | |
|
156 | { | |
|
157 | m_item->setLabel(label); | |
|
158 | } | |
|
159 | ||
|
160 | QString QLegendMarkerPrivate::label() const | |
|
161 | { | |
|
162 | return m_item->label(); | |
|
163 | } | |
|
164 | ||
|
165 | void QLegendMarkerPrivate::setLabelBrush(const QBrush &brush) | |
|
166 | { | |
|
167 | m_item->setLabelBrush(brush); | |
|
168 | } | |
|
169 | ||
|
170 | QBrush QLegendMarkerPrivate::labelBrush() const | |
|
171 | { | |
|
172 | return m_item->labelBrush(); | |
|
173 | } | |
|
174 | ||
|
175 | bool QLegendMarkerPrivate::isVisible() const | |
|
176 | { | |
|
177 | return m_item->isVisible(); | |
|
178 | } | |
|
179 | ||
|
180 | void QLegendMarkerPrivate::setVisible(bool visible) | |
|
181 | { | |
|
182 | m_item->setVisible(visible); | |
|
183 | } | |
|
184 | ||
|
133 | 185 | |
|
134 | 186 | #include "moc_qlegendmarker.cpp" |
|
135 | 187 | #include "moc_qlegendmarker_p.cpp" |
@@ -75,14 +75,12 Q_SIGNALS: | |||
|
75 | 75 | void clicked(); |
|
76 | 76 | void hovered(bool status); |
|
77 | 77 | |
|
78 | public Q_SLOTS: | |
|
79 | virtual void updated() = 0; // TODO: private. Idea is that series signals, when some property has changed | |
|
80 | ||
|
81 | 78 | protected: |
|
82 | 79 | QScopedPointer<QLegendMarkerPrivate> d_ptr; |
|
83 | 80 | Q_DISABLE_COPY(QLegendMarker) |
|
84 | 81 | friend class QLegendPrivate; |
|
85 | 82 | friend class QLegendMarkerPrivate; |
|
83 | friend class LegendLayout; | |
|
86 | 84 | }; |
|
87 | 85 | |
|
88 | 86 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -60,7 +60,7 public: | |||
|
60 | 60 | // explicit QLegendMarkerPrivate(QAbstractSeries *series, QLegendMarker *q); |
|
61 | 61 | explicit QLegendMarkerPrivate(QLegendMarker *q); |
|
62 | 62 | virtual ~QLegendMarkerPrivate(); |
|
63 | /* | |
|
63 | ||
|
64 | 64 | void setPen(const QPen &pen); |
|
65 | 65 | QPen pen() const; |
|
66 | 66 | |
@@ -75,7 +75,10 public: | |||
|
75 | 75 | |
|
76 | 76 | void setLabelBrush(const QBrush &brush); |
|
77 | 77 | QBrush labelBrush() const; |
|
78 | */ | |
|
78 | ||
|
79 | bool isVisible() const; | |
|
80 | void setVisible(bool visible); | |
|
81 | ||
|
79 | 82 | // Helper for now. |
|
80 | 83 | LegendMarkerItem* item() const { return m_item; } |
|
81 | 84 | |
@@ -95,13 +98,14 private: | |||
|
95 | 98 | */ |
|
96 | 99 | |
|
97 | 100 | // New legend marker properties |
|
101 | /* | |
|
98 | 102 | QString m_label; |
|
99 | 103 | QBrush m_labelBrush; |
|
100 | 104 | QFont m_font; |
|
101 | 105 | QPen m_pen; |
|
102 | 106 | QBrush m_brush; |
|
103 | 107 | bool m_visible; |
|
104 | ||
|
108 | */ | |
|
105 | 109 | friend class QLegendPrivate; // TODO: Is this needed? |
|
106 | 110 | Q_DECLARE_PUBLIC(QLegendMarker) |
|
107 | 111 | }; |
@@ -24,23 +24,14 | |||
|
24 | 24 | #include <QDebug> |
|
25 | 25 | |
|
26 | 26 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | /* | |
|
27 | ||
|
28 | 28 | QPieLegendMarker::QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QObject *parent) : |
|
29 |
QLegendMarker(series, parent) |
|
|
30 | d_ptr(new QPieLegendMarkerPrivate(series,slice,this)) | |
|
29 | QLegendMarker(*new QPieLegendMarkerPrivate(series,slice,this), parent) | |
|
31 | 30 | { |
|
32 | QObject::connect(slice, SIGNAL(labelChanged()), this, SLOT(updated())); | |
|
33 | QObject::connect(slice, SIGNAL(brushChanged()), this, SLOT(updated())); | |
|
34 | updated(); | |
|
35 | 31 | } |
|
36 | 32 | |
|
37 | */ | |
|
38 | QPieLegendMarker::QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QObject *parent) : | |
|
39 | QLegendMarker(*new QPieLegendMarkerPrivate(series,slice,this), parent) | |
|
33 | QPieLegendMarker::~QPieLegendMarker() | |
|
40 | 34 | { |
|
41 | QObject::connect(slice, SIGNAL(labelChanged()), this, SLOT(updated())); | |
|
42 | QObject::connect(slice, SIGNAL(brushChanged()), this, SLOT(updated())); | |
|
43 | // updated(); | |
|
44 | 35 | } |
|
45 | 36 | |
|
46 | 37 | /*! |
@@ -65,24 +56,30 QPieSlice* QPieLegendMarker::peerObject() | |||
|
65 | 56 | |
|
66 | 57 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
67 | 58 | |
|
68 | //QPieLegendMarkerPrivate::QPieLegendMarkerPrivate(QAbstractSeries *series, QPieLegendMarker *q) : | |
|
69 | 59 | QPieLegendMarkerPrivate::QPieLegendMarkerPrivate(QPieSeries *series, QPieSlice *slice, QPieLegendMarker *q) : |
|
70 | 60 | QLegendMarkerPrivate(q), |
|
71 | 61 | m_series(series), |
|
72 | 62 | m_slice(slice) |
|
73 | 63 | { |
|
74 | 64 | qDebug() << "QPieLegendMarkerPrivate created"; |
|
65 | QObject::connect(m_slice, SIGNAL(labelChanged()), this, SLOT(updated())); | |
|
66 | QObject::connect(m_slice, SIGNAL(brushChanged()), this, SLOT(updated())); | |
|
75 | 67 | updated(); |
|
76 | 68 | } |
|
77 | 69 | |
|
78 | 70 | QPieLegendMarkerPrivate::~QPieLegendMarkerPrivate() |
|
79 | 71 | { |
|
72 | QObject::disconnect(m_slice, SIGNAL(labelChanged()), this, SLOT(updated())); | |
|
73 | QObject::disconnect(m_slice, SIGNAL(brushChanged()), this, SLOT(updated())); | |
|
80 | 74 | } |
|
81 | 75 | |
|
82 | 76 | void QPieLegendMarkerPrivate::updated() |
|
83 | 77 | { |
|
78 | qDebug() << "QPieLegendMarkerPrivate::updated"; | |
|
84 | 79 | m_item->setBrush(m_slice->brush()); |
|
85 | 80 | m_item->setLabel(m_slice->label()); |
|
81 | m_item->setPen(m_slice->pen()); | |
|
82 | m_item->setBrush(m_slice->brush()); | |
|
86 | 83 | } |
|
87 | 84 | |
|
88 | 85 | #include "moc_qpielegendmarker.cpp" |
@@ -34,6 +34,7 class QTCOMMERCIALCHART_EXPORT QPieLegendMarker : public QLegendMarker | |||
|
34 | 34 | |
|
35 | 35 | public: |
|
36 | 36 | explicit QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QObject *parent = 0); |
|
37 | virtual ~QPieLegendMarker(); | |
|
37 | 38 | |
|
38 | 39 | virtual QAbstractSeries* series(); |
|
39 | 40 | virtual QPieSlice* peerObject(); |
General Comments 0
You need to be logged in to leave comments.
Login now