##// END OF EJS Templates
declarative series for horizontal barcharts
sauimone -
r1806:e1166aadc392
parent child
Show More
@@ -1,232 +1,406
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 #include "declarativebarseries.h"
21 #include "declarativebarseries.h"
22 #include <QBarSet>
22 #include <QBarSet>
23 #include <QVBarModelMapper>
23 #include <QVBarModelMapper>
24 #include <QHBarModelMapper>
24 #include <QHBarModelMapper>
25
25
26 QTCOMMERCIALCHART_BEGIN_NAMESPACE
26 QTCOMMERCIALCHART_BEGIN_NAMESPACE
27
27
28 DeclarativeBarSet::DeclarativeBarSet(QObject *parent) :
28 DeclarativeBarSet::DeclarativeBarSet(QObject *parent) :
29 QBarSet("", parent)
29 QBarSet("", parent)
30 {
30 {
31 connect(this, SIGNAL(valuesAdded(int,int)), this, SLOT(handleCountChanged(int, int)));
31 connect(this, SIGNAL(valuesAdded(int,int)), this, SLOT(handleCountChanged(int, int)));
32 connect(this, SIGNAL(valuesRemoved(int,int)), this, SLOT(handleCountChanged(int, int)));
32 connect(this, SIGNAL(valuesRemoved(int,int)), this, SLOT(handleCountChanged(int, int)));
33 }
33 }
34
34
35 void DeclarativeBarSet::handleCountChanged(int index, int count)
35 void DeclarativeBarSet::handleCountChanged(int index, int count)
36 {
36 {
37 Q_UNUSED(index)
37 Q_UNUSED(index)
38 Q_UNUSED(count)
38 Q_UNUSED(count)
39 emit countChanged(QBarSet::count());
39 emit countChanged(QBarSet::count());
40 }
40 }
41
41
42 QVariantList DeclarativeBarSet::values()
42 QVariantList DeclarativeBarSet::values()
43 {
43 {
44 QVariantList values;
44 QVariantList values;
45 for (int i(0); i < count(); i++)
45 for (int i(0); i < count(); i++)
46 values.append(QVariant(QBarSet::at(i)));
46 values.append(QVariant(QBarSet::at(i)));
47 return values;
47 return values;
48 }
48 }
49
49
50 void DeclarativeBarSet::setValues(QVariantList values)
50 void DeclarativeBarSet::setValues(QVariantList values)
51 {
51 {
52 while (count())
52 while (count())
53 remove(count() - 1);
53 remove(count() - 1);
54
54
55 for (int i(0); i < values.count(); i++) {
55 for (int i(0); i < values.count(); i++) {
56 if (values.at(i).canConvert(QVariant::Double))
56 if (values.at(i).canConvert(QVariant::Double))
57 QBarSet::append(values[i].toDouble());
57 QBarSet::append(values[i].toDouble());
58 }
58 }
59 }
59 }
60
60
61 // Declarative bar series ======================================================================================
61 DeclarativeBarSeries::DeclarativeBarSeries(QDeclarativeItem *parent) :
62 DeclarativeBarSeries::DeclarativeBarSeries(QDeclarativeItem *parent) :
62 QBarSeries(parent)
63 QBarSeries(parent)
63 {
64 {
64 }
65 }
65
66
66 void DeclarativeBarSeries::classBegin()
67 void DeclarativeBarSeries::classBegin()
67 {
68 {
68 }
69 }
69
70
70 void DeclarativeBarSeries::componentComplete()
71 void DeclarativeBarSeries::componentComplete()
71 {
72 {
72 foreach(QObject *child, children()) {
73 foreach(QObject *child, children()) {
73 if (qobject_cast<DeclarativeBarSet *>(child)) {
74 if (qobject_cast<DeclarativeBarSet *>(child)) {
74 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
75 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
75 } else if(qobject_cast<QVBarModelMapper *>(child)) {
76 } else if(qobject_cast<QVBarModelMapper *>(child)) {
76 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
77 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
77 mapper->setSeries(this);
78 mapper->setSeries(this);
78 } else if(qobject_cast<QHBarModelMapper *>(child)) {
79 } else if(qobject_cast<QHBarModelMapper *>(child)) {
79 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
80 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
80 mapper->setSeries(this);
81 mapper->setSeries(this);
81 }
82 }
82 }
83 }
83 }
84 }
84
85
85 QDeclarativeListProperty<QObject> DeclarativeBarSeries::seriesChildren()
86 QDeclarativeListProperty<QObject> DeclarativeBarSeries::seriesChildren()
86 {
87 {
87 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren);
88 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren);
88 }
89 }
89
90
90 void DeclarativeBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
91 void DeclarativeBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
91 {
92 {
92 // Empty implementation; the children are parsed in componentComplete instead
93 // Empty implementation; the children are parsed in componentComplete instead
93 Q_UNUSED(list);
94 Q_UNUSED(list);
94 Q_UNUSED(element);
95 Q_UNUSED(element);
95 }
96 }
96
97
97 DeclarativeBarSet *DeclarativeBarSeries::at(int index)
98 DeclarativeBarSet *DeclarativeBarSeries::at(int index)
98 {
99 {
99 QList<QBarSet*> setList = barSets();
100 QList<QBarSet*> setList = barSets();
100 if (index >= 0 && index < setList.count())
101 if (index >= 0 && index < setList.count())
101 return qobject_cast<DeclarativeBarSet *>(setList[index]);
102 return qobject_cast<DeclarativeBarSet *>(setList[index]);
102
103
103 return 0;
104 return 0;
104 }
105 }
105
106
106 DeclarativeBarSet *DeclarativeBarSeries::insert(int index, QString label, QVariantList values)
107 DeclarativeBarSet *DeclarativeBarSeries::insert(int index, QString label, QVariantList values)
107 {
108 {
108 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
109 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
109 barset->setLabel(label);
110 barset->setLabel(label);
110 barset->setValues(values);
111 barset->setValues(values);
111 if (QBarSeries::insert(index, barset))
112 if (QBarSeries::insert(index, barset))
112 return barset;
113 return barset;
113 delete barset;
114 delete barset;
114 return 0;
115 return 0;
115 }
116 }
116
117
118 // Declarative stacked bar series ==============================================================================
117 DeclarativeStackedBarSeries::DeclarativeStackedBarSeries(QDeclarativeItem *parent) :
119 DeclarativeStackedBarSeries::DeclarativeStackedBarSeries(QDeclarativeItem *parent) :
118 QStackedBarSeries(parent)
120 QStackedBarSeries(parent)
119 {
121 {
120 }
122 }
121
123
122 void DeclarativeStackedBarSeries::classBegin()
124 void DeclarativeStackedBarSeries::classBegin()
123 {
125 {
124 }
126 }
125
127
126 void DeclarativeStackedBarSeries::componentComplete()
128 void DeclarativeStackedBarSeries::componentComplete()
127 {
129 {
128 foreach(QObject *child, children()) {
130 foreach(QObject *child, children()) {
129 if (qobject_cast<DeclarativeBarSet *>(child)) {
131 if (qobject_cast<DeclarativeBarSet *>(child)) {
130 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
132 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
131 } else if(qobject_cast<QVBarModelMapper *>(child)) {
133 } else if(qobject_cast<QVBarModelMapper *>(child)) {
132 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
134 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
133 mapper->setSeries(this);
135 mapper->setSeries(this);
134 } else if(qobject_cast<QHBarModelMapper *>(child)) {
136 } else if(qobject_cast<QHBarModelMapper *>(child)) {
135 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
137 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
136 mapper->setSeries(this);
138 mapper->setSeries(this);
137 }
139 }
138 }
140 }
139 }
141 }
140
142
141
143
142 QDeclarativeListProperty<QObject> DeclarativeStackedBarSeries::seriesChildren()
144 QDeclarativeListProperty<QObject> DeclarativeStackedBarSeries::seriesChildren()
143 {
145 {
144 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren);
146 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren);
145 }
147 }
146
148
147 void DeclarativeStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
149 void DeclarativeStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
148 {
150 {
149 // Empty implementation; the children are parsed in componentComplete instead
151 // Empty implementation; the children are parsed in componentComplete instead
150 Q_UNUSED(list);
152 Q_UNUSED(list);
151 Q_UNUSED(element);
153 Q_UNUSED(element);
152 }
154 }
153
155
154 DeclarativeBarSet *DeclarativeStackedBarSeries::at(int index)
156 DeclarativeBarSet *DeclarativeStackedBarSeries::at(int index)
155 {
157 {
156 QList<QBarSet*> setList = barSets();
158 QList<QBarSet*> setList = barSets();
157 if (index >= 0 && index < setList.count())
159 if (index >= 0 && index < setList.count())
158 return qobject_cast<DeclarativeBarSet *>(setList[index]);
160 return qobject_cast<DeclarativeBarSet *>(setList[index]);
159
161
160 return 0;
162 return 0;
161 }
163 }
162
164
163 DeclarativeBarSet *DeclarativeStackedBarSeries::insert(int index, QString label, QVariantList values)
165 DeclarativeBarSet *DeclarativeStackedBarSeries::insert(int index, QString label, QVariantList values)
164 {
166 {
165 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
167 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
166 barset->setLabel(label);
168 barset->setLabel(label);
167 barset->setValues(values);
169 barset->setValues(values);
168 if (QStackedBarSeries::insert(index, barset))
170 if (QStackedBarSeries::insert(index, barset))
169 return barset;
171 return barset;
170 delete barset;
172 delete barset;
171 return 0;
173 return 0;
172 }
174 }
173
175
176 // Declarative percent bar series ==============================================================================
174 DeclarativePercentBarSeries::DeclarativePercentBarSeries(QDeclarativeItem *parent) :
177 DeclarativePercentBarSeries::DeclarativePercentBarSeries(QDeclarativeItem *parent) :
175 QPercentBarSeries(parent)
178 QPercentBarSeries(parent)
176 {
179 {
177 }
180 }
178
181
179 void DeclarativePercentBarSeries::classBegin()
182 void DeclarativePercentBarSeries::classBegin()
180 {
183 {
181 }
184 }
182
185
183 void DeclarativePercentBarSeries::componentComplete()
186 void DeclarativePercentBarSeries::componentComplete()
184 {
187 {
185 foreach(QObject *child, children()) {
188 foreach(QObject *child, children()) {
186 if (qobject_cast<DeclarativeBarSet *>(child)) {
189 if (qobject_cast<DeclarativeBarSet *>(child)) {
187 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
190 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
188 } else if(qobject_cast<QVBarModelMapper *>(child)) {
191 } else if(qobject_cast<QVBarModelMapper *>(child)) {
189 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
192 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
190 mapper->setSeries(this);
193 mapper->setSeries(this);
191 } else if(qobject_cast<QHBarModelMapper *>(child)) {
194 } else if(qobject_cast<QHBarModelMapper *>(child)) {
192 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
195 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
193 mapper->setSeries(this);
196 mapper->setSeries(this);
194 }
197 }
195 }
198 }
196 }
199 }
197
200
198 QDeclarativeListProperty<QObject> DeclarativePercentBarSeries::seriesChildren()
201 QDeclarativeListProperty<QObject> DeclarativePercentBarSeries::seriesChildren()
199 {
202 {
200 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren);
203 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren);
201 }
204 }
202
205
203 void DeclarativePercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
206 void DeclarativePercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
204 {
207 {
205 // Empty implementation; the children are parsed in componentComplete instead
208 // Empty implementation; the children are parsed in componentComplete instead
206 Q_UNUSED(list);
209 Q_UNUSED(list);
207 Q_UNUSED(element);
210 Q_UNUSED(element);
208 }
211 }
209
212
210 DeclarativeBarSet *DeclarativePercentBarSeries::at(int index)
213 DeclarativeBarSet *DeclarativePercentBarSeries::at(int index)
211 {
214 {
212 QList<QBarSet*> setList = barSets();
215 QList<QBarSet*> setList = barSets();
213 if (index >= 0 && index < setList.count())
216 if (index >= 0 && index < setList.count())
214 return qobject_cast<DeclarativeBarSet *>(setList[index]);
217 return qobject_cast<DeclarativeBarSet *>(setList[index]);
215
218
216 return 0;
219 return 0;
217 }
220 }
218
221
219 DeclarativeBarSet *DeclarativePercentBarSeries::insert(int index, QString label, QVariantList values)
222 DeclarativeBarSet *DeclarativePercentBarSeries::insert(int index, QString label, QVariantList values)
220 {
223 {
221 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
224 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
222 barset->setLabel(label);
225 barset->setLabel(label);
223 barset->setValues(values);
226 barset->setValues(values);
224 if (QPercentBarSeries::insert(index, barset))
227 if (QPercentBarSeries::insert(index, barset))
225 return barset;
228 return barset;
226 delete barset;
229 delete barset;
227 return 0;
230 return 0;
228 }
231 }
229
232
233 // Declarative horizontal bar series ===========================================================================
234 DeclarativeHorizontalBarSeries::DeclarativeHorizontalBarSeries(QDeclarativeItem *parent) :
235 QHorizontalBarSeries(parent)
236 {
237 }
238
239 void DeclarativeHorizontalBarSeries::classBegin()
240 {
241 }
242
243 void DeclarativeHorizontalBarSeries::componentComplete()
244 {
245 foreach(QObject *child, children()) {
246 if (qobject_cast<DeclarativeBarSet *>(child)) {
247 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
248 } else if(qobject_cast<QVBarModelMapper *>(child)) {
249 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
250 mapper->setSeries(this);
251 } else if(qobject_cast<QHBarModelMapper *>(child)) {
252 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
253 mapper->setSeries(this);
254 }
255 }
256 }
257
258 QDeclarativeListProperty<QObject> DeclarativeHorizontalBarSeries::seriesChildren()
259 {
260 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeHorizontalBarSeries::appendSeriesChildren);
261 }
262
263 void DeclarativeHorizontalBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
264 {
265 // Empty implementation; the children are parsed in componentComplete instead
266 Q_UNUSED(list);
267 Q_UNUSED(element);
268 }
269
270 DeclarativeBarSet *DeclarativeHorizontalBarSeries::at(int index)
271 {
272 QList<QBarSet*> setList = barSets();
273 if (index >= 0 && index < setList.count())
274 return qobject_cast<DeclarativeBarSet *>(setList[index]);
275
276 return 0;
277 }
278
279 DeclarativeBarSet *DeclarativeHorizontalBarSeries::insert(int index, QString label, QVariantList values)
280 {
281 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
282 barset->setLabel(label);
283 barset->setValues(values);
284 if (QHorizontalBarSeries::insert(index, barset))
285 return barset;
286 delete barset;
287 return 0;
288 }
289
290 // Declarative horizontal stacked bar series ===================================================================
291 DeclarativeHorizontalStackedBarSeries::DeclarativeHorizontalStackedBarSeries(QDeclarativeItem *parent) :
292 QHorizontalStackedBarSeries(parent)
293 {
294 }
295
296 void DeclarativeHorizontalStackedBarSeries::classBegin()
297 {
298 }
299
300 void DeclarativeHorizontalStackedBarSeries::componentComplete()
301 {
302 foreach(QObject *child, children()) {
303 if (qobject_cast<DeclarativeBarSet *>(child)) {
304 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
305 } else if(qobject_cast<QVBarModelMapper *>(child)) {
306 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
307 mapper->setSeries(this);
308 } else if(qobject_cast<QHBarModelMapper *>(child)) {
309 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
310 mapper->setSeries(this);
311 }
312 }
313 }
314
315 QDeclarativeListProperty<QObject> DeclarativeHorizontalStackedBarSeries::seriesChildren()
316 {
317 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeHorizontalStackedBarSeries::appendSeriesChildren);
318 }
319
320 void DeclarativeHorizontalStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
321 {
322 // Empty implementation; the children are parsed in componentComplete instead
323 Q_UNUSED(list);
324 Q_UNUSED(element);
325 }
326
327 DeclarativeBarSet *DeclarativeHorizontalStackedBarSeries::at(int index)
328 {
329 QList<QBarSet*> setList = barSets();
330 if (index >= 0 && index < setList.count())
331 return qobject_cast<DeclarativeBarSet *>(setList[index]);
332
333 return 0;
334 }
335
336 DeclarativeBarSet *DeclarativeHorizontalStackedBarSeries::insert(int index, QString label, QVariantList values)
337 {
338 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
339 barset->setLabel(label);
340 barset->setValues(values);
341 if (QHorizontalStackedBarSeries::insert(index, barset))
342 return barset;
343 delete barset;
344 return 0;
345 }
346
347 // Declarative horizontal percent bar series ===================================================================
348 DeclarativeHorizontalPercentBarSeries::DeclarativeHorizontalPercentBarSeries(QDeclarativeItem *parent) :
349 QHorizontalPercentBarSeries(parent)
350 {
351 }
352
353 void DeclarativeHorizontalPercentBarSeries::classBegin()
354 {
355 }
356
357 void DeclarativeHorizontalPercentBarSeries::componentComplete()
358 {
359 foreach(QObject *child, children()) {
360 if (qobject_cast<DeclarativeBarSet *>(child)) {
361 QAbstractBarSeries::append(qobject_cast<DeclarativeBarSet *>(child));
362 } else if(qobject_cast<QVBarModelMapper *>(child)) {
363 QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child);
364 mapper->setSeries(this);
365 } else if(qobject_cast<QHBarModelMapper *>(child)) {
366 QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child);
367 mapper->setSeries(this);
368 }
369 }
370 }
371
372 QDeclarativeListProperty<QObject> DeclarativeHorizontalPercentBarSeries::seriesChildren()
373 {
374 return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeHorizontalPercentBarSeries::appendSeriesChildren);
375 }
376
377 void DeclarativeHorizontalPercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element)
378 {
379 // Empty implementation; the children are parsed in componentComplete instead
380 Q_UNUSED(list);
381 Q_UNUSED(element);
382 }
383
384 DeclarativeBarSet *DeclarativeHorizontalPercentBarSeries::at(int index)
385 {
386 QList<QBarSet*> setList = barSets();
387 if (index >= 0 && index < setList.count())
388 return qobject_cast<DeclarativeBarSet *>(setList[index]);
389
390 return 0;
391 }
392
393 DeclarativeBarSet *DeclarativeHorizontalPercentBarSeries::insert(int index, QString label, QVariantList values)
394 {
395 DeclarativeBarSet *barset = new DeclarativeBarSet(this);
396 barset->setLabel(label);
397 barset->setValues(values);
398 if (QHorizontalPercentBarSeries::insert(index, barset))
399 return barset;
400 delete barset;
401 return 0;
402 }
403
230 #include "moc_declarativebarseries.cpp"
404 #include "moc_declarativebarseries.cpp"
231
405
232 QTCOMMERCIALCHART_END_NAMESPACE
406 QTCOMMERCIALCHART_END_NAMESPACE
@@ -1,138 +1,213
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 #ifndef DECLARATIVEBARSERIES_H
21 #ifndef DECLARATIVEBARSERIES_H
22 #define DECLARATIVEBARSERIES_H
22 #define DECLARATIVEBARSERIES_H
23
23
24 #include "qbarseries.h"
24 #include "qbarseries.h"
25 #include "qstackedbarseries.h"
25 #include "qstackedbarseries.h"
26 #include "qpercentbarseries.h"
26 #include "qpercentbarseries.h"
27 #include "qhorizontalbarseries.h"
28 #include "qhorizontalstackedbarseries.h"
29 #include "qhorizontalpercentbarseries.h"
27 #include "qbarset.h"
30 #include "qbarset.h"
28 #include <QDeclarativeItem>
31 #include <QDeclarativeItem>
29 #include <QDeclarativeParserStatus>
32 #include <QDeclarativeParserStatus>
30
33
31 QTCOMMERCIALCHART_BEGIN_NAMESPACE
34 QTCOMMERCIALCHART_BEGIN_NAMESPACE
32
35
33 class QChart;
36 class QChart;
34
37
35 class DeclarativeBarSet : public QBarSet
38 class DeclarativeBarSet : public QBarSet
36 {
39 {
37 Q_OBJECT
40 Q_OBJECT
38 Q_PROPERTY(QVariantList values READ values WRITE setValues)
41 Q_PROPERTY(QVariantList values READ values WRITE setValues)
39 Q_PROPERTY(int count READ count NOTIFY countChanged)
42 Q_PROPERTY(int count READ count NOTIFY countChanged)
40
43
41 public:
44 public:
42 explicit DeclarativeBarSet(QObject *parent = 0);
45 explicit DeclarativeBarSet(QObject *parent = 0);
43 QVariantList values();
46 QVariantList values();
44 void setValues(QVariantList values);
47 void setValues(QVariantList values);
45
48
46 public: // From QBarSet
49 public: // From QBarSet
47 Q_INVOKABLE void append(qreal value) { QBarSet::append(value); }
50 Q_INVOKABLE void append(qreal value) { QBarSet::append(value); }
48 Q_INVOKABLE void remove(const int index, const int count = 1) { QBarSet::remove(index, count); }
51 Q_INVOKABLE void remove(const int index, const int count = 1) { QBarSet::remove(index, count); }
49 Q_INVOKABLE void replace(int index, qreal value) { QBarSet::replace(index, value); }
52 Q_INVOKABLE void replace(int index, qreal value) { QBarSet::replace(index, value); }
50 Q_INVOKABLE qreal at(int index) { return QBarSet::at(index); }
53 Q_INVOKABLE qreal at(int index) { return QBarSet::at(index); }
51
54
52 Q_SIGNALS:
55 Q_SIGNALS:
53 void countChanged(int count);
56 void countChanged(int count);
54
57
55 private Q_SLOTS:
58 private Q_SLOTS:
56 void handleCountChanged(int index, int count);
59 void handleCountChanged(int index, int count);
57 };
60 };
58
61
59 class DeclarativeBarSeries : public QBarSeries, public QDeclarativeParserStatus
62 class DeclarativeBarSeries : public QBarSeries, public QDeclarativeParserStatus
60 {
63 {
61 Q_OBJECT
64 Q_OBJECT
62 Q_INTERFACES(QDeclarativeParserStatus)
65 Q_INTERFACES(QDeclarativeParserStatus)
63 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
66 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
64 Q_CLASSINFO("DefaultProperty", "seriesChildren")
67 Q_CLASSINFO("DefaultProperty", "seriesChildren")
65
68
66 public:
69 public:
67 explicit DeclarativeBarSeries(QDeclarativeItem *parent = 0);
70 explicit DeclarativeBarSeries(QDeclarativeItem *parent = 0);
68 QDeclarativeListProperty<QObject> seriesChildren();
71 QDeclarativeListProperty<QObject> seriesChildren();
69 Q_INVOKABLE DeclarativeBarSet *at(int index);
72 Q_INVOKABLE DeclarativeBarSet *at(int index);
70 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
73 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
71 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
74 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
72 Q_INVOKABLE bool remove(QBarSet *barset) { return QBarSeries::remove(barset); }
75 Q_INVOKABLE bool remove(QBarSet *barset) { return QBarSeries::remove(barset); }
73 Q_INVOKABLE void clear() { return QBarSeries::clear(); }
76 Q_INVOKABLE void clear() { return QBarSeries::clear(); }
74
77
75 public: // from QDeclarativeParserStatus
78 public: // from QDeclarativeParserStatus
76 void classBegin();
79 void classBegin();
77 void componentComplete();
80 void componentComplete();
78
81
79 public Q_SLOTS:
82 public Q_SLOTS:
80 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
83 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
81
84
82 private:
85 private:
83 QAbstractAxis* m_axisX;
86 QAbstractAxis* m_axisX;
84 QAbstractAxis* m_axisY;
87 QAbstractAxis* m_axisY;
85 };
88 };
86
89
87 class DeclarativeStackedBarSeries : public QStackedBarSeries, public QDeclarativeParserStatus
90 class DeclarativeStackedBarSeries : public QStackedBarSeries, public QDeclarativeParserStatus
88 {
91 {
89 Q_OBJECT
92 Q_OBJECT
90 Q_INTERFACES(QDeclarativeParserStatus)
93 Q_INTERFACES(QDeclarativeParserStatus)
91 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
94 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
92 Q_CLASSINFO("DefaultProperty", "seriesChildren")
95 Q_CLASSINFO("DefaultProperty", "seriesChildren")
93
96
94 public:
97 public:
95 explicit DeclarativeStackedBarSeries(QDeclarativeItem *parent = 0);
98 explicit DeclarativeStackedBarSeries(QDeclarativeItem *parent = 0);
96 QDeclarativeListProperty<QObject> seriesChildren();
99 QDeclarativeListProperty<QObject> seriesChildren();
97 Q_INVOKABLE DeclarativeBarSet *at(int index);
100 Q_INVOKABLE DeclarativeBarSet *at(int index);
98 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
101 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
99 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
102 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
100 Q_INVOKABLE bool remove(QBarSet *barset) { return QStackedBarSeries::remove(barset); }
103 Q_INVOKABLE bool remove(QBarSet *barset) { return QStackedBarSeries::remove(barset); }
101 Q_INVOKABLE void clear() { return QStackedBarSeries::clear(); }
104 Q_INVOKABLE void clear() { return QStackedBarSeries::clear(); }
102
105
103 public: // from QDeclarativeParserStatus
106 public: // from QDeclarativeParserStatus
104 void classBegin();
107 void classBegin();
105 void componentComplete();
108 void componentComplete();
106
109
107 public Q_SLOTS:
110 public Q_SLOTS:
108 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
111 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
109
112
110 };
113 };
111
114
112 class DeclarativePercentBarSeries : public QPercentBarSeries, public QDeclarativeParserStatus
115 class DeclarativePercentBarSeries : public QPercentBarSeries, public QDeclarativeParserStatus
113 {
116 {
114 Q_OBJECT
117 Q_OBJECT
115 Q_INTERFACES(QDeclarativeParserStatus)
118 Q_INTERFACES(QDeclarativeParserStatus)
116 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
119 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
117 Q_CLASSINFO("DefaultProperty", "seriesChildren")
120 Q_CLASSINFO("DefaultProperty", "seriesChildren")
118
121
119 public:
122 public:
120 explicit DeclarativePercentBarSeries(QDeclarativeItem *parent = 0);
123 explicit DeclarativePercentBarSeries(QDeclarativeItem *parent = 0);
121 QDeclarativeListProperty<QObject> seriesChildren();
124 QDeclarativeListProperty<QObject> seriesChildren();
122 Q_INVOKABLE DeclarativeBarSet *at(int index);
125 Q_INVOKABLE DeclarativeBarSet *at(int index);
123 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
126 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
124 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
127 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
125 Q_INVOKABLE bool remove(QBarSet *barset) { return QPercentBarSeries::remove(barset); }
128 Q_INVOKABLE bool remove(QBarSet *barset) { return QPercentBarSeries::remove(barset); }
126 Q_INVOKABLE void clear() { return QPercentBarSeries::clear(); }
129 Q_INVOKABLE void clear() { return QPercentBarSeries::clear(); }
127
130
128 public: // from QDeclarativeParserStatus
131 public: // from QDeclarativeParserStatus
129 void classBegin();
132 void classBegin();
130 void componentComplete();
133 void componentComplete();
131
134
132 public Q_SLOTS:
135 public Q_SLOTS:
133 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
136 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
134 };
137 };
135
138
139 class DeclarativeHorizontalBarSeries : public QHorizontalBarSeries, public QDeclarativeParserStatus
140 {
141 Q_OBJECT
142 Q_INTERFACES(QDeclarativeParserStatus)
143 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
144 Q_CLASSINFO("DefaultProperty", "seriesChildren")
145
146 public:
147 explicit DeclarativeHorizontalBarSeries(QDeclarativeItem *parent = 0);
148 QDeclarativeListProperty<QObject> seriesChildren();
149 Q_INVOKABLE DeclarativeBarSet *at(int index);
150 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
151 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
152 Q_INVOKABLE bool remove(QBarSet *barset) { return QHorizontalBarSeries::remove(barset); }
153 Q_INVOKABLE void clear() { return QHorizontalBarSeries::clear(); }
154
155 public: // from QDeclarativeParserStatus
156 void classBegin();
157 void componentComplete();
158
159 public Q_SLOTS:
160 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
161 };
162
163 class DeclarativeHorizontalStackedBarSeries : public QHorizontalStackedBarSeries, public QDeclarativeParserStatus
164 {
165 Q_OBJECT
166 Q_INTERFACES(QDeclarativeParserStatus)
167 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
168 Q_CLASSINFO("DefaultProperty", "seriesChildren")
169
170 public:
171 explicit DeclarativeHorizontalStackedBarSeries(QDeclarativeItem *parent = 0);
172 QDeclarativeListProperty<QObject> seriesChildren();
173 Q_INVOKABLE DeclarativeBarSet *at(int index);
174 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
175 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
176 Q_INVOKABLE bool remove(QBarSet *barset) { return QHorizontalStackedBarSeries::remove(barset); }
177 Q_INVOKABLE void clear() { return QHorizontalStackedBarSeries::clear(); }
178
179 public: // from QDeclarativeParserStatus
180 void classBegin();
181 void componentComplete();
182
183 public Q_SLOTS:
184 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
185 };
186
187 class DeclarativeHorizontalPercentBarSeries : public QHorizontalPercentBarSeries, public QDeclarativeParserStatus
188 {
189 Q_OBJECT
190 Q_INTERFACES(QDeclarativeParserStatus)
191 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
192 Q_CLASSINFO("DefaultProperty", "seriesChildren")
193
194 public:
195 explicit DeclarativeHorizontalPercentBarSeries(QDeclarativeItem *parent = 0);
196 QDeclarativeListProperty<QObject> seriesChildren();
197 Q_INVOKABLE DeclarativeBarSet *at(int index);
198 Q_INVOKABLE DeclarativeBarSet *append(QString label, QVariantList values) { return insert(count(), label, values); }
199 Q_INVOKABLE DeclarativeBarSet *insert(int index, QString label, QVariantList values);
200 Q_INVOKABLE bool remove(QBarSet *barset) { return QHorizontalPercentBarSeries::remove(barset); }
201 Q_INVOKABLE void clear() { return QHorizontalPercentBarSeries::clear(); }
202
203 public: // from QDeclarativeParserStatus
204 void classBegin();
205 void componentComplete();
206
207 public Q_SLOTS:
208 static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element);
209 };
210
136 QTCOMMERCIALCHART_END_NAMESPACE
211 QTCOMMERCIALCHART_END_NAMESPACE
137
212
138 #endif // DECLARATIVEBARSERIES_H
213 #endif // DECLARATIVEBARSERIES_H
General Comments 0
You need to be logged in to leave comments. Login now