##// END OF EJS Templates
Add possibility to set brush image via QML API...
Titta Heikkala -
r2681:8344a0102a72
parent child
Show More
@@ -0,0 +1,107
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest BarCategoryAxis 1.3"
32 when: windowShown
33
34 function test_minMax() {
35 compare(barSeries1.axisX.min, "Jan", "AxisX min");
36 compare(barSeries1.axisX.max, "Jun", "AxisX max");
37 compare(barSeries1.axisY.min, 0, "AxisY min");
38 compare(barSeries1.axisY.max, 10, "AxisY max");
39 }
40
41 function test_categories() {
42 compare(barSeries1.axisX.count, 6, "AxisX count");
43 categoriesCountChangedSpy.clear();
44 categoriesChangedSpy.clear();
45
46 // Replace categories
47 barSeries1.axisX.categories = ["Tam", "Hel", "Maa", "Huh"];
48 compare(barSeries1.axisX.count, 4, "AxisX count");
49 compare(categoriesCountChangedSpy.count, 1, "onCountChanged");
50 compare(categoriesChangedSpy.count, 1, "onCategoriesChanged");
51
52 // Reset the original categories
53 barSeries1.axisX.categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
54 compare(barSeries1.axisX.count, 6, "AxisX count");
55 compare(categoriesCountChangedSpy.count, 2, "onCountChanged");
56 compare(categoriesChangedSpy.count, 2, "onCategoriesChanged");
57 }
58
59 function test_minMaxChanged() {
60 axisY.min = -1;
61 compare(minChangedSpy.count, 1, "onMinChanged");
62 compare(maxChangedSpy.count, 0, "onMaxChanged");
63 axisY.max = 12;
64 compare(minChangedSpy.count, 1, "onMinChanged");
65 compare(maxChangedSpy.count, 1, "onMaxChanged");
66 }
67 }
68
69 ChartView {
70 id: chartView
71 anchors.fill: parent
72
73 BarSeries {
74 id: barSeries1
75 axisX: BarCategoryAxis {
76 id: axisX
77 categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun" ]
78 }
79 axisY: ValuesAxis {
80 id: axisY
81 min: 0
82 max: 10
83 }
84 }
85
86 SignalSpy {
87 id: categoriesCountChangedSpy
88 target: axisX
89 signalName: "countChanged"
90 }
91 SignalSpy {
92 id: categoriesChangedSpy
93 target: axisX
94 signalName: "categoriesChanged"
95 }
96 SignalSpy {
97 id: minChangedSpy
98 target: axisY
99 signalName: "minChanged"
100 }
101 SignalSpy {
102 id: maxChangedSpy
103 target: axisY
104 signalName: "maxChanged"
105 }
106 }
107 }
@@ -0,0 +1,146
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest BarSeries 1.3"
32 when: windowShown
33
34 function test_properties() {
35 compare(barSeries.barWidth, 0.5);
36 compare(barSeries.labelsVisible, false);
37 }
38
39 function test_axes() {
40 verify(chartView.axisX() == barSeries.axisX);
41 verify(chartView.axisY() == barSeries.axisY);
42
43 compare(barSeries.axisX, stackedBarSeries.axisX);
44 compare(barSeries.axisY, stackedBarSeries.axisY);
45
46 compare(barSeries.axisX, percentBarSeries.axisX);
47 compare(barSeries.axisY, percentBarSeries.axisY);
48 }
49
50 function test_append() {
51 var setCount = 5;
52 var valueCount = 50;
53 addedSpy.clear();
54 append(setCount, valueCount);
55
56 compare(barSeries.count, setCount);
57 for (var k = 0; k < setCount; k++) {
58 compare(barSeries.at(k).count, valueCount);
59 compare(barSeries.at(k).label, "barset" + k);
60 }
61 compare(addedSpy.count, setCount);
62
63 barSeries.clear();
64 compare(barSeries.count, 0);
65 }
66
67 function test_insert() {
68 var setCount = 5;
69 var valueCount = 50;
70 addedSpy.clear();
71 append(setCount, valueCount);
72
73 for (var i = 0; i < setCount; i++) {
74 var values = [];
75 for (var j = 0; j < valueCount; j++)
76 values[j] = Math.random() * 10;
77 var set = barSeries.insert(i, "barset" + i, values);
78 compare(set.label, "barset" + i);
79 }
80
81 compare(barSeries.count, setCount * 2);
82 for (var k = 0; k < setCount * 2; k++)
83 compare(barSeries.at(k).count, valueCount);
84 compare(addedSpy.count, 2 * setCount);
85
86 barSeries.clear();
87 compare(barSeries.count, 0);
88 }
89
90 function test_remove() {
91 var setCount = 5;
92 var valueCount = 50;
93 removedSpy.clear();
94 append(setCount, valueCount);
95
96 for (var k = 0; k < setCount; k++)
97 barSeries.remove(barSeries.at(0));
98
99 compare(barSeries.count, 0);
100 compare(removedSpy.count, setCount);
101 }
102
103 // Not a test function, used by one or more test functions
104 function append(setCount, valueCount) {
105 for (var i = 0; i < setCount; i++) {
106 var values = [];
107 for (var j = 0; j < valueCount; j++)
108 values[j] = Math.random() * 10;
109 barSeries.append("barset" + i, values);
110 }
111 }
112 }
113
114 ChartView {
115 id: chartView
116 anchors.fill: parent
117
118 BarSeries {
119 id: barSeries
120 name: "bar"
121 axisX: BarCategoryAxis {}
122 axisY: ValueAxis { min: 0; max: 10 }
123
124 SignalSpy {
125 id: addedSpy
126 target: barSeries
127 signalName: "barsetsAdded"
128 }
129 SignalSpy {
130 id: removedSpy
131 target: barSeries
132 signalName: "barsetsRemoved"
133 }
134 }
135
136 StackedBarSeries {
137 id: stackedBarSeries
138 name: "stackedBar"
139 }
140
141 PercentBarSeries {
142 id: percentBarSeries
143 name: "percentBar"
144 }
145 }
146 }
@@ -0,0 +1,96
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest BoxPlotSeries 1.3"
32 when: windowShown
33
34 function test_properties() {
35 compare(boxPlotSeries.boxWidth, 0.5);
36 }
37
38 function test_setproperties() {
39 var set = boxPlotSeries.append("boxplot", [1, 2, 5, 6, 8]);
40 compare(set.label, "boxplot");
41 compare(set.count, 5);
42 }
43
44 function test_append() {
45 addedSpy.clear();
46 countChangedSpy.clear();
47 var count = 50;
48 for (var i = 0; i < count; i++)
49 boxPlotSeries.append("boxplot" + i, Math.random());
50 compare(addedSpy.count, count);
51 compare(countChangedSpy.count, count);
52 console.log("Check the series count once QTRD-2504 is implemented");
53 boxPlotSeries.clear();
54 }
55
56 function test_remove() {
57 removedSpy.clear();
58 countChangedSpy.clear();
59 var count = 50;
60 for (var i = 0; i < count; i++)
61 boxPlotSeries.append("boxplot" + i, Math.random());
62 for (var j = 0; j < count; j++)
63 boxPlotSeries.remove(boxPlotSeries.at(0));
64 compare(removedSpy.count, count);
65 compare(countChangedSpy.count, 2 * count);
66 console.log("Check the series count once QTRD-2504 is implemented");
67 }
68 }
69
70 ChartView {
71 id: chartView
72 anchors.fill: parent
73
74 BoxPlotSeries {
75 id: boxPlotSeries
76 name: "boxplot"
77 BoxSet { label: "Jan"; values: [3, 4, 5.1, 6.2, 8.5] }
78
79 SignalSpy {
80 id: addedSpy
81 target: boxPlotSeries
82 signalName: "boxsetsAdded"
83 }
84 SignalSpy {
85 id: removedSpy
86 target: boxPlotSeries
87 signalName: "boxsetsRemoved"
88 }
89 SignalSpy {
90 id: countChangedSpy
91 target: boxPlotSeries
92 signalName: "countChanged"
93 }
94 }
95 }
96 }
@@ -0,0 +1,84
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest CategoryAxis 1.3"
32 when: windowShown
33
34 function test_minMax() {
35 compare(lineSeries1.axisX.min, 0, "AxisX min");
36 compare(lineSeries1.axisX.max, 10, "AxisX max");
37 compare(lineSeries1.axisY.min, 0, "AxisY min");
38 compare(lineSeries1.axisY.max, 10, "AxisY max");
39 }
40
41 function test_categories() {
42 compare(lineSeries1.axisY.startValue, 0, "AxisY start value");
43 compare(lineSeries1.axisY.count, 3, "AxisY count");
44 compare(lineSeries1.axisY.categoriesLabels[0], "label0", "AxisY categories labels");
45 compare(lineSeries1.axisY.categoriesLabels[1], "label1", "AxisY categories labels");
46 compare(lineSeries1.axisY.categoriesLabels[2], "label2", "AxisY categories labels");
47 }
48 }
49
50 ChartView {
51 id: chartView
52 anchors.fill: parent
53
54 LineSeries {
55 id: lineSeries1
56 axisX: ValuesAxis {
57 id: axisX
58 min: 0
59 max: 10
60 }
61 axisY: CategoryAxis {
62 id: axisY
63 min: 0
64 max: 10
65 startValue: 0
66 CategoryRange {
67 label: "label0"
68 endValue: 1
69 }
70 CategoryRange {
71 label: "label1"
72 endValue: 3
73 }
74 CategoryRange {
75 label: "label2"
76 endValue: 10
77 }
78 }
79 XYPoint { x: -1; y: -1 }
80 XYPoint { x: 0; y: 0 }
81 XYPoint { x: 5; y: 5 }
82 }
83 }
84 }
@@ -0,0 +1,80
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest ChartView Properties 1.3"
32 when: windowShown
33
34 function test_chartViewProperties() {
35 compare(chartView.animationOptions, ChartView.NoAnimation, "ChartView.animationOptions");
36 verify(chartView.backgroundColor != undefined);
37 verify(chartView.margins.bottom > 0, "ChartView.margins.bottom");
38 verify(chartView.margins.top > 0, "ChartView.margins.top");
39 verify(chartView.margins.left > 0, "ChartView.margins.left");
40 verify(chartView.margins.right > 0, "ChartView.margins.right");
41 compare(chartView.count, 0, "ChartView.count");
42 compare(chartView.dropShadowEnabled, false, "ChartView.dropShadowEnabled");
43 verify(chartView.plotArea.height > 0, "ChartView.plotArea.height");
44 verify(chartView.plotArea.width > 0, "ChartView.plotArea.width");
45 verify(chartView.plotArea.x > 0, "ChartView.plotArea.x");
46 verify(chartView.plotArea.y > 0, "ChartView.plotArea.y");
47 compare(chartView.theme, ChartView.ChartThemeLight, "ChartView.theme");
48 compare(chartView.title, "", "ChartView.title");
49 compare(chartView.title, "", "ChartView.title");
50 verify(chartView.titleColor != undefined, "ChartView.titleColor");
51 compare(chartView.titleFont.bold, false, "ChartView.titleFont.bold");
52 // Legend
53 compare(chartView.legend.visible, true, "ChartView.legend.visible");
54 compare(chartView.legend.alignment, Qt.AlignTop, "ChartView.legend.alignment");
55 compare(chartView.legend.backgroundVisible, false, "ChartView.legend.backgroundVisible");
56 verify(chartView.legend.borderColor != undefined, "ChartView.legend.borderColor");
57 verify(chartView.legend.color != undefined, "ChartView.legend.color");
58 compare(chartView.legend.reverseMarkers, false, "ChartView.legend.reverseMarkers");
59 // Legend font
60 compare(chartView.legend.font.bold, false, "ChartView.legend.font.bold");
61 compare(chartView.legend.font.capitalization, Font.MixedCase, "ChartView.legend.font.capitalization");
62 verify(chartView.legend.font.family != "", "ChartView.legend.font.family");
63 compare(chartView.legend.font.italic, false, "ChartView.legend.font.italic");
64 compare(chartView.legend.font.letterSpacing, 0.0, "ChartView.legend.font.letterSpacing");
65 verify(chartView.legend.font.pixelSize > 0
66 && chartView.legend.font.pixelSize < 50, "ChartView.legend.font.pixelSize");
67 verify(chartView.legend.font.pointSize > 0
68 && chartView.legend.font.pointSize < 50, "ChartView.legend.font.pointSize");
69 compare(chartView.legend.font.strikeout, false, "ChartView.legend.font.strikeout");
70 compare(chartView.legend.font.underline, false, "ChartView.legend.font.underline");
71 compare(chartView.legend.font.weight, Font.Normal, "ChartView.legend.font.weight");
72 compare(chartView.legend.font.wordSpacing, 0.0, "ChartView.legend.font.wordSpacing");
73 }
74 }
75
76 ChartView {
77 id: chartView
78 anchors.fill: parent
79 }
80 }
@@ -0,0 +1,160
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest ChartView Functions 1.3"
32 when: windowShown
33
34 function test_chartViewSeriesAndAxes() {
35 // Create XY series
36 var line = chartView.createSeries(ChartView.SeriesTypeLine, "line");
37 verify(line != null && line != undefined);
38 var spline = chartView.createSeries(ChartView.SeriesTypeSpline, "spline");
39 verify(spline != null && spline != undefined);
40 var scatter = chartView.createSeries(ChartView.SeriesTypeScatter, "scatter");
41 verify(scatter != null && scatter != undefined);
42
43 // Create a series with specific axes
44 var line2 = chartView.createSeries(ChartView.SeriesTypeLine, "line2", chartView.axisX(line), chartView.axisY(line));
45
46 // Check that all the XY series use the same axes
47 verify(chartView.axisX(line) != null);
48 verify(chartView.axisY(line) != null);
49 compare(chartView.axisX(line), chartView.axisX(line2));
50 compare(chartView.axisY(line), chartView.axisY(line2));
51 compare(chartView.axisX(line), chartView.axisX(spline));
52 compare(chartView.axisY(line), chartView.axisY(spline));
53 compare(chartView.axisX(line), chartView.axisX(scatter));
54 compare(chartView.axisY(line), chartView.axisY(scatter));
55
56 var bar = chartView.createSeries(ChartView.SeriesTypeBar, "bar");
57 verify(bar != null && bar != undefined);
58 var stackedbar = chartView.createSeries(ChartView.SeriesTypeStackedBar, "stackedbar");
59 verify(stackedbar != null && stackedbar != undefined);
60 var percentbar = chartView.createSeries(ChartView.SeriesTypePercentBar, "percentbar");
61 verify(percentbar != null && percentbar != undefined);
62 var horizontalbar = chartView.createSeries(ChartView.SeriesTypeHorizontalBar, "horizontalbar");
63 verify(horizontalbar != null && horizontalbar != undefined);
64 var horizontalstackedbar = chartView.createSeries(ChartView.SeriesTypeHorizontalStackedBar, "horizontalstackedbar");
65 verify(horizontalstackedbar != null && horizontalstackedbar != undefined);
66 var horizontalpercentbar = chartView.createSeries(ChartView.SeriesTypeHorizontalPercentBar, "horizontalpercentbar");
67 verify(horizontalpercentbar != null && horizontalpercentbar != undefined);
68 var area = chartView.createSeries(ChartView.SeriesTypeArea, "area");
69 verify(area != null && area != undefined);
70
71 // Remove all series
72 chartView.removeAllSeries();
73 compare(chartView.count, 0);
74 }
75
76 function test_chartViewRange() {
77 // Set initial values
78 chartView.createSeries(ChartView.SeriesTypeLine, "line");
79 verify(chartView.axisX() != null);
80 verify(chartView.axisY() != null);
81 chartView.axisX().min = 1.0;
82 chartView.axisX().max = 2.0;
83 chartView.axisY().min = 1.0;
84 chartView.axisY().max = 2.0;
85
86 var xMax = chartView.axisX().max;
87 var xMin = chartView.axisX().min;
88 var yMax = chartView.axisY().max;
89 var yMin = chartView.axisY().min;
90
91 // zoom x 2.5
92 chartView.zoom(1.5);
93 verify(chartView.axisX().max < xMax);
94 verify(chartView.axisX().min > xMin);
95 verify(chartView.axisY().max < yMax);
96 verify(chartView.axisY().min > yMin);
97 xMax = chartView.axisX().max;
98 xMin = chartView.axisX().min;
99 yMax = chartView.axisY().max;
100 yMin = chartView.axisY().min;
101
102 // zoom x 0.5
103 chartView.zoom(0.5);
104 verify(chartView.axisX().max > xMax);
105 verify(chartView.axisX().min < xMin);
106 verify(chartView.axisY().max > yMax);
107 verify(chartView.axisY().min < yMin);
108 xMax = chartView.axisX().max;
109 xMin = chartView.axisX().min;
110 yMax = chartView.axisY().max;
111 yMin = chartView.axisY().min;
112
113 // Scroll up
114 chartView.scrollUp(10);
115 compare(chartView.axisX().max, xMax);
116 compare(chartView.axisX().min, xMin);
117 verify(chartView.axisY().max > yMax);
118 verify(chartView.axisY().min > yMin);
119 xMax = chartView.axisX().max;
120 xMin = chartView.axisX().min;
121 yMax = chartView.axisY().max;
122 yMin = chartView.axisY().min;
123
124 // Scroll down
125 chartView.scrollDown(10);
126 compare(chartView.axisX().max, xMax);
127 compare(chartView.axisX().min, xMin);
128 verify(chartView.axisY().max < yMax);
129 verify(chartView.axisY().min < yMin);
130 xMax = chartView.axisX().max;
131 xMin = chartView.axisX().min;
132 yMax = chartView.axisY().max;
133 yMin = chartView.axisY().min;
134
135 // Scroll left
136 chartView.scrollLeft(10);
137 verify(chartView.axisX().max < xMax);
138 verify(chartView.axisX().min < xMin);
139 compare(chartView.axisY().max, yMax);
140 compare(chartView.axisY().min, yMin);
141 xMax = chartView.axisX().max;
142 xMin = chartView.axisX().min;
143 yMax = chartView.axisY().max;
144 yMin = chartView.axisY().min;
145
146 // Scroll right
147 chartView.scrollRight(10);
148 verify(chartView.axisX().max > xMax);
149 verify(chartView.axisX().min > xMin);
150 compare(chartView.axisY().max, yMax);
151 compare(chartView.axisY().min, yMin);
152 }
153 }
154
155 ChartView {
156 id: chartView
157 anchors.fill: parent
158 title: "Chart"
159 }
160 }
@@ -0,0 +1,73
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest ChartView Signals 1.3"
32 when: windowShown
33
34 // Verify onSeriesAdded and onSeriesRemoved signals
35 function test_chartView() {
36 var series = chartView.createSeries(ChartView.SeriesTypeLine, "line");
37 seriesAddedSpy.wait();
38 compare(seriesAddedSpy.count, 1, "ChartView.onSeriesAdded");
39
40 // Modifying layout triggers more than one plotAreaChanged signal
41 chartView.titleFont.pixelSize = 50;
42 verify(plotAreaChangedSpy.count > 0, "ChartView.onPlotAreaChanged");
43
44 chartView.removeSeries(series);
45 seriesRemovedSpy.wait();
46 compare(seriesRemovedSpy.count, 1, "ChartView.onSeriesAdded");
47 }
48 }
49
50 ChartView {
51 id: chartView
52 anchors.fill: parent
53 title: "Chart"
54
55 SignalSpy {
56 id: plotAreaChangedSpy
57 target: chartView
58 signalName: "plotAreaChanged"
59 }
60
61 SignalSpy {
62 id: seriesAddedSpy
63 target: chartView
64 signalName: "seriesAdded"
65 }
66
67 SignalSpy {
68 id: seriesRemovedSpy
69 target: chartView
70 signalName: "seriesRemoved"
71 }
72 }
73 }
@@ -0,0 +1,131
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest PieSeries 1.3"
32 when: windowShown
33
34 function test_properties() {
35 compare(pieSeries.endAngle, 360);
36 compare(pieSeries.holeSize, 0);
37 compare(pieSeries.horizontalPosition, 0.5);
38 compare(pieSeries.size, 0.7);
39 compare(pieSeries.startAngle, 0);
40 compare(pieSeries.sum, 0);
41 compare(pieSeries.verticalPosition, 0.5);
42 }
43
44 function test_sliceproperties() {
45 var slice = pieSeries.append("slice", 10);
46 compare(slice.angleSpan, 360.0);
47 verify(slice.borderColor != undefined);
48 compare(slice.borderWidth, 1);
49 verify(slice.color != undefined);
50 compare(slice.explodeDistanceFactor, 0.15);
51 compare(slice.exploded, false);
52 compare(slice.label, "slice");
53 compare(slice.labelArmLengthFactor, 0.15);
54 verify(slice.labelColor != undefined);
55 compare(slice.labelFont.bold, false);
56 compare(slice.labelPosition, PieSlice.LabelOutside);
57 compare(slice.labelVisible, false);
58 compare(slice.percentage, 1.0);
59 compare(slice.startAngle, 0.0);
60 compare(slice.value, 10.0);
61 }
62
63 function test_append() {
64 addedSpy.clear();
65 countChangedSpy.clear();
66 sumChangedSpy.clear();
67 var count = 50;
68 for (var i = 0; i < count; i++)
69 pieSeries.append("slice" + i, Math.random());
70 compare(addedSpy.count, count);
71 compare(countChangedSpy.count, count);
72 compare(sumChangedSpy.count, count);
73 pieSeries.clear();
74 }
75
76 function test_remove() {
77 removedSpy.clear();
78 countChangedSpy.clear();
79 sumChangedSpy.clear();
80 var count = 50;
81 for (var i = 0; i < count; i++)
82 pieSeries.append("slice" + i, Math.random());
83 for (var j = 0; j < count; j++)
84 pieSeries.remove(pieSeries.at(0));
85 compare(removedSpy.count, count);
86 compare(countChangedSpy.count, 2 * count);
87 compare(sumChangedSpy.count, 2 * count);
88 compare(pieSeries.count, 0);
89 }
90
91 function test_find() {
92 var count = 50;
93 for (var i = 0; i < count; i++)
94 pieSeries.append("slice" + i, Math.random());
95 for (var j = 0; j < count; j++)
96 compare(pieSeries.find("slice" + j).label, "slice" + j);
97 pieSeries.clear();
98 }
99 }
100
101 ChartView {
102 id: chartView
103 anchors.fill: parent
104
105 PieSeries {
106 id: pieSeries
107 name: "pie"
108
109 SignalSpy {
110 id: addedSpy
111 target: pieSeries
112 signalName: "added"
113 }
114 SignalSpy {
115 id: removedSpy
116 target: pieSeries
117 signalName: "removed"
118 }
119 SignalSpy {
120 id: sumChangedSpy
121 target: pieSeries
122 signalName: "sumChanged"
123 }
124 SignalSpy {
125 id: countChangedSpy
126 target: pieSeries
127 signalName: "countChanged"
128 }
129 }
130 }
131 }
@@ -0,0 +1,116
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest ValueAxis 1.3"
32 when: windowShown
33
34 // test functions are run in alphabetical order, the name has 'a' so that it
35 // will be the first function to execute.
36 function test_a_properties() {
37 // Default properties
38 verify(axisX.min < 0, "AxisX min");
39 verify(axisX.max > 0, "AxisX max");
40 verify(axisY.min < 0, "AxisY min");
41 verify(axisY.max > 0, "AxisY max");
42 verify(axisX.tickCount == 5, "AxisX tick count");
43 verify(axisY.tickCount == 5, "AxisY tick count");
44 verify(axisX.labelFormat == "", "label format");
45
46 // Modify properties
47 axisX.tickCount = 3;
48 verify(axisX.tickCount == 3, "set tick count");
49 }
50
51 function test_functions() {
52 // Set the axis ranges to not "nice" ones...
53 var min = 0.032456456;
54 var max = 10.67845634;
55 axisX.min = min;
56 axisX.max = max;
57 axisY.min = min;
58 axisY.max = max;
59
60 // ...And then apply nice numbers and verify the range was changed
61 axisX.applyNiceNumbers();
62 axisY.applyNiceNumbers();
63 verify(axisX.min != min);
64 verify(axisX.max != max);
65 verify(axisY.min != min);
66 verify(axisY.max != max);
67 }
68
69 function test_signals() {
70 minChangedSpy.clear();
71 maxChangedSpy.clear();
72 axisX.min = 2;
73 compare(minChangedSpy.count, 1, "onMinChanged");
74 compare(maxChangedSpy.count, 0, "onMaxChanged");
75
76 axisX.max = 8;
77 compare(minChangedSpy.count, 1, "onMinChanged");
78 compare(maxChangedSpy.count, 1, "onMaxChanged");
79
80 // restore original values
81 axisX.min = 0;
82 axisX.max = 10;
83 compare(minChangedSpy.count, 2, "onMinChanged");
84 compare(maxChangedSpy.count, 2, "onMaxChanged");
85 }
86 }
87
88 ChartView {
89 id: chartView
90 anchors.fill: parent
91
92 LineSeries {
93 id: lineSeries1
94 axisX: ValueAxis {
95 id: axisX
96 }
97 axisY: ValueAxis {
98 id: axisY
99 }
100 XYPoint { x: -1; y: -1 }
101 XYPoint { x: 0; y: 0 }
102 XYPoint { x: 5; y: 5 }
103 }
104
105 SignalSpy {
106 id: minChangedSpy
107 target: axisX
108 signalName: "minChanged"
109 }
110 SignalSpy {
111 id: maxChangedSpy
112 target: axisX
113 signalName: "maxChanged"
114 }
115 }
116 }
@@ -0,0 +1,260
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 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 Enterprise Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Enterprise licenses may use this file in
11 ** accordance with the Qt Enterprise 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 2.0
22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
24
25 Rectangle {
26 width: 400
27 height: 300
28
29 TestCase {
30 id: tc1
31 name: "tst_qml-qtquicktest XY Series 1.3"
32 when: windowShown
33
34 function test_properties() {
35 verify(lineSeries.color != undefined);
36 compare(lineSeries.pointsVisible, false);
37 compare(lineSeries.capStyle, Qt.SquareCap);
38 compare(lineSeries.style, Qt.SolidLine);
39 compare(lineSeries.width, 2.0);
40
41 verify(splineSeries.color != undefined);
42 compare(splineSeries.pointsVisible, false);
43 compare(splineSeries.capStyle, Qt.SquareCap);
44 compare(splineSeries.style, Qt.SolidLine);
45 compare(splineSeries.width, 2.0);
46
47 verify(scatterSeries.color != undefined);
48 verify(scatterSeries.borderColor != undefined);
49 compare(scatterSeries.borderWidth, 2.0);
50 compare(scatterSeries.markerShape, ScatterSeries.MarkerShapeCircle);
51 compare(scatterSeries.markerSize, 15.0);
52
53 verify(areaSeries.color != undefined);
54 verify(areaSeries.borderColor != undefined);
55 compare(areaSeries.borderWidth, 2.0);
56 }
57
58 function test_axes() {
59 // Axis initialization
60 compare(chartView.axisX(), lineSeries.axisX);
61 compare(chartView.axisY(), lineSeries.axisY);
62 compare(lineSeries.axisX, splineSeries.axisX);
63 compare(lineSeries.axisY, splineSeries.axisY);
64 compare(lineSeries.axisX, areaSeries.axisX);
65 compare(lineSeries.axisY, areaSeries.axisY);
66 }
67
68 function test_append() {
69 lineSeriesPointAddedSpy.clear();
70 splineSeriesPointAddedSpy.clear();
71 scatterSeriesPointAddedSpy.clear();
72 var count = append();
73 compare(lineSeries.count, count);
74 compare(splineSeries.count, count);
75 compare(scatterSeries.count, count);
76 compare(lineSeriesPointAddedSpy.count, count);
77 compare(splineSeriesPointAddedSpy.count, count);
78 compare(scatterSeriesPointAddedSpy.count, count);
79 clear();
80 compare(lineSeries.count, 0);
81 compare(splineSeries.count, 0);
82 compare(scatterSeries.count, 0);
83 }
84
85 function test_replace() {
86 var count = append();
87 for (var i = 0; i < count; i++) {
88 lineSeries.replace(lineSeries.at(i).x, lineSeries.at(i).y, i, Math.random());
89 splineSeries.replace(splineSeries.at(i).x, splineSeries.at(i).y, i, Math.random());
90 scatterSeries.replace(scatterSeries.at(i).x, scatterSeries.at(i).y, i, Math.random());
91 }
92 compare(lineSeries.count, count);
93 compare(splineSeries.count, count);
94 compare(scatterSeries.count, count);
95 compare(lineSeriesPointReplacedSpy.count, count);
96 compare(splineSeriesPointReplacedSpy.count, count);
97 compare(scatterSeriesPointReplacedSpy.count, count);
98 clear();
99 }
100
101 function test_insert() {
102 var count = append();
103 lineSeriesPointAddedSpy.clear();
104 splineSeriesPointAddedSpy.clear();
105 scatterSeriesPointAddedSpy.clear();
106 for (var i = 0; i < count; i++) {
107 lineSeries.insert(i * 2, i, Math.random());
108 splineSeries.insert(i * 2, i, Math.random());
109 scatterSeries.insert(i * 2, i, Math.random());
110 }
111 compare(lineSeries.count, count * 2);
112 compare(splineSeries.count, count * 2);
113 compare(scatterSeries.count, count * 2);
114 compare(lineSeriesPointAddedSpy.count, count);
115 compare(splineSeriesPointAddedSpy.count, count);
116 compare(scatterSeriesPointAddedSpy.count, count);
117 clear();
118 }
119
120 function test_remove() {
121 lineSeriesPointRemovedSpy.clear();
122 splineSeriesPointRemovedSpy.clear();
123 scatterSeriesPointRemovedSpy.clear();
124 var count = append();
125 for (var i = 0; i < count; i++) {
126 lineSeries.remove(lineSeries.at(0).x, lineSeries.at(0).y);
127 splineSeries.remove(splineSeries.at(0).x, splineSeries.at(0).y);
128 scatterSeries.remove(scatterSeries.at(0).x, scatterSeries.at(0).y);
129 }
130 compare(lineSeries.count, 0);
131 compare(splineSeries.count, 0);
132 compare(scatterSeries.count, 0);
133 compare(lineSeriesPointRemovedSpy.count, count);
134 compare(splineSeriesPointRemovedSpy.count, count);
135 compare(scatterSeriesPointRemovedSpy.count, count);
136 }
137
138 // Not a test function, called from test functions
139 function append() {
140 var count = 100;
141 chartView.axisX().min = 0;
142 chartView.axisX().max = 100;
143 chartView.axisY().min = 0;
144 chartView.axisY().max = 1;
145
146 for (var i = 0; i < count; i++) {
147 lineSeries.append(i, Math.random());
148 splineSeries.append(i, Math.random());
149 scatterSeries.append(i, Math.random());
150 }
151
152 return count;
153 }
154
155 // Not a test function, called from test functions
156 function clear() {
157 lineSeries.clear();
158 splineSeries.clear();
159 scatterSeries.clear();
160 }
161 }
162
163 ChartView {
164 id: chartView
165 anchors.fill: parent
166
167 LineSeries {
168 id: lineSeries
169 name: "line"
170
171 SignalSpy {
172 id: lineSeriesPointAddedSpy
173 target: lineSeries
174 signalName: "pointAdded"
175 }
176
177 SignalSpy {
178 id: lineSeriesPointReplacedSpy
179 target: lineSeries
180 signalName: "pointReplaced"
181 }
182
183 SignalSpy {
184 id: lineSeriesPointsReplacedSpy
185 target: lineSeries
186 signalName: "pointsReplaced"
187 }
188
189 SignalSpy {
190 id: lineSeriesPointRemovedSpy
191 target: lineSeries
192 signalName: "pointRemoved"
193 }
194 }
195
196 AreaSeries {
197 id: areaSeries
198 name: "area"
199 upperSeries: lineSeries
200 }
201
202 SplineSeries {
203 id: splineSeries
204 name: "spline"
205
206 SignalSpy {
207 id: splineSeriesPointAddedSpy
208 target: splineSeries
209 signalName: "pointAdded"
210 }
211
212 SignalSpy {
213 id: splineSeriesPointReplacedSpy
214 target: splineSeries
215 signalName: "pointReplaced"
216 }
217
218 SignalSpy {
219 id: splineSeriesPointsReplacedSpy
220 target: splineSeries
221 signalName: "pointsReplaced"
222 }
223
224 SignalSpy {
225 id: splineSeriesPointRemovedSpy
226 target: splineSeries
227 signalName: "pointRemoved"
228 }
229 }
230
231 ScatterSeries {
232 id: scatterSeries
233 name: "scatter"
234
235 SignalSpy {
236 id: scatterSeriesPointAddedSpy
237 target: scatterSeries
238 signalName: "pointAdded"
239 }
240
241 SignalSpy {
242 id: scatterSeriesPointReplacedSpy
243 target: scatterSeries
244 signalName: "pointReplaced"
245 }
246
247 SignalSpy {
248 id: scatterSeriesPointsReplacedSpy
249 target: scatterSeries
250 signalName: "pointsReplaced"
251 }
252
253 SignalSpy {
254 id: scatterSeriesPointRemovedSpy
255 target: scatterSeries
256 signalName: "pointRemoved"
257 }
258 }
259 }
260 }
@@ -33,6 +33,7 DeclarativeAreaSeries::DeclarativeAreaSeries(QObject *parent) :
33 33 connect(m_axes, SIGNAL(axisYRightChanged(QAbstractAxis*)), this, SIGNAL(axisYRightChanged(QAbstractAxis*)));
34 34 connect(m_axes, SIGNAL(axisXChanged(QAbstractAxis*)), this, SIGNAL(axisAngularChanged(QAbstractAxis*)));
35 35 connect(m_axes, SIGNAL(axisYChanged(QAbstractAxis*)), this, SIGNAL(axisRadialChanged(QAbstractAxis*)));
36 connect(this, SIGNAL(brushChanged()), this, SLOT(handleBrushChanged()));
36 37 }
37 38
38 39 void DeclarativeAreaSeries::setUpperSeries(DeclarativeLineSeries *series)
@@ -70,6 +71,45 void DeclarativeAreaSeries::setBorderWidth(qreal width)
70 71 }
71 72 }
72 73
74 QString DeclarativeAreaSeries::brushFilename() const
75 {
76 return m_brushFilename;
77 }
78
79 void DeclarativeAreaSeries::setBrushFilename(const QString &brushFilename)
80 {
81 QImage brushImage(brushFilename);
82 if (QAreaSeries::brush().textureImage() != brushImage) {
83 QBrush brush = QAreaSeries::brush();
84 brush.setTextureImage(brushImage);
85 QAreaSeries::setBrush(brush);
86 m_brushFilename = brushFilename;
87 m_brushImage = brushImage;
88 emit brushFilenameChanged(brushFilename);
89 }
90 }
91
92 void DeclarativeAreaSeries::handleBrushChanged()
93 {
94 // If the texture image of the brush has changed along the brush
95 // the brush file name needs to be cleared.
96 if (!m_brushFilename.isEmpty() && QAreaSeries::brush().textureImage() != m_brushImage) {
97 m_brushFilename.clear();
98 emit brushFilenameChanged(QString(""));
99 }
100 }
101
102 void DeclarativeAreaSeries::setBrush(const QBrush &brush)
103 {
104 QAreaSeries::setBrush(brush);
105 emit brushChanged();
106 }
107
108 QBrush DeclarativeAreaSeries::brush() const
109 {
110 return QAreaSeries::brush();
111 }
112
73 113 #include "moc_declarativeareaseries.cpp"
74 114
75 115 QTCOMMERCIALCHART_END_NAMESPACE
@@ -39,6 +39,8 class DeclarativeAreaSeries : public QAreaSeries
39 39 Q_PROPERTY(QAbstractAxis *axisAngular READ axisAngular WRITE setAxisAngular NOTIFY axisAngularChanged REVISION 3)
40 40 Q_PROPERTY(QAbstractAxis *axisRadial READ axisRadial WRITE setAxisRadial NOTIFY axisRadialChanged REVISION 3)
41 41 Q_PROPERTY(qreal borderWidth READ borderWidth WRITE setBorderWidth NOTIFY borderWidthChanged REVISION 1)
42 Q_PROPERTY(QString brushFilename READ brushFilename WRITE setBrushFilename NOTIFY brushFilenameChanged REVISION 4)
43 Q_PROPERTY(QBrush brush READ brush WRITE setBrush NOTIFY brushChanged REVISION 4)
42 44
43 45 public:
44 46 explicit DeclarativeAreaSeries(QObject *parent = 0);
@@ -60,6 +62,10 public:
60 62 Q_REVISION(3) void setAxisRadial(QAbstractAxis *axis) { m_axes->setAxisY(axis); }
61 63 qreal borderWidth() const;
62 64 void setBorderWidth(qreal borderWidth);
65 QString brushFilename() const;
66 void setBrushFilename(const QString &brushFilename);
67 void setBrush(const QBrush &brush);
68 QBrush brush() const;
63 69
64 70 Q_SIGNALS:
65 71 Q_REVISION(1) void axisXChanged(QAbstractAxis *axis);
@@ -69,9 +75,18 Q_SIGNALS:
69 75 Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis);
70 76 Q_REVISION(3) void axisAngularChanged(QAbstractAxis *axis);
71 77 Q_REVISION(3) void axisRadialChanged(QAbstractAxis *axis);
78 Q_REVISION(4) void brushChanged();
79 Q_REVISION(4) void brushFilenameChanged(const QString &brushFilename);
80
81 private Q_SLOTS:
82 void handleBrushChanged();
72 83
73 84 public:
74 85 DeclarativeAxes *m_axes;
86
87 private:
88 QString m_brushFilename;
89 QImage m_brushImage;
75 90 };
76 91
77 92 QTCOMMERCIALCHART_END_NAMESPACE
@@ -30,6 +30,7 DeclarativeBarSet::DeclarativeBarSet(QObject *parent)
30 30 {
31 31 connect(this, SIGNAL(valuesAdded(int,int)), this, SLOT(handleCountChanged(int,int)));
32 32 connect(this, SIGNAL(valuesRemoved(int,int)), this, SLOT(handleCountChanged(int,int)));
33 connect(this, SIGNAL(brushChanged()), this, SLOT(handleBrushChanged()));
33 34 }
34 35
35 36 void DeclarativeBarSet::handleCountChanged(int index, int count)
@@ -97,6 +98,34 void DeclarativeBarSet::setValues(QVariantList values)
97 98 }
98 99 }
99 100
101 QString DeclarativeBarSet::brushFilename() const
102 {
103 return m_brushFilename;
104 }
105
106 void DeclarativeBarSet::setBrushFilename(const QString &brushFilename)
107 {
108 QImage brushImage(brushFilename);
109 if (QBarSet::brush().textureImage() != brushImage) {
110 QBrush brush = QBarSet::brush();
111 brush.setTextureImage(brushImage);
112 QBarSet::setBrush(brush);
113 m_brushFilename = brushFilename;
114 m_brushImage = brushImage;
115 emit brushFilenameChanged(brushFilename);
116 }
117 }
118
119 void DeclarativeBarSet::handleBrushChanged()
120 {
121 // If the texture image of the brush has changed along the brush
122 // the brush file name needs to be cleared.
123 if (!m_brushFilename.isEmpty() && QBarSet::brush().textureImage() != m_brushImage) {
124 m_brushFilename.clear();
125 emit brushFilenameChanged(QString(""));
126 }
127 }
128
100 129 // Declarative bar series ======================================================================================
101 130 DeclarativeBarSeries::DeclarativeBarSeries(QDECLARATIVE_ITEM *parent) :
102 131 QBarSeries(parent),
@@ -49,6 +49,7 class DeclarativeBarSet : public QBarSet
49 49 Q_PROPERTY(QVariantList values READ values WRITE setValues)
50 50 Q_PROPERTY(qreal borderWidth READ borderWidth WRITE setBorderWidth NOTIFY borderWidthChanged REVISION 1)
51 51 Q_PROPERTY(int count READ count NOTIFY countChanged)
52 Q_PROPERTY(QString brushFilename READ brushFilename WRITE setBrushFilename NOTIFY brushFilenameChanged REVISION 2)
52 53
53 54 public:
54 55 explicit DeclarativeBarSet(QObject *parent = 0);
@@ -56,6 +57,8 public:
56 57 void setValues(QVariantList values);
57 58 qreal borderWidth() const;
58 59 void setBorderWidth(qreal borderWidth);
60 QString brushFilename() const;
61 void setBrushFilename(const QString &brushFilename);
59 62
60 63 public: // From QBarSet
61 64 Q_INVOKABLE void append(qreal value) { QBarSet::append(value); }
@@ -66,9 +69,15 public: // From QBarSet
66 69 Q_SIGNALS:
67 70 void countChanged(int count);
68 71 Q_REVISION(1) void borderWidthChanged(qreal width);
72 Q_REVISION(2) void brushFilenameChanged(const QString &brushFilename);
69 73
70 74 private Q_SLOTS:
71 75 void handleCountChanged(int index, int count);
76 void handleBrushChanged();
77
78 private:
79 QString m_brushFilename;
80 QImage m_brushImage;
72 81 };
73 82
74 83 class DeclarativeBarSeries : public QBarSeries, public QDECLARATIVE_PARSER_STATUS
@@ -245,6 +245,7 DeclarativeBoxSet::DeclarativeBoxSet(const QString label, QObject *parent)
245 245 {
246 246 connect(this, SIGNAL(valuesChanged()), this, SIGNAL(changedValues()));
247 247 connect(this, SIGNAL(valueChanged(int)), this, SIGNAL(changedValue(int)));
248 connect(this, SIGNAL(brushChanged()), this, SLOT(handleBrushChanged()));
248 249 }
249 250
250 251 QVariantList DeclarativeBoxSet::values()
@@ -263,6 +264,34 void DeclarativeBoxSet::setValues(QVariantList values)
263 264 }
264 265 }
265 266
267 QString DeclarativeBoxSet::brushFilename() const
268 {
269 return m_brushFilename;
270 }
271
272 void DeclarativeBoxSet::setBrushFilename(const QString &brushFilename)
273 {
274 QImage brushImage(brushFilename);
275 if (QBoxSet::brush().textureImage() != brushImage) {
276 QBrush brush = QBoxSet::brush();
277 brush.setTextureImage(brushImage);
278 QBoxSet::setBrush(brush);
279 m_brushFilename = brushFilename;
280 m_brushImage = brushImage;
281 emit brushFilenameChanged(brushFilename);
282 }
283 }
284
285 void DeclarativeBoxSet::handleBrushChanged()
286 {
287 // If the texture image of the brush has changed along the brush
288 // the brush file name needs to be cleared.
289 if (!m_brushFilename.isEmpty() && QBoxSet::brush().textureImage() != m_brushImage) {
290 m_brushFilename.clear();
291 emit brushFilenameChanged(QString(""));
292 }
293 }
294
266 295 // =====================================================
267 296
268 297 DeclarativeBoxPlotSeries::DeclarativeBoxPlotSeries(QDECLARATIVE_ITEM *parent) :
@@ -275,6 +304,7 DeclarativeBoxPlotSeries::DeclarativeBoxPlotSeries(QDECLARATIVE_ITEM *parent) :
275 304 connect(m_axes, SIGNAL(axisYRightChanged(QAbstractAxis*)), this, SIGNAL(axisYRightChanged(QAbstractAxis*)));
276 305 connect(this, SIGNAL(hovered(bool, QBoxSet*)), this, SLOT(onHovered(bool, QBoxSet*)));
277 306 connect(this, SIGNAL(clicked(QBoxSet*)), this, SLOT(onClicked(QBoxSet*)));
307 connect(this, SIGNAL(brushChanged()), this, SLOT(handleBrushChanged()));
278 308 }
279 309
280 310 void DeclarativeBoxPlotSeries::classBegin()
@@ -334,6 +364,34 void DeclarativeBoxPlotSeries::onClicked(QBoxSet *boxset)
334 364 emit clicked(qobject_cast<DeclarativeBoxSet *>(boxset));
335 365 }
336 366
367 QString DeclarativeBoxPlotSeries::brushFilename() const
368 {
369 return m_brushFilename;
370 }
371
372 void DeclarativeBoxPlotSeries::setBrushFilename(const QString &brushFilename)
373 {
374 QImage brushImage(brushFilename);
375 if (QBoxPlotSeries::brush().textureImage() != brushImage) {
376 QBrush brush = QBoxPlotSeries::brush();
377 brush.setTextureImage(brushImage);
378 QBoxPlotSeries::setBrush(brush);
379 m_brushFilename = brushFilename;
380 m_brushImage = brushImage;
381 emit brushFilenameChanged(brushFilename);
382 }
383 }
384
385 void DeclarativeBoxPlotSeries::handleBrushChanged()
386 {
387 // If the texture image of the brush has changed along the brush
388 // the brush file name needs to be cleared.
389 if (!m_brushFilename.isEmpty() && QBoxPlotSeries::brush().textureImage() != m_brushImage) {
390 m_brushFilename.clear();
391 emit brushFilenameChanged(QString(""));
392 }
393 }
394
337 395 #include "moc_declarativeboxplotseries.cpp"
338 396
339 397 QTCOMMERCIALCHART_END_NAMESPACE
@@ -40,6 +40,7 class DeclarativeBoxSet : public QBoxSet
40 40 Q_PROPERTY(QVariantList values READ values WRITE setValues)
41 41 Q_PROPERTY(QString label READ label WRITE setLabel)
42 42 Q_PROPERTY(int count READ count)
43 Q_PROPERTY(QString brushFilename READ brushFilename WRITE setBrushFilename NOTIFY brushFilenameChanged REVISION 1)
43 44 Q_ENUMS(ValuePositions)
44 45
45 46 public: // duplicate from QBoxSet
@@ -55,6 +56,8 public:
55 56 explicit DeclarativeBoxSet(const QString label = "", QObject *parent = 0);
56 57 QVariantList values();
57 58 void setValues(QVariantList values);
59 QString brushFilename() const;
60 void setBrushFilename(const QString &brushFilename);
58 61
59 62 public: // From QBoxSet
60 63 Q_INVOKABLE void append(qreal value) { QBoxSet::append(value); }
@@ -65,6 +68,14 public: // From QBoxSet
65 68 Q_SIGNALS:
66 69 void changedValues();
67 70 void changedValue(int index);
71 Q_REVISION(1) void brushFilenameChanged(const QString &brushFilename);
72
73 private Q_SLOTS:
74 void handleBrushChanged();
75
76 private:
77 QString m_brushFilename;
78 QImage m_brushImage;
68 79 };
69 80
70 81 class DeclarativeBoxPlotSeries : public QBoxPlotSeries, public QDECLARATIVE_PARSER_STATUS
@@ -84,6 +95,7 class DeclarativeBoxPlotSeries : public QBoxPlotSeries, public QDECLARATIVE_PARS
84 95 #else
85 96 Q_PROPERTY(QDeclarativeListProperty<QObject> seriesChildren READ seriesChildren)
86 97 #endif
98 Q_PROPERTY(QString brushFilename READ brushFilename WRITE setBrushFilename NOTIFY brushFilenameChanged REVISION 1)
87 99 Q_CLASSINFO("DefaultProperty", "seriesChildren")
88 100
89 101 public:
@@ -97,6 +109,8 public:
97 109 QAbstractAxis *axisYRight() { return m_axes->axisYRight(); }
98 110 void setAxisYRight(QAbstractAxis *axis) { m_axes->setAxisYRight(axis); }
99 111 QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren();
112 QString brushFilename() const;
113 void setBrushFilename(const QString &brushFilename);
100 114
101 115 public:
102 116 Q_INVOKABLE DeclarativeBoxSet *at(int index);
@@ -117,14 +131,22 Q_SIGNALS:
117 131 void axisYRightChanged(QAbstractAxis *axis);
118 132 void clicked(DeclarativeBoxSet *boxset);
119 133 void hovered(bool status, DeclarativeBoxSet *boxset);
134 Q_REVISION(1) void brushFilenameChanged(const QString &brushFilename);
120 135
121 136 public Q_SLOTS:
122 137 static void appendSeriesChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element);
123 138 void onHovered(bool status, QBoxSet *boxset);
124 139 void onClicked(QBoxSet *boxset);
125 140
141 private Q_SLOTS:
142 void handleBrushChanged();
143
126 144 public:
127 145 DeclarativeAxes *m_axes;
146
147 private:
148 QString m_brushFilename;
149 QImage m_brushImage;
128 150 };
129 151
130 152 QTCOMMERCIALCHART_END_NAMESPACE
@@ -25,6 +25,41
25 25
26 26 QTCOMMERCIALCHART_BEGIN_NAMESPACE
27 27
28 DeclarativePieSlice::DeclarativePieSlice(QObject *parent)
29 : QPieSlice(parent)
30 {
31 connect(this, SIGNAL(brushChanged()), this, SLOT(handleBrushChanged()));
32 }
33
34 QString DeclarativePieSlice::brushFilename() const
35 {
36 return m_brushFilename;
37 }
38
39 void DeclarativePieSlice::setBrushFilename(const QString &brushFilename)
40 {
41 QImage brushImage(brushFilename);
42 if (QPieSlice::brush().textureImage() != brushImage) {
43 QBrush brush = QPieSlice::brush();
44 brush.setTextureImage(brushImage);
45 QPieSlice::setBrush(brush);
46 m_brushFilename = brushFilename;
47 m_brushImage = brushImage;
48 emit brushFilenameChanged(brushFilename);
49 }
50 }
51
52 void DeclarativePieSlice::handleBrushChanged()
53 {
54 // If the texture image of the brush has changed along the brush
55 // the brush file name needs to be cleared.
56 if (!m_brushFilename.isEmpty() && QPieSlice::brush().textureImage() != m_brushImage) {
57 m_brushFilename.clear();
58 emit brushFilenameChanged(QString(""));
59 }
60 }
61
62 // Declarative pie series =========================================================================
28 63 DeclarativePieSeries::DeclarativePieSeries(QDECLARATIVE_ITEM *parent) :
29 64 QPieSeries(parent)
30 65 {
@@ -81,13 +116,15 QPieSlice *DeclarativePieSeries::find(QString label)
81 116 return 0;
82 117 }
83 118
84 QPieSlice *DeclarativePieSeries::append(QString label, qreal value)
119 DeclarativePieSlice *DeclarativePieSeries::append(QString label, qreal value)
85 120 {
86 QPieSlice *slice = new QPieSlice(this);
121 DeclarativePieSlice *slice = new DeclarativePieSlice(this);
87 122 slice->setLabel(label);
88 123 slice->setValue(value);
89 QPieSeries::append(slice);
90 return slice;
124 if (QPieSeries::append(slice))
125 return slice;
126 delete slice;
127 return 0;
91 128 }
92 129
93 130 bool DeclarativePieSeries::remove(QPieSlice *slice)
@@ -22,6 +22,7
22 22 #define DECLARATIVEPIESERIES_H
23 23
24 24 #include "qpieseries.h"
25 #include "qpieslice.h"
25 26 #include "shared_defines.h"
26 27
27 28 #ifdef CHARTS_FOR_QUICK2
@@ -33,7 +34,27
33 34 #endif
34 35
35 36 QTCOMMERCIALCHART_BEGIN_NAMESPACE
36 class QPieSlice;
37
38 class DeclarativePieSlice : public QPieSlice
39 {
40 Q_OBJECT
41 Q_PROPERTY(QString brushFilename READ brushFilename WRITE setBrushFilename NOTIFY brushFilenameChanged)
42
43 public:
44 explicit DeclarativePieSlice(QObject *parent = 0);
45 QString brushFilename() const;
46 void setBrushFilename(const QString &brushFilename);
47
48 Q_SIGNALS:
49 void brushFilenameChanged(const QString &brushFilename);
50
51 private Q_SLOTS:
52 void handleBrushChanged();
53
54 private:
55 QString m_brushFilename;
56 QImage m_brushImage;
57 };
37 58
38 59 class DeclarativePieSeries : public QPieSeries, public QDECLARATIVE_PARSER_STATUS
39 60 {
@@ -52,7 +73,7 public:
52 73 QDECLARATIVE_LIST_PROPERTY<QObject> seriesChildren();
53 74 Q_INVOKABLE QPieSlice *at(int index);
54 75 Q_INVOKABLE QPieSlice *find(QString label);
55 Q_INVOKABLE QPieSlice *append(QString label, qreal value);
76 Q_INVOKABLE DeclarativePieSlice *append(QString label, qreal value);
56 77 Q_INVOKABLE bool remove(QPieSlice *slice);
57 78 Q_INVOKABLE void clear();
58 79
@@ -34,6 +34,7 DeclarativeScatterSeries::DeclarativeScatterSeries(QObject *parent) :
34 34 connect(m_axes, SIGNAL(axisYChanged(QAbstractAxis*)), this, SIGNAL(axisRadialChanged(QAbstractAxis*)));
35 35 connect(this, SIGNAL(pointAdded(int)), this, SLOT(handleCountChanged(int)));
36 36 connect(this, SIGNAL(pointRemoved(int)), this, SLOT(handleCountChanged(int)));
37 connect(this, SIGNAL(brushChanged()), this, SLOT(handleBrushChanged()));
37 38 }
38 39
39 40 void DeclarativeScatterSeries::handleCountChanged(int index)
@@ -69,6 +70,45 void DeclarativeScatterSeries::appendDeclarativeChildren(QDECLARATIVE_LIST_PROPE
69 70 // Empty implementation, children are parsed in componentComplete
70 71 }
71 72
73 QString DeclarativeScatterSeries::brushFilename() const
74 {
75 return m_brushFilename;
76 }
77
78 void DeclarativeScatterSeries::setBrushFilename(const QString &brushFilename)
79 {
80 QImage brushImage(brushFilename);
81 if (QScatterSeries::brush().textureImage() != brushImage) {
82 QBrush brush = QScatterSeries::brush();
83 brush.setTextureImage(brushImage);
84 QScatterSeries::setBrush(brush);
85 m_brushFilename = brushFilename;
86 m_brushImage = brushImage;
87 emit brushFilenameChanged(brushFilename);
88 }
89 }
90
91 void DeclarativeScatterSeries::setBrush(const QBrush &brush)
92 {
93 QScatterSeries::setBrush(brush);
94 emit brushChanged();
95 }
96
97 QBrush DeclarativeScatterSeries::brush() const
98 {
99 return QScatterSeries::brush();
100 }
101
102 void DeclarativeScatterSeries::handleBrushChanged()
103 {
104 // If the texture image of the brush has changed along the brush
105 // the brush file name needs to be cleared.
106 if (!m_brushFilename.isEmpty() && QScatterSeries::brush().textureImage() != m_brushImage) {
107 m_brushFilename.clear();
108 emit brushFilenameChanged(QString(""));
109 }
110 }
111
72 112 #include "moc_declarativescatterseries.cpp"
73 113
74 114 QTCOMMERCIALCHART_END_NAMESPACE
@@ -57,6 +57,8 class DeclarativeScatterSeries : public QScatterSeries, public DeclarativeXySeri
57 57 #else
58 58 Q_PROPERTY(QDeclarativeListProperty<QObject> declarativeChildren READ declarativeChildren)
59 59 #endif
60 Q_PROPERTY(QString brushFilename READ brushFilename WRITE setBrushFilename NOTIFY brushFilenameChanged REVISION 4)
61 Q_PROPERTY(QBrush brush READ brush WRITE setBrush NOTIFY brushChanged REVISION 4)
60 62 Q_CLASSINFO("DefaultProperty", "declarativeChildren")
61 63
62 64 public:
@@ -77,6 +79,10 public:
77 79 qreal borderWidth() const;
78 80 void setBorderWidth(qreal borderWidth);
79 81 QDECLARATIVE_LIST_PROPERTY<QObject> declarativeChildren();
82 QString brushFilename() const;
83 void setBrushFilename(const QString &brushFilename);
84 void setBrush(const QBrush &brush);
85 QBrush brush() const;
80 86
81 87 public: // from QDeclarativeParserStatus
82 88 void classBegin() { DeclarativeXySeries::classBegin(); }
@@ -101,13 +107,22 Q_SIGNALS:
101 107 Q_REVISION(2) void axisYRightChanged(QAbstractAxis *axis);
102 108 Q_REVISION(3) void axisAngularChanged(QAbstractAxis *axis);
103 109 Q_REVISION(3) void axisRadialChanged(QAbstractAxis *axis);
110 Q_REVISION(4) void brushFilenameChanged(const QString &brushFilename);
111 Q_REVISION(4) void brushChanged();
104 112
105 113 public Q_SLOTS:
106 114 static void appendDeclarativeChildren(QDECLARATIVE_LIST_PROPERTY<QObject> *list, QObject *element);
107 115 void handleCountChanged(int index);
108 116
117 private Q_SLOTS:
118 void handleBrushChanged();
119
109 120 public:
110 121 DeclarativeAxes *m_axes;
122
123 private:
124 QString m_brushFilename;
125 QImage m_brushImage;
111 126 };
112 127
113 128 QTCOMMERCIALCHART_END_NAMESPACE
@@ -76,6 +76,7 Q_DECLARE_METATYPE(DeclarativeBoxPlotSeries *)
76 76 Q_DECLARE_METATYPE(DeclarativeBoxSet *)
77 77 Q_DECLARE_METATYPE(DeclarativeLineSeries *)
78 78 Q_DECLARE_METATYPE(DeclarativePieSeries *)
79 Q_DECLARE_METATYPE(DeclarativePieSlice *)
79 80 Q_DECLARE_METATYPE(DeclarativeScatterSeries *)
80 81 Q_DECLARE_METATYPE(DeclarativeSplineSeries *)
81 82
@@ -238,6 +239,14 public:
238 239 qmlRegisterType<QLogValueAxis>(uri, 1, 3, "LogValueAxis");
239 240 qmlRegisterType<DeclarativeBoxPlotSeries>(uri, 1, 3, "BoxPlotSeries");
240 241 qmlRegisterType<DeclarativeBoxSet>(uri, 1, 3, "BoxSet");
242
243 // QtCommercial.Chart 1.4
244 qmlRegisterType<DeclarativeAreaSeries, 4>(uri, 1, 4, "AreaSeries");
245 qmlRegisterType<DeclarativeBarSet, 2>(uri, 1, 4, "BarSet");
246 qmlRegisterType<DeclarativeBoxPlotSeries, 1>(uri, 1, 4, "BoxPlotSeries");
247 qmlRegisterType<DeclarativeBoxSet, 1>(uri, 1, 4, "BoxSet");
248 qmlRegisterType<DeclarativePieSlice>(uri, 1, 4, "PieSlice");
249 qmlRegisterType<DeclarativeScatterSeries, 4>(uri, 1, 4, "ScatterSeries");
241 250 }
242 251 };
243 252
@@ -2,6 +2,9 import QtQuick.tooling 1.1
2 2
3 3 // This file describes the plugin-supplied types contained in the library.
4 4 // It is used for QML tooling purposes only.
5 //
6 // This file was auto-generated by:
7 // 'qmlplugindump -nonrelocatable QtCommercial.Chart 1.4'
5 8
6 9 Module {
7 10 Component {
@@ -55,9 +58,10 Module {
55 58 "QtCommercial.Chart/AreaSeries 1.0",
56 59 "QtCommercial.Chart/AreaSeries 1.1",
57 60 "QtCommercial.Chart/AreaSeries 1.2",
58 "QtCommercial.Chart/AreaSeries 1.3"
61 "QtCommercial.Chart/AreaSeries 1.3",
62 "QtCommercial.Chart/AreaSeries 1.4"
59 63 ]
60 exportMetaObjectRevisions: [0, 1, 2, 3]
64 exportMetaObjectRevisions: [0, 1, 2, 3, 4]
61 65 Property { name: "upperSeries"; type: "DeclarativeLineSeries"; isPointer: true }
62 66 Property { name: "lowerSeries"; type: "DeclarativeLineSeries"; isPointer: true }
63 67 Property { name: "axisX"; revision: 1; type: "QAbstractAxis"; isPointer: true }
@@ -67,6 +71,8 Module {
67 71 Property { name: "axisAngular"; revision: 3; type: "QAbstractAxis"; isPointer: true }
68 72 Property { name: "axisRadial"; revision: 3; type: "QAbstractAxis"; isPointer: true }
69 73 Property { name: "borderWidth"; revision: 1; type: "double" }
74 Property { name: "brushFilename"; revision: 4; type: "string" }
75 Property { name: "brush"; revision: 4; type: "QBrush" }
70 76 Signal {
71 77 name: "axisXChanged"
72 78 revision: 1
@@ -102,12 +108,17 Module {
102 108 revision: 3
103 109 Parameter { name: "axis"; type: "QAbstractAxis"; isPointer: true }
104 110 }
111 Signal { name: "brushChanged"; revision: 4 }
112 Signal {
113 name: "brushFilenameChanged"
114 revision: 4
115 Parameter { name: "brushFilename"; type: "string" }
116 }
105 117 }
106 118 Component {
107 119 name: "QtCommercialChart::DeclarativeAxes"
108 120 prototype: "QObject"
109 121 exports: ["QtCommercial.Chart/DeclarativeAxes 1.0"]
110 isCreatable: false
111 122 exportMetaObjectRevisions: [0]
112 123 Property { name: "axisX"; type: "QAbstractAxis"; isPointer: true }
113 124 Property { name: "axisY"; type: "QAbstractAxis"; isPointer: true }
@@ -200,12 +211,14 Module {
200 211 prototype: "QtCommercialChart::QBarSet"
201 212 exports: [
202 213 "QtCommercial.Chart/BarSet 1.0",
203 "QtCommercial.Chart/BarSet 1.1"
214 "QtCommercial.Chart/BarSet 1.1",
215 "QtCommercial.Chart/BarSet 1.4"
204 216 ]
205 exportMetaObjectRevisions: [0, 0]
217 exportMetaObjectRevisions: [0, 0, 2]
206 218 Property { name: "values"; type: "QVariantList" }
207 219 Property { name: "borderWidth"; revision: 1; type: "double" }
208 220 Property { name: "count"; type: "int"; isReadonly: true }
221 Property { name: "brushFilename"; revision: 2; type: "string" }
209 222 Signal {
210 223 name: "countChanged"
211 224 Parameter { name: "count"; type: "int" }
@@ -215,6 +228,11 Module {
215 228 revision: 1
216 229 Parameter { name: "width"; type: "double" }
217 230 }
231 Signal {
232 name: "brushFilenameChanged"
233 revision: 2
234 Parameter { name: "brushFilename"; type: "string" }
235 }
218 236 Method {
219 237 name: "append"
220 238 Parameter { name: "value"; type: "double" }
@@ -243,13 +261,17 Module {
243 261 name: "QtCommercialChart::DeclarativeBoxPlotSeries"
244 262 defaultProperty: "seriesChildren"
245 263 prototype: "QtCommercialChart::QBoxPlotSeries"
246 exports: ["QtCommercial.Chart/BoxPlotSeries 1.3"]
247 exportMetaObjectRevisions: [0]
264 exports: [
265 "QtCommercial.Chart/BoxPlotSeries 1.3",
266 "QtCommercial.Chart/BoxPlotSeries 1.4"
267 ]
268 exportMetaObjectRevisions: [0, 1]
248 269 Property { name: "axisX"; type: "QAbstractAxis"; isPointer: true }
249 270 Property { name: "axisY"; type: "QAbstractAxis"; isPointer: true }
250 271 Property { name: "axisXTop"; type: "QAbstractAxis"; isPointer: true }
251 272 Property { name: "axisYRight"; type: "QAbstractAxis"; isPointer: true }
252 273 Property { name: "seriesChildren"; type: "QObject"; isList: true; isReadonly: true }
274 Property { name: "brushFilename"; revision: 1; type: "string" }
253 275 Signal {
254 276 name: "axisXChanged"
255 277 Parameter { name: "axis"; type: "QAbstractAxis"; isPointer: true }
@@ -275,6 +297,11 Module {
275 297 Parameter { name: "status"; type: "bool" }
276 298 Parameter { name: "boxset"; type: "DeclarativeBoxSet"; isPointer: true }
277 299 }
300 Signal {
301 name: "brushFilenameChanged"
302 revision: 1
303 Parameter { name: "brushFilename"; type: "string" }
304 }
278 305 Method {
279 306 name: "appendSeriesChildren"
280 307 Parameter { name: "list"; type: "QDECLARATIVE_LIST_PROPERTY<QObject>"; isPointer: true }
@@ -321,8 +348,11 Module {
321 348 Component {
322 349 name: "QtCommercialChart::DeclarativeBoxSet"
323 350 prototype: "QtCommercialChart::QBoxSet"
324 exports: ["QtCommercial.Chart/BoxSet 1.3"]
325 exportMetaObjectRevisions: [0]
351 exports: [
352 "QtCommercial.Chart/BoxSet 1.3",
353 "QtCommercial.Chart/BoxSet 1.4"
354 ]
355 exportMetaObjectRevisions: [0, 1]
326 356 Enum {
327 357 name: "ValuePositions"
328 358 values: {
@@ -336,11 +366,17 Module {
336 366 Property { name: "values"; type: "QVariantList" }
337 367 Property { name: "label"; type: "string" }
338 368 Property { name: "count"; type: "int"; isReadonly: true }
369 Property { name: "brushFilename"; revision: 1; type: "string" }
339 370 Signal { name: "changedValues" }
340 371 Signal {
341 372 name: "changedValue"
342 373 Parameter { name: "index"; type: "int" }
343 374 }
375 Signal {
376 name: "brushFilenameChanged"
377 revision: 1
378 Parameter { name: "brushFilename"; type: "string" }
379 }
344 380 Method {
345 381 name: "append"
346 382 Parameter { name: "value"; type: "double" }
@@ -912,7 +948,6 Module {
912 948 name: "QtCommercialChart::DeclarativeMargins"
913 949 prototype: "QObject"
914 950 exports: ["QtCommercial.Chart/Margins 1.1"]
915 isCreatable: false
916 951 exportMetaObjectRevisions: [0]
917 952 Property { name: "top"; type: "int" }
918 953 Property { name: "bottom"; type: "int" }
@@ -1055,7 +1090,7 Module {
1055 1090 }
1056 1091 Method {
1057 1092 name: "append"
1058 type: "QPieSlice*"
1093 type: "DeclarativePieSlice*"
1059 1094 Parameter { name: "label"; type: "string" }
1060 1095 Parameter { name: "value"; type: "double" }
1061 1096 }
@@ -1067,6 +1102,17 Module {
1067 1102 Method { name: "clear" }
1068 1103 }
1069 1104 Component {
1105 name: "QtCommercialChart::DeclarativePieSlice"
1106 prototype: "QtCommercialChart::QPieSlice"
1107 exports: ["QtCommercial.Chart/PieSlice 1.4"]
1108 exportMetaObjectRevisions: [0]
1109 Property { name: "brushFilename"; type: "string" }
1110 Signal {
1111 name: "brushFilenameChanged"
1112 Parameter { name: "brushFilename"; type: "string" }
1113 }
1114 }
1115 Component {
1070 1116 name: "QtCommercialChart::DeclarativePolarChart"
1071 1117 defaultProperty: "data"
1072 1118 prototype: "QtCommercialChart::DeclarativeChart"
@@ -1081,9 +1127,10 Module {
1081 1127 "QtCommercial.Chart/ScatterSeries 1.0",
1082 1128 "QtCommercial.Chart/ScatterSeries 1.1",
1083 1129 "QtCommercial.Chart/ScatterSeries 1.2",
1084 "QtCommercial.Chart/ScatterSeries 1.3"
1130 "QtCommercial.Chart/ScatterSeries 1.3",
1131 "QtCommercial.Chart/ScatterSeries 1.4"
1085 1132 ]
1086 exportMetaObjectRevisions: [0, 1, 2, 3]
1133 exportMetaObjectRevisions: [0, 1, 2, 3, 4]
1087 1134 Property { name: "count"; type: "int"; isReadonly: true }
1088 1135 Property { name: "axisX"; revision: 1; type: "QAbstractAxis"; isPointer: true }
1089 1136 Property { name: "axisY"; revision: 1; type: "QAbstractAxis"; isPointer: true }
@@ -1093,6 +1140,8 Module {
1093 1140 Property { name: "axisRadial"; revision: 3; type: "QAbstractAxis"; isPointer: true }
1094 1141 Property { name: "borderWidth"; revision: 1; type: "double" }
1095 1142 Property { name: "declarativeChildren"; type: "QObject"; isList: true; isReadonly: true }
1143 Property { name: "brushFilename"; revision: 4; type: "string" }
1144 Property { name: "brush"; revision: 4; type: "QBrush" }
1096 1145 Signal {
1097 1146 name: "countChanged"
1098 1147 Parameter { name: "count"; type: "int" }
@@ -1132,6 +1181,12 Module {
1132 1181 revision: 3
1133 1182 Parameter { name: "axis"; type: "QAbstractAxis"; isPointer: true }
1134 1183 }
1184 Signal {
1185 name: "brushFilenameChanged"
1186 revision: 4
1187 Parameter { name: "brushFilename"; type: "string" }
1188 }
1189 Signal { name: "brushChanged"; revision: 4 }
1135 1190 Method {
1136 1191 name: "appendDeclarativeChildren"
1137 1192 Parameter { name: "list"; type: "QObject"; isList: true; isPointer: true }
@@ -1387,7 +1442,6 Module {
1387 1442 name: "QtCommercialChart::QAbstractAxis"
1388 1443 prototype: "QObject"
1389 1444 exports: ["QtCommercial.Chart/AbstractAxis 1.0"]
1390 isCreatable: false
1391 1445 exportMetaObjectRevisions: [0]
1392 1446 Property { name: "visible"; type: "bool" }
1393 1447 Property { name: "lineVisible"; type: "bool" }
@@ -1506,7 +1560,6 Module {
1506 1560 name: "QtCommercialChart::QAbstractBarSeries"
1507 1561 prototype: "QtCommercialChart::QAbstractSeries"
1508 1562 exports: ["QtCommercial.Chart/AbstractBarSeries 1.0"]
1509 isCreatable: false
1510 1563 exportMetaObjectRevisions: [0]
1511 1564 Property { name: "barWidth"; type: "double" }
1512 1565 Property { name: "count"; type: "int"; isReadonly: true }
@@ -1540,7 +1593,6 Module {
1540 1593 name: "QtCommercialChart::QAbstractSeries"
1541 1594 prototype: "QObject"
1542 1595 exports: ["QtCommercial.Chart/AbstractSeries 1.0"]
1543 isCreatable: false
1544 1596 exportMetaObjectRevisions: [0]
1545 1597 Enum {
1546 1598 name: "SeriesType"
@@ -1620,7 +1672,6 Module {
1620 1672 name: "QtCommercialChart::QBarModelMapper"
1621 1673 prototype: "QObject"
1622 1674 exports: ["QtCommercial.Chart/BarModelMapper 1.0"]
1623 isCreatable: false
1624 1675 exportMetaObjectRevisions: [0]
1625 1676 }
1626 1677 Component {
@@ -1631,7 +1682,6 Module {
1631 1682 name: "QtCommercialChart::QBarSet"
1632 1683 prototype: "QObject"
1633 1684 exports: ["QtCommercial.Chart/BarSetBase 1.0"]
1634 isCreatable: false
1635 1685 exportMetaObjectRevisions: [0]
1636 1686 Property { name: "label"; type: "string" }
1637 1687 Property { name: "pen"; type: "QPen" }
@@ -1823,7 +1873,6 Module {
1823 1873 defaultProperty: "children"
1824 1874 prototype: "QGraphicsWidget"
1825 1875 exports: ["QtCommercial.Chart/Legend 1.0"]
1826 isCreatable: false
1827 1876 exportMetaObjectRevisions: [0]
1828 1877 Property { name: "alignment"; type: "Qt::Alignment" }
1829 1878 Property { name: "backgroundVisible"; type: "bool" }
@@ -1897,14 +1946,12 Module {
1897 1946 name: "QtCommercialChart::QPieModelMapper"
1898 1947 prototype: "QObject"
1899 1948 exports: ["QtCommercial.Chart/PieModelMapper 1.0"]
1900 isCreatable: false
1901 1949 exportMetaObjectRevisions: [0]
1902 1950 }
1903 1951 Component {
1904 1952 name: "QtCommercialChart::QPieSeries"
1905 1953 prototype: "QtCommercialChart::QAbstractSeries"
1906 1954 exports: ["QtCommercial.Chart/QPieSeries 1.0"]
1907 isCreatable: false
1908 1955 exportMetaObjectRevisions: [0]
1909 1956 Property { name: "horizontalPosition"; type: "double" }
1910 1957 Property { name: "verticalPosition"; type: "double" }
@@ -1984,6 +2031,7 Module {
1984 2031 Property { name: "borderColor"; type: "QColor" }
1985 2032 Property { name: "markerShape"; type: "MarkerShape" }
1986 2033 Property { name: "markerSize"; type: "double" }
2034 Property { name: "brush"; type: "QBrush" }
1987 2035 Signal {
1988 2036 name: "colorChanged"
1989 2037 Parameter { name: "color"; type: "QColor" }
@@ -2083,14 +2131,12 Module {
2083 2131 name: "QtCommercialChart::QXYModelMapper"
2084 2132 prototype: "QObject"
2085 2133 exports: ["QtCommercial.Chart/XYModelMapper 1.0"]
2086 isCreatable: false
2087 2134 exportMetaObjectRevisions: [0]
2088 2135 }
2089 2136 Component {
2090 2137 name: "QtCommercialChart::QXYSeries"
2091 2138 prototype: "QtCommercialChart::QAbstractSeries"
2092 2139 exports: ["QtCommercial.Chart/XYSeries 1.0"]
2093 isCreatable: false
2094 2140 exportMetaObjectRevisions: [0]
2095 2141 Property { name: "pointsVisible"; type: "bool" }
2096 2142 Property { name: "color"; type: "QColor" }
@@ -121,6 +121,11 QTCOMMERCIALCHART_BEGIN_NAMESPACE
121 121 */
122 122
123 123 /*!
124 \qmlproperty QString AreaSeries::brushFilename
125 The name of the file used as a brush image for the series.
126 */
127
128 /*!
124 129 \fn void QAreaSeries::colorChanged(QColor color)
125 130 \brief Signal is emitted when the fill (brush) color has changed to \a color.
126 131 */
@@ -75,6 +75,11 QTCOMMERCIALCHART_BEGIN_NAMESPACE
75 75 */
76 76
77 77 /*!
78 \qmlproperty QString BarSet::brushFilename
79 The name of the file used as a brush for the set.
80 */
81
82 /*!
78 83 \property QBarSet::labelBrush
79 84 \brief Defines the brush used by the bar set's label.
80 85 */
@@ -87,6 +87,12 QTCOMMERCIALCHART_BEGIN_NAMESPACE
87 87 \property QBoxPlotSeries::brush
88 88 \brief This property configures the brush of the box-and-whiskers items.
89 89 */
90
91 /*!
92 \qmlproperty QString BoxPlotSeries::brushFilename
93 The name of the file used as a brush for the series.
94 */
95
90 96 /*!
91 97 \fn void QBoxPlotSeries::boxOutlineVisibilityChanged()
92 98 Signal is emitted when the middle box outline visibility is changed.
@@ -56,6 +56,12 QTCOMMERCIALCHART_BEGIN_NAMESPACE
56 56 \property QBoxSet::brush
57 57 \brief Defines the brush used by the box-and-whiskers set.
58 58 */
59
60 /*!
61 \qmlproperty QString BoxSet::brushFilename
62 The name of the file used as a brush for the box-and-whiskers set.
63 */
64
59 65 /*!
60 66 \fn void QBoxSet::clicked()
61 67 The signal is emitted if the user clicks with a mouse on top of box-and-whisker item.
@@ -211,6 +211,11 QTCOMMERCIALCHART_BEGIN_NAMESPACE
211 211 */
212 212
213 213 /*!
214 \qmlproperty QString PieSlice::brushFilename
215 The name of the file used as a brush for the slice.
216 */
217
218 /*!
214 219 \property QPieSlice::color
215 220 Fill (brush) color of the slice.
216 221 This is a convenience property for modifying the slice brush.
@@ -73,6 +73,11
73 73 */
74 74
75 75 /*!
76 \property QScatterSeries::brush
77 Brush used to draw the series.
78 */
79
80 /*!
76 81 \property QScatterSeries::color
77 82 Fill (brush) color of the series. This is a convenience property for modifying the color of brush.
78 83 \sa QScatterSeries::brush()
@@ -114,6 +119,11
114 119 */
115 120
116 121 /*!
122 \qmlproperty QString ScatterSeries::brushFilename
123 The name of the file used as a brush for the series.
124 */
125
126 /*!
117 127 \fn void QScatterSeries::colorChanged(QColor color)
118 128 Signal is emitted when the fill (brush) color has changed to \a color.
119 129 */
@@ -192,6 +202,15 void QScatterSeries::setBrush(const QBrush &brush)
192 202 }
193 203 }
194 204
205 QBrush QScatterSeries::brush() const
206 {
207 Q_D(const QScatterSeries);
208 if (d->m_brush == QChartPrivate::defaultBrush())
209 return QBrush();
210 else
211 return d->m_brush;
212 }
213
195 214 void QScatterSeries::setColor(const QColor &color)
196 215 {
197 216 QBrush b = brush();
@@ -35,6 +35,7 class QTCOMMERCIALCHART_EXPORT QScatterSeries : public QXYSeries
35 35 Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor NOTIFY borderColorChanged)
36 36 Q_PROPERTY(MarkerShape markerShape READ markerShape WRITE setMarkerShape)
37 37 Q_PROPERTY(qreal markerSize READ markerSize WRITE setMarkerSize)
38 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
38 39 Q_ENUMS(MarkerShape)
39 40
40 41 public:
@@ -49,6 +50,7 public:
49 50 QAbstractSeries::SeriesType type() const;
50 51 void setPen(const QPen &pen);
51 52 void setBrush(const QBrush &brush);
53 QBrush brush() const;
52 54 void setColor(const QColor &color);
53 55 QColor color() const;
54 56 void setBorderColor(const QColor &color);
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -36,6 +36,11 Rectangle {
36 36 compare(barSeries.labelsVisible, false);
37 37 }
38 38
39 function test_setproperties() {
40 var set = barSeries.append("property", [1, 2, 3])
41 compare(set.brushFilename, "");
42 }
43
39 44 function test_axes() {
40 45 verify(chartView.axisX() == barSeries.axisX);
41 46 verify(chartView.axisY() == barSeries.axisY);
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -33,12 +33,14 Rectangle {
33 33
34 34 function test_properties() {
35 35 compare(boxPlotSeries.boxWidth, 0.5);
36 compare(boxPlotSeries.brushFilename, "");
36 37 }
37 38
38 39 function test_setproperties() {
39 40 var set = boxPlotSeries.append("boxplot", [1, 2, 5, 6, 8]);
40 41 compare(set.label, "boxplot");
41 42 compare(set.count, 5);
43 compare(set.brushFilename, "");
42 44 }
43 45
44 46 function test_append() {
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -58,6 +58,7 Rectangle {
58 58 compare(slice.percentage, 1.0);
59 59 compare(slice.startAngle, 0.0);
60 60 compare(slice.value, 10.0);
61 compare(slice.brushFilename, "");
61 62 }
62 63
63 64 function test_append() {
@@ -88,12 +89,15 Rectangle {
88 89 compare(pieSeries.count, 0);
89 90 }
90 91
91 function test_find() {
92 function test_find_and_at() {
92 93 var count = 50;
93 94 for (var i = 0; i < count; i++)
94 95 pieSeries.append("slice" + i, Math.random());
95 for (var j = 0; j < count; j++)
96 for (var j = 0; j < count; j++) {
96 97 compare(pieSeries.find("slice" + j).label, "slice" + j);
98 compare(pieSeries.find("slice" + j).brushFilename, "");
99 }
100 compare(pieSeries.at(3).brushFilename,"");
97 101 pieSeries.clear();
98 102 }
99 103 }
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -20,7 +20,7
20 20
21 21 import QtQuick 2.0
22 22 import QtTest 1.0
23 import QtCommercial.Chart 1.3
23 import QtCommercial.Chart 1.4
24 24
25 25 Rectangle {
26 26 width: 400
@@ -49,10 +49,12 Rectangle {
49 49 compare(scatterSeries.borderWidth, 2.0);
50 50 compare(scatterSeries.markerShape, ScatterSeries.MarkerShapeCircle);
51 51 compare(scatterSeries.markerSize, 15.0);
52 compare(scatterSeries.brushFilename, "");
52 53
53 54 verify(areaSeries.color != undefined);
54 55 verify(areaSeries.borderColor != undefined);
55 56 compare(areaSeries.borderWidth, 2.0);
57 compare(areaSeries.brushFilename, "");
56 58 }
57 59
58 60 function test_axes() {
General Comments 0
You need to be logged in to leave comments. Login now