##// END OF EJS Templates
Fixed bug in setting chart theme...
Tero Ahola -
r312:0677c9dd6d92
parent child
Show More
@@ -1,66 +1,67
1 #include <QtGui/QApplication>
1 #include <QtGui/QApplication>
2 #include <QMainWindow>
2 #include <QMainWindow>
3 #include <qchartglobal.h>
3 #include <qchartglobal.h>
4 #include <qchartview.h>
4 #include <qchartview.h>
5 #include <qscatterseries.h>
5 #include <qscatterseries.h>
6
6
7 QTCOMMERCIALCHART_USE_NAMESPACE
7 QTCOMMERCIALCHART_USE_NAMESPACE
8
8
9 int main(int argc, char *argv[])
9 int main(int argc, char *argv[])
10 {
10 {
11 QApplication a(argc, argv);
11 QApplication a(argc, argv);
12
12
13 //! [1]
13 //! [1]
14 // Create chart view
14 // Create chart view
15 QChartView *chartView = new QChartView();
15 QChartView *chartView = new QChartView();
16 chartView->setChartTheme(QChart::ChartThemeIcy);
16
17
17 // Add scatter series with simple test data
18 // Add scatter series with simple test data
18 QScatterSeries *scatter = new QScatterSeries();
19 QScatterSeries *scatter = new QScatterSeries();
19 *scatter << QPointF(0.5, 5.0)
20 *scatter << QPointF(0.5, 5.0)
20 << QPointF(1.0, 4.5)
21 << QPointF(1.0, 4.5)
21 << QPointF(1.0, 5.5)
22 << QPointF(1.0, 5.5)
22 << QPointF(1.5, 5.0)
23 << QPointF(1.5, 5.0)
23 << QPointF(2.0, 4.5)
24 << QPointF(2.0, 4.5)
24 << QPointF(2.5, 5.0);
25 << QPointF(2.5, 5.0);
25 // Chart takes ownership
26 // Chart takes ownership
26 chartView->addSeries(scatter);
27 chartView->addSeries(scatter);
27 //! [1]
28 //! [1]
28
29
29 // Add some more data
30 // Add some more data
30 //! [2]
31 //! [2]
31 scatter->addData(QPointF(2.0, 5.5));
32 scatter->addData(QPointF(2.0, 5.5));
32 //! [2]
33 //! [2]
33
34
34 // And more
35 // And more
35 //! [3]
36 //! [3]
36 *scatter << QPointF(2.0, 5.5);
37 *scatter << QPointF(2.0, 5.5);
37 //! [3]
38 //! [3]
38
39
39 // Add another scatter series (re-use the previous pointer)
40 // Add another scatter series (re-use the previous pointer)
40 // - more data with random component
41 // - more data with random component
41 scatter = new QScatterSeries();
42 scatter = new QScatterSeries();
42 for (qreal i(0.0); i < 20; i += 0.15) {
43 for (qreal i(0.0); i < 20; i += 0.15) {
43 (*scatter) << QPointF(i + (qreal)(rand() % 100) / 100.0,
44 (*scatter) << QPointF(i + (qreal)(rand() % 100) / 100.0,
44 i + (qreal)(rand() % 100) / 100.0);
45 i + (qreal)(rand() % 100) / 100.0);
45 }
46 }
46 //! [4]
47 //! [4]
47 QBrush brush(QColor(255, 0, 0, 100), Qt::SolidPattern);
48 QBrush brush(QColor(255, 0, 0, 100), Qt::SolidPattern);
48 scatter->setMarkerBrush(brush);
49 scatter->setMarkerBrush(brush);
49 //! [4]
50 //! [4]
50 //! [5]
51 //! [5]
51 QPen pen(QColor(0, 255, 0, 80), 3);
52 QPen pen(QColor(0, 255, 0, 80), 3);
52 scatter->setMarkerPen(pen);
53 scatter->setMarkerPen(pen);
53 //! [5]
54 //! [5]
54 //! [6]
55 //! [6]
55 scatter->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
56 scatter->setMarkerShape(QScatterSeries::MarkerShapeRectangle);
56 //! [6]
57 //! [6]
57 chartView->addSeries(scatter);
58 chartView->addSeries(scatter);
58
59
59 // Use the chart widget as the central widget
60 // Use the chart widget as the central widget
60 QMainWindow w;
61 QMainWindow w;
61 w.resize(640, 480);
62 w.resize(640, 480);
62 w.setCentralWidget(chartView);
63 w.setCentralWidget(chartView);
63 w.show();
64 w.show();
64
65
65 return a.exec();
66 return a.exec();
66 }
67 }
@@ -1,282 +1,282
1 #include "qchart.h"
1 #include "qchart.h"
2 #include "qchartaxis.h"
2 #include "qchartaxis.h"
3 #include "chartpresenter_p.h"
3 #include "chartpresenter_p.h"
4 #include "chartdataset_p.h"
4 #include "chartdataset_p.h"
5 #include "charttheme_p.h"
5 #include "charttheme_p.h"
6 //series
6 //series
7 #include "qbarchartseries.h"
7 #include "qbarchartseries.h"
8 #include "qstackedbarchartseries.h"
8 #include "qstackedbarchartseries.h"
9 #include "qpercentbarchartseries.h"
9 #include "qpercentbarchartseries.h"
10 #include "qlinechartseries.h"
10 #include "qlinechartseries.h"
11 #include "qpieseries.h"
11 #include "qpieseries.h"
12 #include "qscatterseries.h"
12 #include "qscatterseries.h"
13 //items
13 //items
14 #include "axisitem_p.h"
14 #include "axisitem_p.h"
15 #include "axisanimationitem_p.h"
15 #include "axisanimationitem_p.h"
16 #include "barpresenter.h"
16 #include "barpresenter.h"
17 #include "stackedbarpresenter.h"
17 #include "stackedbarpresenter.h"
18 #include "linechartitem_p.h"
18 #include "linechartitem_p.h"
19 #include "percentbarpresenter.h"
19 #include "percentbarpresenter.h"
20 #include "linechartanimationitem_p.h"
20 #include "linechartanimationitem_p.h"
21 #include "piepresenter.h"
21 #include "piepresenter.h"
22 #include "scatterpresenter_p.h"
22 #include "scatterpresenter_p.h"
23
23
24 QTCOMMERCIALCHART_BEGIN_NAMESPACE
24 QTCOMMERCIALCHART_BEGIN_NAMESPACE
25
25
26 ChartPresenter::ChartPresenter(QChart* chart,ChartDataSet* dataset):QObject(chart),
26 ChartPresenter::ChartPresenter(QChart* chart,ChartDataSet* dataset):QObject(chart),
27 m_chart(chart),
27 m_chart(chart),
28 m_dataset(dataset),
28 m_dataset(dataset),
29 m_chartTheme(0),
29 m_chartTheme(0),
30 m_marginSize(0),
30 m_marginSize(0),
31 m_rect(QRectF(QPoint(0,0),m_chart->size())),
31 m_rect(QRectF(QPoint(0,0),m_chart->size())),
32 m_options(0)
32 m_options(0)
33 {
33 {
34 createConnections();
34 createConnections();
35 setChartTheme(QChart::ChartThemeDefault);
35 setChartTheme(QChart::ChartThemeDefault);
36
36
37 }
37 }
38
38
39 ChartPresenter::~ChartPresenter()
39 ChartPresenter::~ChartPresenter()
40 {
40 {
41 }
41 }
42
42
43 void ChartPresenter::createConnections()
43 void ChartPresenter::createConnections()
44 {
44 {
45 QObject::connect(m_chart,SIGNAL(geometryChanged()),this,SLOT(handleGeometryChanged()));
45 QObject::connect(m_chart,SIGNAL(geometryChanged()),this,SLOT(handleGeometryChanged()));
46 QObject::connect(m_dataset,SIGNAL(seriesAdded(QChartSeries*)),this,SLOT(handleSeriesAdded(QChartSeries*)));
46 QObject::connect(m_dataset,SIGNAL(seriesAdded(QChartSeries*)),this,SLOT(handleSeriesAdded(QChartSeries*)));
47 QObject::connect(m_dataset,SIGNAL(seriesRemoved(QChartSeries*)),this,SLOT(handleSeriesRemoved(QChartSeries*)));
47 QObject::connect(m_dataset,SIGNAL(seriesRemoved(QChartSeries*)),this,SLOT(handleSeriesRemoved(QChartSeries*)));
48 QObject::connect(m_dataset,SIGNAL(axisAdded(QChartAxis*)),this,SLOT(handleAxisAdded(QChartAxis*)));
48 QObject::connect(m_dataset,SIGNAL(axisAdded(QChartAxis*)),this,SLOT(handleAxisAdded(QChartAxis*)));
49 QObject::connect(m_dataset,SIGNAL(axisRemoved(QChartAxis*)),this,SLOT(handleAxisRemoved(QChartAxis*)));
49 QObject::connect(m_dataset,SIGNAL(axisRemoved(QChartAxis*)),this,SLOT(handleAxisRemoved(QChartAxis*)));
50 QObject::connect(m_dataset,SIGNAL(seriesDomainChanged(QChartSeries*,const Domain&)),this,SLOT(handleSeriesDomainChanged(QChartSeries*,const Domain&)));
50 QObject::connect(m_dataset,SIGNAL(seriesDomainChanged(QChartSeries*,const Domain&)),this,SLOT(handleSeriesDomainChanged(QChartSeries*,const Domain&)));
51 QObject::connect(m_dataset,SIGNAL(axisLabelsChanged(QChartAxis*,const QStringList&)),this,SLOT(handleAxisLabelsChanged(QChartAxis*,const QStringList&)));
51 QObject::connect(m_dataset,SIGNAL(axisLabelsChanged(QChartAxis*,const QStringList&)),this,SLOT(handleAxisLabelsChanged(QChartAxis*,const QStringList&)));
52 }
52 }
53
53
54
54
55 QRectF ChartPresenter::geometry() const
55 QRectF ChartPresenter::geometry() const
56 {
56 {
57 return m_rect;
57 return m_rect;
58 }
58 }
59
59
60 void ChartPresenter::handleGeometryChanged()
60 void ChartPresenter::handleGeometryChanged()
61 {
61 {
62 m_rect = QRectF(QPoint(0,0),m_chart->size());
62 m_rect = QRectF(QPoint(0,0),m_chart->size());
63 m_rect.adjust(m_marginSize,m_marginSize, -m_marginSize, -m_marginSize);
63 m_rect.adjust(m_marginSize,m_marginSize, -m_marginSize, -m_marginSize);
64 Q_ASSERT(m_rect.isValid());
64 Q_ASSERT(m_rect.isValid());
65 emit geometryChanged(m_rect);
65 emit geometryChanged(m_rect);
66 }
66 }
67
67
68 int ChartPresenter::margin() const
68 int ChartPresenter::margin() const
69 {
69 {
70 return m_marginSize;
70 return m_marginSize;
71 }
71 }
72
72
73 void ChartPresenter::setMargin(int margin)
73 void ChartPresenter::setMargin(int margin)
74 {
74 {
75 m_marginSize = margin;
75 m_marginSize = margin;
76 }
76 }
77
77
78 void ChartPresenter::handleAxisAdded(QChartAxis* axis)
78 void ChartPresenter::handleAxisAdded(QChartAxis* axis)
79 {
79 {
80
80
81 AxisItem* item ;
81 AxisItem* item ;
82
82
83 if(!m_options.testFlag(QChart::GridAxisAnimations))
83 if(!m_options.testFlag(QChart::GridAxisAnimations))
84 {
84 {
85 item = new AxisItem(axis==m_dataset->axisX()?AxisItem::X_AXIS : AxisItem::Y_AXIS,m_chart);
85 item = new AxisItem(axis==m_dataset->axisX()?AxisItem::X_AXIS : AxisItem::Y_AXIS,m_chart);
86 }else{
86 }else{
87 item = new AxisAnimationItem(axis==m_dataset->axisX()?AxisItem::X_AXIS : AxisItem::Y_AXIS,m_chart);
87 item = new AxisAnimationItem(axis==m_dataset->axisX()?AxisItem::X_AXIS : AxisItem::Y_AXIS,m_chart);
88 }
88 }
89
89
90 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
90 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
91 QObject::connect(axis,SIGNAL(update(QChartAxis*)),item,SLOT(handleAxisUpdate(QChartAxis*)));
91 QObject::connect(axis,SIGNAL(update(QChartAxis*)),item,SLOT(handleAxisUpdate(QChartAxis*)));
92
92
93 item->handleAxisUpdate(axis);
93 item->handleAxisUpdate(axis);
94 item->handleGeometryChanged(m_rect);
94 item->handleGeometryChanged(m_rect);
95 m_chartTheme->decorate(axis,item);
95 m_chartTheme->decorate(axis,item);
96 m_axisItems.insert(axis,item);
96 m_axisItems.insert(axis,item);
97 }
97 }
98
98
99 void ChartPresenter::handleAxisRemoved(QChartAxis* axis)
99 void ChartPresenter::handleAxisRemoved(QChartAxis* axis)
100 {
100 {
101 AxisItem* item = m_axisItems.take(axis);
101 AxisItem* item = m_axisItems.take(axis);
102 Q_ASSERT(item);
102 Q_ASSERT(item);
103 delete item;
103 delete item;
104 }
104 }
105
105
106
106
107 void ChartPresenter::handleSeriesAdded(QChartSeries* series)
107 void ChartPresenter::handleSeriesAdded(QChartSeries* series)
108 {
108 {
109 switch(series->type())
109 switch(series->type())
110 {
110 {
111 case QChartSeries::SeriesTypeLine: {
111 case QChartSeries::SeriesTypeLine: {
112 QLineChartSeries* lineSeries = static_cast<QLineChartSeries*>(series);
112 QLineChartSeries* lineSeries = static_cast<QLineChartSeries*>(series);
113 LineChartItem* item;
113 LineChartItem* item;
114 if(m_options.testFlag(QChart::SeriesAnimations)){
114 if(m_options.testFlag(QChart::SeriesAnimations)){
115 item = new LineChartAnimationItem(this,lineSeries,m_chart);
115 item = new LineChartAnimationItem(this,lineSeries,m_chart);
116 }else{
116 }else{
117 item = new LineChartItem(this,lineSeries,m_chart);
117 item = new LineChartItem(this,lineSeries,m_chart);
118 }
118 }
119 m_chartTheme->decorate(item,lineSeries,m_chartItems.count());
119 m_chartTheme->decorate(item,lineSeries,m_chartItems.count());
120 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
120 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
121 QObject::connect(lineSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
121 QObject::connect(lineSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
122 m_chartItems.insert(series,item);
122 m_chartItems.insert(series,item);
123 break;
123 break;
124 }
124 }
125
125
126 case QChartSeries::SeriesTypeBar: {
126 case QChartSeries::SeriesTypeBar: {
127 QBarChartSeries* barSeries = static_cast<QBarChartSeries*>(series);
127 QBarChartSeries* barSeries = static_cast<QBarChartSeries*>(series);
128 BarPresenter* item = new BarPresenter(barSeries,m_chart);
128 BarPresenter* item = new BarPresenter(barSeries,m_chart);
129 m_chartTheme->decorate(item,barSeries,m_chartItems.count());
129 m_chartTheme->decorate(item,barSeries,m_chartItems.count());
130 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
130 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
131 QObject::connect(barSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
131 QObject::connect(barSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
132 m_chartItems.insert(series,item);
132 m_chartItems.insert(series,item);
133 // m_axisXItem->setVisible(false);
133 // m_axisXItem->setVisible(false);
134 break;
134 break;
135 }
135 }
136
136
137 case QChartSeries::SeriesTypeStackedBar: {
137 case QChartSeries::SeriesTypeStackedBar: {
138
138
139 QStackedBarChartSeries* stackedBarSeries = static_cast<QStackedBarChartSeries*>(series);
139 QStackedBarChartSeries* stackedBarSeries = static_cast<QStackedBarChartSeries*>(series);
140 StackedBarPresenter* item = new StackedBarPresenter(stackedBarSeries,m_chart);
140 StackedBarPresenter* item = new StackedBarPresenter(stackedBarSeries,m_chart);
141 m_chartTheme->decorate(item,stackedBarSeries,m_chartItems.count());
141 m_chartTheme->decorate(item,stackedBarSeries,m_chartItems.count());
142 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
142 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
143 QObject::connect(stackedBarSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
143 QObject::connect(stackedBarSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
144 m_chartItems.insert(series,item);
144 m_chartItems.insert(series,item);
145 break;
145 break;
146 }
146 }
147
147
148 case QChartSeries::SeriesTypePercentBar: {
148 case QChartSeries::SeriesTypePercentBar: {
149
149
150 QPercentBarChartSeries* percentBarSeries = static_cast<QPercentBarChartSeries*>(series);
150 QPercentBarChartSeries* percentBarSeries = static_cast<QPercentBarChartSeries*>(series);
151 PercentBarPresenter* item = new PercentBarPresenter(percentBarSeries,m_chart);
151 PercentBarPresenter* item = new PercentBarPresenter(percentBarSeries,m_chart);
152 m_chartTheme->decorate(item,percentBarSeries ,m_chartItems.count());
152 m_chartTheme->decorate(item,percentBarSeries ,m_chartItems.count());
153 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
153 QObject::connect(this,SIGNAL(geometryChanged(const QRectF&)),item,SLOT(handleGeometryChanged(const QRectF&)));
154 QObject::connect(percentBarSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
154 QObject::connect(percentBarSeries,SIGNAL(changed(int)),item,SLOT(handleModelChanged(int)));
155 m_chartItems.insert(series,item);
155 m_chartItems.insert(series,item);
156 break;
156 break;
157 }
157 }
158 case QChartSeries::SeriesTypeScatter: {
158 case QChartSeries::SeriesTypeScatter: {
159 QScatterSeries *scatterSeries = qobject_cast<QScatterSeries *>(series);
159 QScatterSeries *scatterSeries = qobject_cast<QScatterSeries *>(series);
160 ScatterPresenter *scatterPresenter = new ScatterPresenter(scatterSeries, m_chart);
160 ScatterPresenter *scatterPresenter = new ScatterPresenter(scatterSeries, m_chart);
161 QObject::connect(this, SIGNAL(geometryChanged(const QRectF&)),
161 QObject::connect(this, SIGNAL(geometryChanged(const QRectF&)),
162 scatterPresenter, SLOT(handleGeometryChanged(const QRectF&)));
162 scatterPresenter, SLOT(handleGeometryChanged(const QRectF&)));
163 m_chartTheme->decorate(scatterPresenter, scatterSeries, m_chartItems.count());
163 m_chartTheme->decorate(scatterPresenter, scatterSeries, m_chartItems.count());
164 m_chartItems.insert(scatterSeries, scatterPresenter);
164 m_chartItems.insert(scatterSeries, scatterPresenter);
165 break;
165 break;
166 }
166 }
167 case QChartSeries::SeriesTypePie: {
167 case QChartSeries::SeriesTypePie: {
168 QPieSeries *s = qobject_cast<QPieSeries *>(series);
168 QPieSeries *s = qobject_cast<QPieSeries *>(series);
169 PiePresenter* pie = new PiePresenter(m_chart, s);
169 PiePresenter* pie = new PiePresenter(m_chart, s);
170 m_chartTheme->decorate(pie, s, m_chartItems.count());
170 m_chartTheme->decorate(pie, s, m_chartItems.count());
171 QObject::connect(this, SIGNAL(geometryChanged(const QRectF&)), pie, SLOT(handleGeometryChanged(const QRectF&)));
171 QObject::connect(this, SIGNAL(geometryChanged(const QRectF&)), pie, SLOT(handleGeometryChanged(const QRectF&)));
172
172
173 // Hide all from background when there is only piechart
173 // Hide all from background when there is only piechart
174 // TODO: refactor this ugly code... should be one setting for this
174 // TODO: refactor this ugly code... should be one setting for this
175 if (m_chartItems.count() == 0) {
175 if (m_chartItems.count() == 0) {
176 m_chart->axisX()->setAxisVisible(false);
176 m_chart->axisX()->setAxisVisible(false);
177 m_chart->axisY()->setAxisVisible(false);
177 m_chart->axisY()->setAxisVisible(false);
178 m_chart->axisX()->setGridVisible(false);
178 m_chart->axisX()->setGridVisible(false);
179 m_chart->axisY()->setGridVisible(false);
179 m_chart->axisY()->setGridVisible(false);
180 m_chart->axisX()->setLabelsVisible(false);
180 m_chart->axisX()->setLabelsVisible(false);
181 m_chart->axisY()->setLabelsVisible(false);
181 m_chart->axisY()->setLabelsVisible(false);
182 m_chart->axisX()->setShadesVisible(false);
182 m_chart->axisX()->setShadesVisible(false);
183 m_chart->axisY()->setShadesVisible(false);
183 m_chart->axisY()->setShadesVisible(false);
184 m_chart->setChartBackgroundBrush(Qt::transparent);
184 m_chart->setChartBackgroundBrush(Qt::transparent);
185 }
185 }
186
186
187 m_chartItems.insert(series, pie);
187 m_chartItems.insert(series, pie);
188 break;
188 break;
189 }
189 }
190 default: {
190 default: {
191 qDebug()<< "Series type" << series->type() << "not implemented.";
191 qDebug()<< "Series type" << series->type() << "not implemented.";
192 break;
192 break;
193 }
193 }
194 }
194 }
195
195
196 if(m_rect.isValid()) emit geometryChanged(m_rect);
196 if(m_rect.isValid()) emit geometryChanged(m_rect);
197 }
197 }
198
198
199 void ChartPresenter::handleSeriesRemoved(QChartSeries* series)
199 void ChartPresenter::handleSeriesRemoved(QChartSeries* series)
200 {
200 {
201 ChartItem* item = m_chartItems.take(series);
201 ChartItem* item = m_chartItems.take(series);
202 delete item;
202 delete item;
203 }
203 }
204
204
205 void ChartPresenter::handleSeriesChanged(QChartSeries* series)
205 void ChartPresenter::handleSeriesChanged(QChartSeries* series)
206 {
206 {
207 //TODO:
207 //TODO:
208 }
208 }
209
209
210 void ChartPresenter::handleSeriesDomainChanged(QChartSeries* series, const Domain& domain)
210 void ChartPresenter::handleSeriesDomainChanged(QChartSeries* series, const Domain& domain)
211 {
211 {
212 m_chartItems.value(series)->handleDomainChanged(domain);
212 m_chartItems.value(series)->handleDomainChanged(domain);
213 }
213 }
214
214
215 void ChartPresenter::handleAxisLabelsChanged(QChartAxis* axis,const QStringList& labels)
215 void ChartPresenter::handleAxisLabelsChanged(QChartAxis* axis,const QStringList& labels)
216 {
216 {
217 m_axisItems.value(axis)->handleLabelsChanged(axis,labels);
217 m_axisItems.value(axis)->handleLabelsChanged(axis,labels);
218 }
218 }
219
219
220 void ChartPresenter::setChartTheme(QChart::ChartTheme theme)
220 void ChartPresenter::setChartTheme(QChart::ChartTheme theme)
221 {
221 {
222 delete m_chartTheme;
222 delete m_chartTheme;
223
223
224 m_chartTheme = ChartTheme::createTheme(theme);
224 m_chartTheme = ChartTheme::createTheme(theme);
225
225
226 m_chartTheme->decorate(m_chart);
226 m_chartTheme->decorate(m_chart);
227 QMapIterator<QChartSeries*,ChartItem*> i(m_chartItems);
227 QMapIterator<QChartSeries*,ChartItem*> i(m_chartItems);
228
228
229 int index=0;
229 int index=0;
230 while (i.hasNext()) {
230 while (i.hasNext()) {
231 i.next();
231 i.next();
232 index++;
233 m_chartTheme->decorate(i.value(),i.key(),index);
232 m_chartTheme->decorate(i.value(),i.key(),index);
233 index++;
234 }
234 }
235
235
236 QMapIterator<QChartAxis*,AxisItem*> j(m_axisItems);
236 QMapIterator<QChartAxis*,AxisItem*> j(m_axisItems);
237 while (j.hasNext()) {
237 while (j.hasNext()) {
238 j.next();
238 j.next();
239 m_chartTheme->decorate(j.key(),j.value());
239 m_chartTheme->decorate(j.key(),j.value());
240 }
240 }
241 }
241 }
242
242
243 QChart::ChartTheme ChartPresenter::chartTheme()
243 QChart::ChartTheme ChartPresenter::chartTheme()
244 {
244 {
245 return m_chartTheme->id();
245 return m_chartTheme->id();
246 }
246 }
247
247
248 void ChartPresenter::setAnimationOptions(QChart::AnimationOptions options)
248 void ChartPresenter::setAnimationOptions(QChart::AnimationOptions options)
249 {
249 {
250 if(m_options!=options) {
250 if(m_options!=options) {
251
251
252 m_options=options;
252 m_options=options;
253
253
254 //recreate elements
254 //recreate elements
255
255
256 QList<QChartAxis*> axisList = m_axisItems.uniqueKeys();
256 QList<QChartAxis*> axisList = m_axisItems.uniqueKeys();
257 QList<QChartSeries*> seriesList = m_chartItems.uniqueKeys();
257 QList<QChartSeries*> seriesList = m_chartItems.uniqueKeys();
258
258
259 foreach(QChartAxis* axis, axisList) {
259 foreach(QChartAxis* axis, axisList) {
260 handleAxisRemoved(axis);
260 handleAxisRemoved(axis);
261 handleAxisAdded(axis);
261 handleAxisAdded(axis);
262 }
262 }
263 foreach(QChartSeries* series, seriesList) {
263 foreach(QChartSeries* series, seriesList) {
264 handleSeriesRemoved(series);
264 handleSeriesRemoved(series);
265 handleSeriesAdded(series);
265 handleSeriesAdded(series);
266 }
266 }
267
267
268 //now reintialize view data
268 //now reintialize view data
269 //TODO: make it more nice
269 //TODO: make it more nice
270 m_dataset->setDomain(m_dataset->domainIndex());
270 m_dataset->setDomain(m_dataset->domainIndex());
271 }
271 }
272 }
272 }
273
273
274 QChart::AnimationOptions ChartPresenter::animationOptions() const
274 QChart::AnimationOptions ChartPresenter::animationOptions() const
275 {
275 {
276 return m_options;
276 return m_options;
277 }
277 }
278
278
279
279
280 #include "moc_chartpresenter_p.cpp"
280 #include "moc_chartpresenter_p.cpp"
281
281
282 QTCOMMERCIALCHART_END_NAMESPACE
282 QTCOMMERCIALCHART_END_NAMESPACE
General Comments 0
You need to be logged in to leave comments. Login now