@@ -0,0 +1,41 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | import QtCommercial.Chart 1.0 | |||
|
23 | ||||
|
24 | ChartView { | |||
|
25 | title: "Grouped bar series" | |||
|
26 | anchors.fill: parent | |||
|
27 | theme: ChartView.ChartThemeLight | |||
|
28 | legend: ChartView.LegendBottom | |||
|
29 | // TODO: labels defined by x-axis, not by bar series | |||
|
30 | axisXLabels: ["0", "2008", "1", "2009", "2", "2010", "3", "2012"] | |||
|
31 | ||||
|
32 | property variant series: daSeries | |||
|
33 | ||||
|
34 | GroupedBarSeries { | |||
|
35 | id: daSeries | |||
|
36 | barCategories: [ "2008", "2009", "2010", "2011", "2012" ] | |||
|
37 | BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] } | |||
|
38 | BarSet { name: "Susan"; values: [5, 1, 2, 4, 1, 7] } | |||
|
39 | BarSet { name: "James"; values: [3, 5, 8, 13, 5, 8] } | |||
|
40 | } | |||
|
41 | } |
@@ -0,0 +1,40 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | import QtCommercial.Chart 1.0 | |||
|
23 | ||||
|
24 | ChartView { | |||
|
25 | title: "Percent bar series" | |||
|
26 | anchors.fill: parent | |||
|
27 | theme: ChartView.ChartThemeLight | |||
|
28 | legend: ChartView.LegendBottom | |||
|
29 | // TODO: labels defined by x-axis, not by bar series | |||
|
30 | axisXLabels: ["0", "2008", "1", "2009", "2", "2010", "3", "2012"] | |||
|
31 | ||||
|
32 | property variant series: daSeries | |||
|
33 | ||||
|
34 | PercentBarSeries { | |||
|
35 | id: daSeries | |||
|
36 | BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] } | |||
|
37 | BarSet { name: "Susan"; values: [5, 1, 2, 4, 1, 7] } | |||
|
38 | BarSet { name: "James"; values: [3, 5, 8, 13, 5, 8] } | |||
|
39 | } | |||
|
40 | } |
@@ -0,0 +1,39 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | import QtCommercial.Chart 1.0 | |||
|
23 | ||||
|
24 | ChartView { | |||
|
25 | title: "Stacked bar series" | |||
|
26 | anchors.fill: parent | |||
|
27 | theme: ChartView.ChartThemeLight | |||
|
28 | legend: ChartView.LegendBottom | |||
|
29 | axisXLabels: ["0", "2008", "1", "2009", "2", "2010", "3", "2012"] | |||
|
30 | ||||
|
31 | property variant series: daSeries | |||
|
32 | ||||
|
33 | StackedBarSeries { | |||
|
34 | id: daSeries | |||
|
35 | BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] } | |||
|
36 | BarSet { name: "Susan"; values: [5, 1, 2, 4, 1, 7] } | |||
|
37 | BarSet { name: "James"; values: [3, 5, 8, 13, 5, 8] } | |||
|
38 | } | |||
|
39 | } |
@@ -196,6 +196,96 DeclarativeBarSet *DeclarativeGroupedBarSeries::at(int index) | |||||
196 | return 0; |
|
196 | return 0; | |
197 | } |
|
197 | } | |
198 |
|
198 | |||
|
199 | DeclarativeStackedBarSeries::DeclarativeStackedBarSeries(QDeclarativeItem *parent) : | |||
|
200 | QStackedBarSeries(parent) | |||
|
201 | { | |||
|
202 | } | |||
|
203 | ||||
|
204 | void DeclarativeStackedBarSeries::classBegin() | |||
|
205 | { | |||
|
206 | } | |||
|
207 | ||||
|
208 | void DeclarativeStackedBarSeries::componentComplete() | |||
|
209 | { | |||
|
210 | foreach(QObject *child, children()) { | |||
|
211 | if (qobject_cast<DeclarativeBarSet *>(child)) { | |||
|
212 | QBarSeries::append(qobject_cast<DeclarativeBarSet *>(child)); | |||
|
213 | } else if(qobject_cast<QVBarModelMapper *>(child)) { | |||
|
214 | QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child); | |||
|
215 | mapper->setSeries(this); | |||
|
216 | } else if(qobject_cast<QHBarModelMapper *>(child)) { | |||
|
217 | QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child); | |||
|
218 | mapper->setSeries(this); | |||
|
219 | } | |||
|
220 | } | |||
|
221 | } | |||
|
222 | ||||
|
223 | QDeclarativeListProperty<QObject> DeclarativeStackedBarSeries::seriesChildren() | |||
|
224 | { | |||
|
225 | return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); | |||
|
226 | } | |||
|
227 | ||||
|
228 | void DeclarativeStackedBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) | |||
|
229 | { | |||
|
230 | // Empty implementation; the children are parsed in componentComplete instead | |||
|
231 | Q_UNUSED(list); | |||
|
232 | Q_UNUSED(element); | |||
|
233 | } | |||
|
234 | ||||
|
235 | DeclarativeBarSet *DeclarativeStackedBarSeries::at(int index) | |||
|
236 | { | |||
|
237 | QList<QBarSet*> setList = barSets(); | |||
|
238 | if (index < setList.count()) | |||
|
239 | return qobject_cast<DeclarativeBarSet *>(setList[index]); | |||
|
240 | ||||
|
241 | return 0; | |||
|
242 | } | |||
|
243 | ||||
|
244 | DeclarativePercentBarSeries::DeclarativePercentBarSeries(QDeclarativeItem *parent) : | |||
|
245 | QPercentBarSeries(parent) | |||
|
246 | { | |||
|
247 | } | |||
|
248 | ||||
|
249 | void DeclarativePercentBarSeries::classBegin() | |||
|
250 | { | |||
|
251 | } | |||
|
252 | ||||
|
253 | void DeclarativePercentBarSeries::componentComplete() | |||
|
254 | { | |||
|
255 | foreach(QObject *child, children()) { | |||
|
256 | if (qobject_cast<DeclarativeBarSet *>(child)) { | |||
|
257 | QBarSeries::append(qobject_cast<DeclarativeBarSet *>(child)); | |||
|
258 | } else if(qobject_cast<QVBarModelMapper *>(child)) { | |||
|
259 | QVBarModelMapper *mapper = qobject_cast<QVBarModelMapper *>(child); | |||
|
260 | mapper->setSeries(this); | |||
|
261 | } else if(qobject_cast<QHBarModelMapper *>(child)) { | |||
|
262 | QHBarModelMapper *mapper = qobject_cast<QHBarModelMapper *>(child); | |||
|
263 | mapper->setSeries(this); | |||
|
264 | } | |||
|
265 | } | |||
|
266 | } | |||
|
267 | ||||
|
268 | QDeclarativeListProperty<QObject> DeclarativePercentBarSeries::seriesChildren() | |||
|
269 | { | |||
|
270 | return QDeclarativeListProperty<QObject>(this, 0, &DeclarativeBarSeries::appendSeriesChildren); | |||
|
271 | } | |||
|
272 | ||||
|
273 | void DeclarativePercentBarSeries::appendSeriesChildren(QDeclarativeListProperty<QObject> * list, QObject *element) | |||
|
274 | { | |||
|
275 | // Empty implementation; the children are parsed in componentComplete instead | |||
|
276 | Q_UNUSED(list); | |||
|
277 | Q_UNUSED(element); | |||
|
278 | } | |||
|
279 | ||||
|
280 | DeclarativeBarSet *DeclarativePercentBarSeries::at(int index) | |||
|
281 | { | |||
|
282 | QList<QBarSet*> setList = barSets(); | |||
|
283 | if (index < setList.count()) | |||
|
284 | return qobject_cast<DeclarativeBarSet *>(setList[index]); | |||
|
285 | ||||
|
286 | return 0; | |||
|
287 | } | |||
|
288 | ||||
199 | #include "moc_declarativebarseries.cpp" |
|
289 | #include "moc_declarativebarseries.cpp" | |
200 |
|
290 | |||
201 | QTCOMMERCIALCHART_END_NAMESPACE |
|
291 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -22,10 +22,12 | |||||
22 | #define DECLARATIVEBARSERIES_H |
|
22 | #define DECLARATIVEBARSERIES_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include <QDeclarativeItem> |
|
|||
26 | #include <QDeclarativeParserStatus> |
|
|||
27 | #include <QGroupedBarSeries> |
|
25 | #include <QGroupedBarSeries> | |
|
26 | #include <QStackedBarSeries> | |||
|
27 | #include <QPercentBarSeries> | |||
28 | #include <QBarSet> |
|
28 | #include <QBarSet> | |
|
29 | #include <QDeclarativeItem> | |||
|
30 | #include <QDeclarativeParserStatus> | |||
29 |
|
31 | |||
30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
32 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
31 |
|
33 | |||
@@ -105,6 +107,46 public Q_SLOTS: | |||||
105 | static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); |
|
107 | static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); | |
106 | }; |
|
108 | }; | |
107 |
|
109 | |||
|
110 | class DeclarativeStackedBarSeries : public QStackedBarSeries, public QDeclarativeParserStatus | |||
|
111 | { | |||
|
112 | Q_OBJECT | |||
|
113 | Q_INTERFACES(QDeclarativeParserStatus) | |||
|
114 | Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) | |||
|
115 | Q_CLASSINFO("DefaultProperty", "seriesChildren") | |||
|
116 | ||||
|
117 | public: | |||
|
118 | explicit DeclarativeStackedBarSeries(QDeclarativeItem *parent = 0); | |||
|
119 | QDeclarativeListProperty<QObject> seriesChildren(); | |||
|
120 | Q_INVOKABLE DeclarativeBarSet *at(int index); | |||
|
121 | ||||
|
122 | public: // from QDeclarativeParserStatus | |||
|
123 | void classBegin(); | |||
|
124 | void componentComplete(); | |||
|
125 | ||||
|
126 | public Q_SLOTS: | |||
|
127 | static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); | |||
|
128 | }; | |||
|
129 | ||||
|
130 | class DeclarativePercentBarSeries : public QPercentBarSeries, public QDeclarativeParserStatus | |||
|
131 | { | |||
|
132 | Q_OBJECT | |||
|
133 | Q_INTERFACES(QDeclarativeParserStatus) | |||
|
134 | Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren) | |||
|
135 | Q_CLASSINFO("DefaultProperty", "seriesChildren") | |||
|
136 | ||||
|
137 | public: | |||
|
138 | explicit DeclarativePercentBarSeries(QDeclarativeItem *parent = 0); | |||
|
139 | QDeclarativeListProperty<QObject> seriesChildren(); | |||
|
140 | Q_INVOKABLE DeclarativeBarSet *at(int index); | |||
|
141 | ||||
|
142 | public: // from QDeclarativeParserStatus | |||
|
143 | void classBegin(); | |||
|
144 | void componentComplete(); | |||
|
145 | ||||
|
146 | public Q_SLOTS: | |||
|
147 | static void appendSeriesChildren(QDeclarativeListProperty<QObject> *list, QObject *element); | |||
|
148 | }; | |||
|
149 | ||||
108 | QTCOMMERCIALCHART_END_NAMESPACE |
|
150 | QTCOMMERCIALCHART_END_NAMESPACE | |
109 |
|
151 | |||
110 | #endif // DECLARATIVEBARSERIES_H |
|
152 | #endif // DECLARATIVEBARSERIES_H |
@@ -55,6 +55,8 public: | |||||
55 | qmlRegisterType<DeclarativeAreaSeries>(uri, 1, 0, "AreaSeries"); |
|
55 | qmlRegisterType<DeclarativeAreaSeries>(uri, 1, 0, "AreaSeries"); | |
56 | qmlRegisterType<DeclarativeBarSeries>(uri, 1, 0, "BarSeries"); |
|
56 | qmlRegisterType<DeclarativeBarSeries>(uri, 1, 0, "BarSeries"); | |
57 | qmlRegisterType<DeclarativeGroupedBarSeries>(uri, 1, 0, "GroupedBarSeries"); |
|
57 | qmlRegisterType<DeclarativeGroupedBarSeries>(uri, 1, 0, "GroupedBarSeries"); | |
|
58 | qmlRegisterType<DeclarativeStackedBarSeries>(uri, 1, 0, "StackedBarSeries"); | |||
|
59 | qmlRegisterType<DeclarativePercentBarSeries>(uri, 1, 0, "PercentBarSeries"); | |||
58 | qmlRegisterType<DeclarativePieSeries>(uri, 1, 0, "PieSeries"); |
|
60 | qmlRegisterType<DeclarativePieSeries>(uri, 1, 0, "PieSeries"); | |
59 | qmlRegisterType<DeclarativePieSlice>(uri, 1, 0, "PieSlice"); |
|
61 | qmlRegisterType<DeclarativePieSlice>(uri, 1, 0, "PieSlice"); | |
60 | qmlRegisterType<DeclarativeBarSet>(uri, 1, 0, "BarSet"); |
|
62 | qmlRegisterType<DeclarativeBarSet>(uri, 1, 0, "BarSet"); |
@@ -31,7 +31,7 ChartView { | |||||
31 |
|
31 | |||
32 | property variant series: daSeries |
|
32 | property variant series: daSeries | |
33 |
|
33 | |||
34 |
|
|
34 | BarSeries { | |
35 | id: daSeries |
|
35 | id: daSeries | |
36 | barCategories: [ "2008", "2009", "2010", "2011", "2012" ] |
|
36 | barCategories: [ "2008", "2009", "2010", "2011", "2012" ] | |
37 | BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] } |
|
37 | BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] } |
@@ -23,7 +23,7 import QtQuick 1.0 | |||||
23 | Rectangle { |
|
23 | Rectangle { | |
24 | id: button |
|
24 | id: button | |
25 | height: 25 |
|
25 | height: 25 | |
26 |
width: 1 |
|
26 | width: 140 | |
27 | color: "#afafaf" |
|
27 | color: "#afafaf" | |
28 | radius: 5 |
|
28 | radius: 5 | |
29 |
|
29 |
@@ -26,7 +26,7 Rectangle { | |||||
26 | width: parent.width |
|
26 | width: parent.width | |
27 | height: parent.height |
|
27 | height: parent.height | |
28 | property int viewNumber: 0 |
|
28 | property int viewNumber: 0 | |
29 |
property int viewCount: |
|
29 | property int viewCount: 9 | |
30 | property variant colors: ["#637D74", "#403D3A", "#8C3B3B", "#AB6937", "#D4A960"] |
|
30 | property variant colors: ["#637D74", "#403D3A", "#8C3B3B", "#AB6937", "#D4A960"] | |
31 | property int colorIndex: 0 |
|
31 | property int colorIndex: 0 | |
32 |
|
32 | |||
@@ -55,6 +55,15 Rectangle { | |||||
55 | } else if (viewNumber == 5) { |
|
55 | } else if (viewNumber == 5) { | |
56 | chartLoader.source = "BarChart.qml"; |
|
56 | chartLoader.source = "BarChart.qml"; | |
57 | editorLoader.source = "BarEditor.qml"; |
|
57 | editorLoader.source = "BarEditor.qml"; | |
|
58 | } else if (viewNumber == 6) { | |||
|
59 | chartLoader.source = "GroupedBarChart.qml"; | |||
|
60 | editorLoader.source = "BarEditor.qml"; | |||
|
61 | } else if (viewNumber == 7) { | |||
|
62 | chartLoader.source = "StackedBarChart.qml"; | |||
|
63 | editorLoader.source = "BarEditor.qml"; | |||
|
64 | } else if (viewNumber == 8) { | |||
|
65 | chartLoader.source = "PercentBarChart.qml"; | |||
|
66 | editorLoader.source = "BarEditor.qml"; | |||
58 | } else { |
|
67 | } else { | |
59 | console.log("Illegal view number"); |
|
68 | console.log("Illegal view number"); | |
60 | } |
|
69 | } | |
@@ -63,6 +72,7 Rectangle { | |||||
63 | Row { |
|
72 | Row { | |
64 | anchors.top: parent.top |
|
73 | anchors.top: parent.top | |
65 | anchors.bottom: buttonRow.top |
|
74 | anchors.bottom: buttonRow.top | |
|
75 | anchors.bottomMargin: 10 | |||
66 | anchors.left: parent.left |
|
76 | anchors.left: parent.left | |
67 | anchors.right: parent.right |
|
77 | anchors.right: parent.right | |
68 |
|
78 | |||
@@ -80,7 +90,7 Rectangle { | |||||
80 |
|
90 | |||
81 | Loader { |
|
91 | Loader { | |
82 | id: editorLoader |
|
92 | id: editorLoader | |
83 |
width: 2 |
|
93 | width: 280 | |
84 | height: parent.height |
|
94 | height: parent.height | |
85 | source: "PieEditor.qml" |
|
95 | source: "PieEditor.qml" | |
86 | onStatusChanged: { |
|
96 | onStatusChanged: { | |
@@ -93,43 +103,22 Rectangle { | |||||
93 |
|
103 | |||
94 | Row { |
|
104 | Row { | |
95 | id: buttonRow |
|
105 | id: buttonRow | |
96 |
height: |
|
106 | height: 40 | |
97 | anchors.bottom: parent.bottom |
|
107 | anchors.bottom: parent.bottom | |
98 | anchors.bottomMargin: 10 |
|
|||
99 | anchors.horizontalCenter: parent.horizontalCenter |
|
108 | anchors.horizontalCenter: parent.horizontalCenter | |
100 | spacing: 10 |
|
109 | spacing: 10 | |
101 |
|
110 | |||
102 |
|
|
111 | Button { | |
103 | height: buttonRow.height |
|
112 | text: "previous" | |
104 |
|
|
113 | onClicked: { | |
105 | color: "#afafaf" |
|
114 | viewNumber = (viewNumber + viewCount - 1) % viewCount; | |
106 | radius: 5 |
|
|||
107 | Text { |
|
|||
108 | anchors.centerIn: parent |
|
|||
109 | text: "previous" |
|
|||
110 | } |
|
|||
111 | MouseArea { |
|
|||
112 | anchors.fill: parent |
|
|||
113 | onClicked: { |
|
|||
114 | viewNumber = (viewNumber + viewCount - 1) % viewCount; |
|
|||
115 | } |
|
|||
116 | } |
|
115 | } | |
117 | } |
|
116 | } | |
118 |
|
117 | |||
119 |
|
|
118 | Button { | |
120 | height: buttonRow.height |
|
119 | text: "next" | |
121 |
|
|
120 | onClicked: { | |
122 | color: "#afafaf" |
|
121 | viewNumber = (viewNumber + 1) % viewCount; | |
123 | radius: 5 |
|
|||
124 | Text { |
|
|||
125 | anchors.centerIn: parent |
|
|||
126 | text: "next" |
|
|||
127 | } |
|
|||
128 | MouseArea { |
|
|||
129 | anchors.fill: parent |
|
|||
130 | onClicked: { |
|
|||
131 | viewNumber = (viewNumber + 1) % viewCount; |
|
|||
132 | } |
|
|||
133 | } |
|
122 | } | |
134 | } |
|
123 | } | |
135 | } |
|
124 | } |
@@ -14,5 +14,8 | |||||
14 | <file>qml/qmlchartproperties/BarEditor.qml</file> |
|
14 | <file>qml/qmlchartproperties/BarEditor.qml</file> | |
15 | <file>qml/qmlchartproperties/ScatterEditor.qml</file> |
|
15 | <file>qml/qmlchartproperties/ScatterEditor.qml</file> | |
16 | <file>qml/qmlchartproperties/AreaEditor.qml</file> |
|
16 | <file>qml/qmlchartproperties/AreaEditor.qml</file> | |
|
17 | <file>qml/qmlchartproperties/GroupedBarChart.qml</file> | |||
|
18 | <file>qml/qmlchartproperties/StackedBarChart.qml</file> | |||
|
19 | <file>qml/qmlchartproperties/PercentBarChart.qml</file> | |||
17 | </qresource> |
|
20 | </qresource> | |
18 | </RCC> |
|
21 | </RCC> |
General Comments 0
You need to be logged in to leave comments.
Login now