@@ -96,7 +96,7 Rectangle { | |||
|
96 | 96 | } |
|
97 | 97 | |
|
98 | 98 | AreaSeries { |
|
99 |
name: " |
|
|
99 | name: "Finnish" | |
|
100 | 100 | upperSeries: LineSeries { |
|
101 | 101 | XyPoint { x: 0; y: 0 } |
|
102 | 102 | XyPoint { x: 1; y: 0 } |
@@ -30,10 +30,10 Rectangle { | |||
|
30 | 30 | theme: ChartView.ChartThemeLight |
|
31 | 31 | legend: ChartView.LegendBottom |
|
32 | 32 | // TODO: labels defined by x-axis, not by bar series |
|
33 |
|
|
|
33 | axisXLabels: ["0", "2008", "1", "2009", "2", "2010", "3", "2012"] | |
|
34 | 34 |
|
|
35 | 35 | |
|
36 | BarSeries { | |
|
36 | GroupedBarSeries { | |
|
37 | 37 | barCategories: [ "2008", "2009", "2010", "2011", "2012" ] |
|
38 | 38 | BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] } |
|
39 | 39 | BarSet { name: "Susan"; values: [5, 1, 2, 4, 1, 7] } |
@@ -90,12 +90,54 DeclarativeTableModel *DeclarativeBarSeries::declarativeModel() | |||
|
90 | 90 | return qobject_cast<DeclarativeTableModel *>(model()); |
|
91 | 91 | } |
|
92 | 92 | |
|
93 | void DeclarativeBarSeries::setBarCategories(QStringList categories) | |
|
93 | DeclarativeGroupedBarSeries::DeclarativeGroupedBarSeries(QDeclarativeItem *parent) : | |
|
94 | QGroupedBarSeries(parent) | |
|
95 | { | |
|
96 | } | |
|
97 | ||
|
98 | void DeclarativeGroupedBarSeries::classBegin() | |
|
99 | { | |
|
100 | } | |
|
101 | ||
|
102 | void DeclarativeGroupedBarSeries::componentComplete() | |
|
103 | { | |
|
104 | foreach(QObject *child, children()) { | |
|
105 | if (qobject_cast<QBarSet *>(child)) { | |
|
106 | QBarSeries::append(qobject_cast<QBarSet *>(child)); | |
|
107 | } | |
|
108 | } | |
|
109 | } | |
|
110 | ||
|
111 | QDeclarativeListProperty<DeclarativeBarSet> DeclarativeGroupedBarSeries::initialBarSets() | |
|
112 | { | |
|
113 | return QDeclarativeListProperty<DeclarativeBarSet>(this, 0, &DeclarativeGroupedBarSeries::appendInitialBarSets); | |
|
114 | } | |
|
115 | ||
|
116 | bool DeclarativeGroupedBarSeries::setDeclarativeModel(DeclarativeTableModel *model) | |
|
117 | { | |
|
118 | QAbstractItemModel *m = qobject_cast<QAbstractItemModel *>(model); | |
|
119 | bool value(false); | |
|
120 | if (m) { | |
|
121 | setModel(m); | |
|
122 | //setModelMapping(int categories, int bottomBoundary, int topBoundary, Qt::Orientation orientation = Qt::Vertical); | |
|
123 | // setModelMapping(0, 1, 1, Qt::Vertical); | |
|
124 | } else { | |
|
125 | qWarning("DeclarativeGroupedBarSeries: Illegal model"); | |
|
126 | } | |
|
127 | return value; | |
|
128 | } | |
|
129 | ||
|
130 | DeclarativeTableModel *DeclarativeGroupedBarSeries::declarativeModel() | |
|
131 | { | |
|
132 | return qobject_cast<DeclarativeTableModel *>(model()); | |
|
133 | } | |
|
134 | ||
|
135 | void DeclarativeGroupedBarSeries::setBarCategories(QStringList categories) | |
|
94 | 136 | { |
|
95 | 137 | setCategories(categories); |
|
96 | 138 | } |
|
97 | 139 | |
|
98 | QStringList DeclarativeBarSeries::barCategories() | |
|
140 | QStringList DeclarativeGroupedBarSeries::barCategories() | |
|
99 | 141 | { |
|
100 | 142 | return categories(); |
|
101 | 143 | } |
@@ -48,7 +48,6 class DeclarativeBarSeries : public QGroupedBarSeries, public QDeclarativeParser | |||
|
48 | 48 | Q_OBJECT |
|
49 | 49 | Q_INTERFACES(QDeclarativeParserStatus) |
|
50 | 50 | Q_PROPERTY(DeclarativeTableModel *model READ declarativeModel WRITE setDeclarativeModel) |
|
51 | Q_PROPERTY(QStringList barCategories READ barCategories WRITE setBarCategories) | |
|
52 | 51 | Q_PROPERTY(QDeclarativeListProperty<DeclarativeBarSet> initialBarSets READ initialBarSets) |
|
53 | 52 | Q_CLASSINFO("DefaultProperty", "initialBarSets") |
|
54 | 53 | |
@@ -63,8 +62,33 public: // from QDeclarativeParserStatus | |||
|
63 | 62 | public: |
|
64 | 63 | bool setDeclarativeModel(DeclarativeTableModel *model); |
|
65 | 64 | DeclarativeTableModel *declarativeModel(); |
|
65 | ||
|
66 | public Q_SLOTS: | |
|
67 | static void appendInitialBarSets(QDeclarativeListProperty<DeclarativeBarSet> */*list*/, DeclarativeBarSet */*element*/) {} | |
|
68 | }; | |
|
69 | ||
|
70 | class DeclarativeGroupedBarSeries : public QGroupedBarSeries, public QDeclarativeParserStatus | |
|
71 | { | |
|
72 | Q_OBJECT | |
|
73 | Q_INTERFACES(QDeclarativeParserStatus) | |
|
74 | Q_PROPERTY(DeclarativeTableModel *model READ declarativeModel WRITE setDeclarativeModel) | |
|
75 | Q_PROPERTY(QStringList barCategories READ barCategories WRITE setBarCategories) | |
|
76 | Q_PROPERTY(QDeclarativeListProperty<DeclarativeBarSet> initialBarSets READ initialBarSets) | |
|
77 | Q_CLASSINFO("DefaultProperty", "initialBarSets") | |
|
78 | ||
|
79 | public: | |
|
80 | explicit DeclarativeGroupedBarSeries(QDeclarativeItem *parent = 0); | |
|
81 | QDeclarativeListProperty<DeclarativeBarSet> initialBarSets(); | |
|
82 | ||
|
83 | public: // from QDeclarativeParserStatus | |
|
84 | void classBegin(); | |
|
85 | void componentComplete(); | |
|
86 | ||
|
87 | public: | |
|
66 | 88 | void setBarCategories(QStringList categories); |
|
67 | 89 | QStringList barCategories(); |
|
90 | bool setDeclarativeModel(DeclarativeTableModel *model); | |
|
91 | DeclarativeTableModel *declarativeModel(); | |
|
68 | 92 | |
|
69 | 93 | public Q_SLOTS: |
|
70 | 94 | static void appendInitialBarSets(QDeclarativeListProperty<DeclarativeBarSet> */*list*/, DeclarativeBarSet */*element*/) {} |
@@ -39,11 +39,9 void DeclarativeLineSeries::appendDeclarativeChildren(QDeclarativeListProperty<Q | |||
|
39 | 39 | { |
|
40 | 40 | QXYSeries *series = qobject_cast<QXYSeries*>(list->object); |
|
41 | 41 | DeclarativeXyPoint *point = qobject_cast<DeclarativeXyPoint *>(element); |
|
42 |
if (series && point) |
|
|
43 | qDebug() << "DeclarativeScatterSeries::appendDeclarativeChildren:" << *point; | |
|
42 | if (series && point) | |
|
44 | 43 | series->append(*point); |
|
45 | 44 | } |
|
46 | } | |
|
47 | 45 | |
|
48 | 46 | #include "moc_declarativelineseries.cpp" |
|
49 | 47 |
@@ -38,11 +38,10 void DeclarativeSplineSeries::appendDeclarativeChildren(QDeclarativeListProperty | |||
|
38 | 38 | { |
|
39 | 39 | QXYSeries *series = qobject_cast<QXYSeries*>(list->object); |
|
40 | 40 | DeclarativeXyPoint *point = qobject_cast<DeclarativeXyPoint *>(element); |
|
41 |
if (series && point) |
|
|
42 | qDebug() << "DeclarativeScatterSeries::appendDeclarativeChildren:" << *point; | |
|
41 | if (series && point) | |
|
43 | 42 | series->append(*point); |
|
44 | 43 | } |
|
45 | } | |
|
44 | ||
|
46 | 45 | #include "moc_declarativesplineseries.cpp" |
|
47 | 46 | |
|
48 | 47 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -47,23 +47,21 public: | |||
|
47 | 47 | qmlRegisterType<DeclarativeChart>(uri, 1, 0, "ChartView"); |
|
48 | 48 | qmlRegisterUncreatableType<QAxis>(uri, 1, 0, "Axis", |
|
49 | 49 | QLatin1String("Trying to create uncreatable: Axis.")); |
|
50 | //qmlRegisterType<DeclarativeAxisCategory>(uri, 1, 0, "AxisCategory"); | |
|
51 | 50 | qmlRegisterType<DeclarativeXyPoint>(uri, 1, 0, "XyPoint"); |
|
52 | 51 | qmlRegisterType<DeclarativeScatterSeries>(uri, 1, 0, "ScatterSeries"); |
|
53 | 52 | qmlRegisterType<DeclarativeLineSeries>(uri, 1, 0, "LineSeries"); |
|
54 | 53 | qmlRegisterType<DeclarativeSplineSeries>(uri, 1, 0, "SplineSeries"); |
|
55 | 54 | qmlRegisterType<DeclarativeAreaSeries>(uri, 1, 0, "AreaSeries"); |
|
56 | 55 | qmlRegisterType<DeclarativeBarSeries>(uri, 1, 0, "BarSeries"); |
|
56 | qmlRegisterType<DeclarativeGroupedBarSeries>(uri, 1, 0, "GroupedBarSeries"); | |
|
57 | 57 | qmlRegisterType<DeclarativePieSeries>(uri, 1, 0, "PieSeries"); |
|
58 | 58 | qmlRegisterType<QPieSlice>(uri, 1, 0, "PieSlice"); |
|
59 | 59 | qmlRegisterType<DeclarativeTableModel>(uri, 1, 0, "ChartModel"); |
|
60 | 60 | qmlRegisterType<DeclarativeTableModelElement>(uri, 1, 0, "ChartModelElement"); |
|
61 | //qmlRegisterType<DeclarativePieMapping>(uri, 1, 0, "PieMapping"); | |
|
62 | //qmlRegisterType<QPieModelMapper>(uri, 1, 0, "PieModelMapper"); | |
|
63 | 61 | qmlRegisterUncreatableType<QPieModelMapper>(uri, 1, 0, "PieModelMapper", |
|
64 | 62 | QLatin1String("Trying to create uncreatable: PieModelMapper.")); |
|
65 | 63 | qmlRegisterUncreatableType<QXYModelMapper>(uri, 1, 0, "XYModelMapper", |
|
66 |
QLatin1String("Trying to create uncreatable: |
|
|
64 | QLatin1String("Trying to create uncreatable: XYModelMapper.")); | |
|
67 | 65 | qmlRegisterType<DeclarativeBarSet>(uri, 1, 0, "BarSet"); |
|
68 | 66 | } |
|
69 | 67 | }; |
@@ -353,9 +353,6 QColor ChartTheme::colorAt(const QGradient &gradient, qreal pos) | |||
|
353 | 353 | { |
|
354 | 354 | Q_ASSERT(pos >= 0 && pos <= 1.0); |
|
355 | 355 | |
|
356 | // another possibility: | |
|
357 | // http://stackoverflow.com/questions/3306786/get-intermediate-color-from-a-gradient | |
|
358 | ||
|
359 | 356 | QGradientStops stops = gradient.stops(); |
|
360 | 357 | int count = stops.count(); |
|
361 | 358 |
General Comments 0
You need to be logged in to leave comments.
Login now