##// END OF EJS Templates
Changes reinterpret_cast to static_cast
Michal Klocek -
r45:e67c80ea8c83
parent child
Show More
@@ -1,140 +1,142
1 #include "qchart.h"
1 #include "qchart.h"
2 #include "qchartseries.h"
2 #include "qchartseries.h"
3 #include "qscatterseries.h"
3 #include "qscatterseries.h"
4 #include "qscatterseries_p.h"
4 #include "qscatterseries_p.h"
5 #include "qxychartseries.h"
5 #include "xylinechartitem_p.h"
6 #include "xylinechartitem_p.h"
6 #include "xyplotdomain_p.h"
7 #include "xyplotdomain_p.h"
7 #include "axis_p.h"
8 #include "axis_p.h"
8 #include "xygrid_p.h"
9 #include "xygrid_p.h"
9 #include <QGraphicsScene>
10 #include <QGraphicsScene>
10 #include <QDebug>
11 #include <QDebug>
11
12
12 QTCOMMERCIALCHART_BEGIN_NAMESPACE
13 QTCOMMERCIALCHART_BEGIN_NAMESPACE
13
14
14 class QChartPrivate
15 class QChartPrivate
15 {
16 {
16 public:
17 public:
17
18
18 QChartPrivate(QChart* parent):
19 QChartPrivate(QChart* parent):
19 m_axisX(new Axis(parent)),
20 m_axisX(new Axis(parent)),
20 m_axisY(new Axis(parent)),
21 m_axisY(new Axis(parent)),
21 m_grid(new XYGrid(parent)),
22 m_grid(new XYGrid(parent)),
22 m_plotDataIndex(0),
23 m_plotDataIndex(0),
23 m_marginSize(0){}
24 m_marginSize(0){}
24
25
25 Axis* m_axisX;
26 Axis* m_axisX;
26 Axis* m_axisY;
27 Axis* m_axisY;
27 XYGrid* m_grid;
28 XYGrid* m_grid;
28 QRect m_rect;
29 QRect m_rect;
29 QList<const QChartSeries*> m_series;
30 QList<const QChartSeries*> m_series;
30 QList<XYPlotDomain> m_plotDataList;
31 QList<XYPlotDomain> m_plotDataList;
31 QList<QGraphicsItem*> m_items;
32 QList<QGraphicsItem*> m_items;
32 int m_plotDataIndex;
33 int m_plotDataIndex;
33 int m_marginSize;
34 int m_marginSize;
34
35
35 };
36 };
36
37
37 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
38 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
38
39
39 QChart::QChart(QGraphicsItem* parent):QGraphicsItem(parent),
40 QChart::QChart(QGraphicsItem* parent):QGraphicsItem(parent),
40 d_ptr(new QChartPrivate(this))
41 d_ptr(new QChartPrivate(this))
41 {
42 {
42 // setFlags(QGraphicsItem::ItemClipsChildrenToShape);
43 // setFlags(QGraphicsItem::ItemClipsChildrenToShape);
43 // set axis
44 // set axis
44 Q_D(QChart);
45 Q_D(QChart);
45 d->m_axisY->rotate(90);
46 d->m_axisY->rotate(90);
46
47
47 //TODO hardcoded values , to removed soon
48 //TODO hardcoded values , to removed soon
48 XYPlotDomain data;
49 XYPlotDomain data;
49 data.m_minX = 0.0;
50 data.m_minX = 0.0;
50 data.m_maxX = 100.0;
51 data.m_maxX = 100.0;
51 data.m_minY = 0.0;
52 data.m_minY = 0.0;
52 data.m_maxY = 100.0;
53 data.m_maxY = 100.0;
53 data.m_ticksX=4;
54 data.m_ticksX=4;
54 data.m_ticksY=4;
55 data.m_ticksY=4;
55
56
56 d->m_plotDataList.clear();
57 d->m_plotDataList.clear();
57 d->m_plotDataList << data;
58 d->m_plotDataList << data;
58
59
59 d->m_grid->setZValue(10);
60 d->m_grid->setZValue(10);
60 d->m_grid->setXYPlotData(d->m_plotDataList.at(0));
61 d->m_grid->setXYPlotData(d->m_plotDataList.at(0));
61 }
62 }
62
63
63 QChart::~QChart(){}
64 QChart::~QChart(){}
64
65
65 QRectF QChart::boundingRect() const
66 QRectF QChart::boundingRect() const
66 {
67 {
67 Q_D(const QChart);
68 Q_D(const QChart);
68 return d->m_rect;
69 return d->m_rect;
69 }
70 }
70
71
71 void QChart::addSeries(QChartSeries* series)
72 void QChart::addSeries(QChartSeries* series)
72 {
73 {
73 Q_D(QChart);
74 Q_D(QChart);
75
74 d->m_series<<series;
76 d->m_series<<series;
75
77
76 switch(series->type())
78 switch(series->type())
77 {
79 {
78 case QChartSeries::SeriesTypeLine: {
80 case QChartSeries::SeriesTypeLine: {
79 XYLineChartItem* item = new XYLineChartItem(reinterpret_cast<QXYChartSeries*>(series),this);
81 XYLineChartItem* item = new XYLineChartItem(static_cast<QXYChartSeries*>(series),this);
80 item->updateXYPlotData(d->m_plotDataList.at(0));
82 item->updateXYPlotData(d->m_plotDataList.at(0));
81 d->m_items<<item;
83 d->m_items<<item;
82 break;
84 break;
83 }
85 }
84 case QChartSeries::SeriesTypeScatter: {
86 case QChartSeries::SeriesTypeScatter: {
85 break;
87 break;
86 }
88 }
87 }
89 }
88 }
90 }
89
91
90 QChartSeries* QChart::createSeries(QList<qreal> x, QList<qreal> y, QChartSeries::QChartSeriesType type)
92 QChartSeries* QChart::createSeries(QList<qreal> x, QList<qreal> y, QChartSeries::QChartSeriesType type)
91 {
93 {
92 Q_D(QChart);
94 Q_D(QChart);
93
95
94 // TODO: support also other types
96 // TODO: support also other types
95 Q_ASSERT(type == QChartSeries::SeriesTypeScatter);
97 Q_ASSERT(type == QChartSeries::SeriesTypeScatter);
96 QChartSeries *series = 0;
98 QChartSeries *series = 0;
97
99
98 switch (type) {
100 switch (type) {
99 case QChartSeries::SeriesTypeScatter: {
101 case QChartSeries::SeriesTypeScatter: {
100 QScatterSeries *scatterSeries = new QScatterSeries(x, y, this);
102 QScatterSeries *scatterSeries = new QScatterSeries(x, y, this);
101 d->m_items.append(scatterSeries->d);
103 d->m_items.append(scatterSeries->d);
102 scene()->addItem(scatterSeries->d);
104 scene()->addItem(scatterSeries->d);
103 //series = qobject_cast<QChartSeries *>(scatterSeries);
105 //series = qobject_cast<QChartSeries *>(scatterSeries);
104 break;
106 break;
105 }
107 }
106 default:
108 default:
107 break;
109 break;
108 }
110 }
109
111
110 return series;
112 return series;
111 }
113 }
112 void QChart::setSize(const QSizeF& size)
114 void QChart::setSize(const QSizeF& size)
113 {
115 {
114 Q_D(QChart);
116 Q_D(QChart);
115 //TODO refactor to setGeometry
117 //TODO refactor to setGeometry
116 d->m_rect = QRect(QPoint(0,0),size.toSize());
118 d->m_rect = QRect(QPoint(0,0),size.toSize());
117 d->m_rect.adjust(margin(),margin(),-margin(),-margin());
119 d->m_rect.adjust(margin(),margin(),-margin(),-margin());
118 d->m_grid->setPos(d->m_rect.topLeft());
120 d->m_grid->setPos(d->m_rect.topLeft());
119 d->m_grid->setSize(d->m_rect.size());
121 d->m_grid->setSize(d->m_rect.size());
120 d->m_plotDataList[0].m_viewportRect = d->m_rect;
122 d->m_plotDataList[0].m_viewportRect = d->m_rect;
121 // TODO: line chart items would need to be updated separately as they don't support update
123 // TODO: line chart items would need to be updated separately as they don't support update
122 // via paint method
124 // via paint method
123 foreach(QGraphicsItem* item , d->m_items)
125 foreach(QGraphicsItem* item , d->m_items)
124 reinterpret_cast<XYLineChartItem*>(item)->updateXYPlotData(d->m_plotDataList.at(0));
126 reinterpret_cast<XYLineChartItem*>(item)->updateXYPlotData(d->m_plotDataList.at(0));
125 update();
127 update();
126 }
128 }
127
129
128 int QChart::margin() const
130 int QChart::margin() const
129 {
131 {
130 Q_D(const QChart);
132 Q_D(const QChart);
131 return d->m_marginSize;
133 return d->m_marginSize;
132 }
134 }
133
135
134 void QChart::setMargin(int margin)
136 void QChart::setMargin(int margin)
135 {
137 {
136 Q_D(QChart);
138 Q_D(QChart);
137 d->m_marginSize = margin;
139 d->m_marginSize = margin;
138 }
140 }
139
141
140 QTCOMMERCIALCHART_END_NAMESPACE
142 QTCOMMERCIALCHART_END_NAMESPACE
General Comments 0
You need to be logged in to leave comments. Login now