@@ -43,7 +43,7 void AxisItem::setPlotDomain(const PlotDomain& plotDomain) | |||
|
43 | 43 | createItems(); |
|
44 | 44 | } |
|
45 | 45 | |
|
46 | void AxisItem::setSize(const QSize &size) | |
|
46 | void AxisItem::setSize(const QSizeF &size) | |
|
47 | 47 | { |
|
48 | 48 | m_rect = QRectF(QPoint(0,0),size); |
|
49 | 49 | createItems(); |
@@ -20,7 +20,7 public: | |||
|
20 | 20 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){}; |
|
21 | 21 | |
|
22 | 22 | public: // from ChartItem |
|
23 | void setSize(const QSize &size); | |
|
23 | void setSize(const QSizeF &size); | |
|
24 | 24 | void setPlotDomain(const PlotDomain& data); |
|
25 | 25 | |
|
26 | 26 | public: |
@@ -9,7 +9,7 Bar::Bar(QGraphicsItem *parent) | |||
|
9 | 9 | { |
|
10 | 10 | } |
|
11 | 11 | |
|
12 | void Bar::setSize(const QSize& size) | |
|
12 | void Bar::setSize(const QSizeF& size) | |
|
13 | 13 | { |
|
14 | 14 | mWidth = size.width(); |
|
15 | 15 | mHeight = size.height(); |
@@ -14,7 +14,7 public: | |||
|
14 | 14 | Bar(QGraphicsItem *parent=0); |
|
15 | 15 | |
|
16 | 16 | public: // from ChartItem |
|
17 | void setSize(const QSize &size); | |
|
17 | void setSize(const QSizeF &size); | |
|
18 | 18 | void setPlotDomain(const PlotDomain& data); |
|
19 | 19 | |
|
20 | 20 | // Layout Stuff |
@@ -15,7 +15,7 BarGroup::BarGroup(BarChartSeries& series, QGraphicsItem *parent) : | |||
|
15 | 15 | dataChanged(); |
|
16 | 16 | } |
|
17 | 17 | |
|
18 | void BarGroup::setSize(const QSize& size) | |
|
18 | void BarGroup::setSize(const QSizeF& size) | |
|
19 | 19 | { |
|
20 | 20 | qDebug() << "BarGroup::setSize"; |
|
21 | 21 | mWidth = size.width(); |
@@ -14,7 +14,7 public: | |||
|
14 | 14 | explicit BarGroup(BarChartSeries& series, QGraphicsItem *parent = 0); |
|
15 | 15 | |
|
16 | 16 | public: // from ChartItem |
|
17 | void setSize(const QSize &size); | |
|
17 | void setSize(const QSizeF &size); | |
|
18 | 18 | void setPlotDomain(const PlotDomain& data); |
|
19 | 19 | |
|
20 | 20 | // Layout "api" |
@@ -16,7 +16,7 PercentBarGroup::PercentBarGroup(PercentBarChartSeries& series, QGraphicsItem *p | |||
|
16 | 16 | } |
|
17 | 17 | |
|
18 | 18 | |
|
19 | void PercentBarGroup::setSize(const QSize& size) | |
|
19 | void PercentBarGroup::setSize(const QSizeF& size) | |
|
20 | 20 | { |
|
21 | 21 | // qDebug() << "PercentBarGroup::setSize"; |
|
22 | 22 | mWidth = size.width(); |
@@ -14,7 +14,7 public: | |||
|
14 | 14 | PercentBarGroup(PercentBarChartSeries& series, QGraphicsItem *parent = 0); |
|
15 | 15 | |
|
16 | 16 | public: // From ChartItem |
|
17 | void setSize(const QSize &size); | |
|
17 | void setSize(const QSizeF &size); | |
|
18 | 18 | void setPlotDomain(const PlotDomain& data); |
|
19 | 19 | |
|
20 | 20 | public: |
@@ -17,7 +17,7 StackedBarGroup::StackedBarGroup(StackedBarChartSeries& series, QGraphicsItem *p | |||
|
17 | 17 | } |
|
18 | 18 | |
|
19 | 19 | |
|
20 | void StackedBarGroup::setSize(const QSize& size) | |
|
20 | void StackedBarGroup::setSize(const QSizeF& size) | |
|
21 | 21 | { |
|
22 | 22 | // qDebug() << "StackedBarGroup::setSize"; |
|
23 | 23 | mWidth = size.width(); |
@@ -17,7 +17,7 public: | |||
|
17 | 17 | StackedBarGroup(StackedBarChartSeries& series, QGraphicsItem *parent = 0); |
|
18 | 18 | |
|
19 | 19 | public: // From ChartItem |
|
20 | void setSize(const QSize &size); | |
|
20 | void setSize(const QSizeF &size); | |
|
21 | 21 | void setPlotDomain(const PlotDomain& data); |
|
22 | 22 | |
|
23 | 23 | // From ChartThemeObserver |
@@ -12,7 +12,7 class ChartItem : public QGraphicsItem | |||
|
12 | 12 | public: |
|
13 | 13 | ChartItem(QGraphicsItem* parent = 0):QGraphicsItem(parent){}; |
|
14 | 14 | virtual ~ChartItem(){}; |
|
15 | virtual void setSize(const QSize &size) = 0; | |
|
15 | virtual void setSize(const QSizeF &size) = 0; | |
|
16 | 16 | virtual void setPlotDomain(const PlotDomain& data) = 0; |
|
17 | 17 | }; |
|
18 | 18 |
@@ -28,7 +28,7 qreal PlotDomain::spanY() const | |||
|
28 | 28 | return m_maxY - m_minY; |
|
29 | 29 | } |
|
30 | 30 | |
|
31 | PlotDomain PlotDomain::subDomain(const QRect& rect, qreal maxWidth,qreal maxHeight) const | |
|
31 | PlotDomain PlotDomain::subDomain(const QRectF& rect, qreal maxWidth,qreal maxHeight) const | |
|
32 | 32 | { |
|
33 | 33 | PlotDomain domain; |
|
34 | 34 |
@@ -13,7 +13,7 public: | |||
|
13 | 13 | qreal spanX() const; |
|
14 | 14 | qreal spanY() const; |
|
15 | 15 | |
|
16 | PlotDomain subDomain(const QRect& rect, qreal maxWidth, qreal maxHeight) const; | |
|
16 | PlotDomain subDomain(const QRectF& rect, qreal maxWidth, qreal maxHeight) const; | |
|
17 | 17 | |
|
18 | 18 | |
|
19 | 19 | public: |
@@ -19,11 +19,12 | |||
|
19 | 19 | #include "plotdomain_p.h" |
|
20 | 20 | #include "axisitem_p.h" |
|
21 | 21 | #include <QGraphicsScene> |
|
22 | #include <QGraphicsSceneResizeEvent> | |
|
22 | 23 | #include <QDebug> |
|
23 | 24 | |
|
24 | 25 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
25 | 26 | |
|
26 |
QChart::QChart(QGraphics |
|
|
27 | QChart::QChart(QGraphicsItem *parent, Qt::WindowFlags wFlags) : QGraphicsWidget(parent,wFlags), | |
|
27 | 28 | m_backgroundItem(0), |
|
28 | 29 | m_titleItem(0), |
|
29 | 30 | m_axisXItem(new AxisItem(AxisItem::X_AXIS, this)), |
@@ -226,36 +227,6 QChartSeries* QChart::createSeries(QChartSeries::QChartSeriesType type) | |||
|
226 | 227 | return series; |
|
227 | 228 | } |
|
228 | 229 | |
|
229 | void QChart::setSize(const QSize& size) | |
|
230 | { | |
|
231 | m_rect = QRect(QPoint(0,0),size); | |
|
232 | QRect rect = m_rect.adjusted(margin(),margin(), -margin(), -margin()); | |
|
233 | ||
|
234 | // recalculate title position | |
|
235 | if (m_titleItem) { | |
|
236 | QPointF center = m_rect.center() -m_titleItem->boundingRect().center(); | |
|
237 | m_titleItem->setPos(center.x(),m_rect.top()/2 + margin()/2); | |
|
238 | } | |
|
239 | ||
|
240 | //recalculate background gradient | |
|
241 | if (m_backgroundItem) { | |
|
242 | m_backgroundItem->setRect(rect); | |
|
243 | if (m_bacgroundOrinetation == HorizonatlGradientOrientation) | |
|
244 | m_backgroundGradient.setFinalStop(m_backgroundItem->rect().width(), 0); | |
|
245 | else | |
|
246 | m_backgroundGradient.setFinalStop(0, m_backgroundItem->rect().height()); | |
|
247 | m_backgroundItem->setBrush(m_backgroundGradient); | |
|
248 | } | |
|
249 | ||
|
250 | // resize and reposition childs | |
|
251 | foreach (ChartItem *item, m_chartItems) { | |
|
252 | item->setPos(rect.topLeft()); | |
|
253 | item->setSize(rect.size()); | |
|
254 | } | |
|
255 | ||
|
256 | update(); | |
|
257 | } | |
|
258 | ||
|
259 | 230 | void QChart::setBackground(const QColor& startColor, const QColor& endColor, GradientOrientation orientation) |
|
260 | 231 | { |
|
261 | 232 | |
@@ -319,14 +290,14 void QChart::setTheme(QChart::ChartThemeId theme) | |||
|
319 | 290 | update(); |
|
320 | 291 | } |
|
321 | 292 | |
|
322 | void QChart::zoomInToRect(const QRect& rectangle) | |
|
293 | void QChart::zoomInToRect(const QRectF& rectangle) | |
|
323 | 294 | { |
|
324 | 295 | |
|
325 | 296 | if(!rectangle.isValid()) return; |
|
326 | 297 | |
|
327 | 298 | qreal margin = this->margin(); |
|
328 | 299 | |
|
329 | QRect rect = rectangle.normalized(); | |
|
300 | QRectF rect = rectangle.normalized(); | |
|
330 | 301 | rect.translate(-margin, -margin); |
|
331 | 302 | |
|
332 | 303 | PlotDomain& oldDomain = m_plotDomainList[m_plotDataIndex]; |
@@ -350,7 +321,7 void QChart::zoomIn() | |||
|
350 | 321 | item->setPlotDomain(m_plotDomainList[m_plotDataIndex]); |
|
351 | 322 | update(); |
|
352 | 323 | } else { |
|
353 | QRect rect = m_rect.adjusted(margin(),margin(), -margin(), -margin()); | |
|
324 | QRectF rect = m_rect.adjusted(margin(),margin(), -margin(), -margin()); | |
|
354 | 325 | rect.setWidth(rect.width()/2); |
|
355 | 326 | rect.setHeight(rect.height()/2); |
|
356 | 327 | rect.moveCenter(m_rect.center()); |
@@ -397,6 +368,39 void QChart::setAxis(AxisItem *item, const QChartAxis& axis) | |||
|
397 | 368 | item->setVisible(axis.isAxisVisible()); |
|
398 | 369 | } |
|
399 | 370 | |
|
371 | void QChart::resizeEvent(QGraphicsSceneResizeEvent *event) | |
|
372 | { | |
|
373 | ||
|
374 | m_rect = QRectF(QPoint(0,0),event->newSize()); | |
|
375 | QRectF rect = m_rect.adjusted(margin(),margin(), -margin(), -margin()); | |
|
376 | ||
|
377 | // recalculate title position | |
|
378 | if (m_titleItem) { | |
|
379 | QPointF center = m_rect.center() -m_titleItem->boundingRect().center(); | |
|
380 | m_titleItem->setPos(center.x(),m_rect.top()/2 + margin()/2); | |
|
381 | } | |
|
382 | ||
|
383 | //recalculate background gradient | |
|
384 | if (m_backgroundItem) { | |
|
385 | m_backgroundItem->setRect(rect); | |
|
386 | if (m_bacgroundOrinetation == HorizonatlGradientOrientation) | |
|
387 | m_backgroundGradient.setFinalStop(m_backgroundItem->rect().width(), 0); | |
|
388 | else | |
|
389 | m_backgroundGradient.setFinalStop(0, m_backgroundItem->rect().height()); | |
|
390 | m_backgroundItem->setBrush(m_backgroundGradient); | |
|
391 | } | |
|
392 | ||
|
393 | // resize and reposition childs | |
|
394 | foreach (ChartItem *item, m_chartItems) { | |
|
395 | item->setPos(rect.topLeft()); | |
|
396 | item->setSize(rect.size()); | |
|
397 | } | |
|
398 | ||
|
399 | update(); | |
|
400 | } | |
|
401 | ||
|
402 | ||
|
403 | ||
|
400 | 404 | #include "moc_qchart.cpp" |
|
401 | 405 | |
|
402 | 406 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -3,10 +3,12 | |||
|
3 | 3 | |
|
4 | 4 | #include <qchartglobal.h> |
|
5 | 5 | #include <qchartseries.h> |
|
6 |
#include <QGraphics |
|
|
6 | #include <QGraphicsWidget> | |
|
7 | 7 | #include <QLinearGradient> |
|
8 | 8 | #include <QFont> |
|
9 | 9 | |
|
10 | class QGraphicsSceneResizeEvent; | |
|
11 | ||
|
10 | 12 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
11 | 13 | |
|
12 | 14 | class AxisItem; |
@@ -25,7 +27,7 class ChartItem; | |||
|
25 | 27 | /*! |
|
26 | 28 | * TODO: define the responsibilities |
|
27 | 29 | */ |
|
28 |
class QTCOMMERCIALCHART_EXPORT QChart : public QGraphics |
|
|
30 | class QTCOMMERCIALCHART_EXPORT QChart : public QGraphicsWidget | |
|
29 | 31 | { |
|
30 | 32 | Q_OBJECT |
|
31 | 33 | public: |
@@ -45,7 +47,7 public: | |||
|
45 | 47 | }; |
|
46 | 48 | |
|
47 | 49 | public: |
|
48 |
QChart(QGraphics |
|
|
50 | QChart(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); | |
|
49 | 51 | ~QChart(); |
|
50 | 52 | |
|
51 | 53 | //from QGraphicsItem |
@@ -57,7 +59,6 public: | |||
|
57 | 59 | // TODO: who owns the series now? maybe owned by chart and returned a reference instead... |
|
58 | 60 | QChartSeries* createSeries(QChartSeries::QChartSeriesType type); |
|
59 | 61 | |
|
60 | void setSize(const QSize& size); | |
|
61 | 62 | void setMargin(int margin); |
|
62 | 63 | int margin() const; |
|
63 | 64 | void setTheme(QChart::ChartThemeId theme); |
@@ -65,7 +66,7 public: | |||
|
65 | 66 | void setTitle(const QString& title,const QFont& font = QFont()); |
|
66 | 67 | void setBackground(const QColor& startColor, const QColor& endColor = Qt::white, GradientOrientation orientation = VerticalGradientOrientation); |
|
67 | 68 | |
|
68 | void zoomInToRect(const QRect& rectangle); | |
|
69 | void zoomInToRect(const QRectF& rectangle); | |
|
69 | 70 | void zoomIn(); |
|
70 | 71 | void zoomOut(); |
|
71 | 72 | void zoomReset(); |
@@ -74,6 +75,9 public: | |||
|
74 | 75 | void setAxisY(const QChartAxis& axis); |
|
75 | 76 | void setAxisY(const QList<QChartAxis>& axis); |
|
76 | 77 | |
|
78 | protected: | |
|
79 | void resizeEvent(QGraphicsSceneResizeEvent *event); | |
|
80 | ||
|
77 | 81 | private: |
|
78 | 82 | void setAxis(AxisItem *item, const QChartAxis& axis); |
|
79 | 83 | |
@@ -85,7 +89,7 private: | |||
|
85 | 89 | QGraphicsTextItem* m_titleItem; |
|
86 | 90 | AxisItem* m_axisXItem; |
|
87 | 91 | QList<AxisItem*> m_axisYItem; |
|
88 | QRect m_rect; | |
|
92 | QRectF m_rect; | |
|
89 | 93 | QList<QChartSeries *> m_chartSeries; |
|
90 | 94 | QList<ChartItem *> m_chartItems; |
|
91 | 95 | QVector<PlotDomain> m_plotDomainList; |
@@ -28,7 +28,7 QChartView::~QChartView() | |||
|
28 | 28 | void QChartView::resizeEvent(QResizeEvent *event) |
|
29 | 29 | { |
|
30 | 30 | m_scene->setSceneRect(0,0,size().width(),size().height()); |
|
31 |
m_chart->s |
|
|
31 | m_chart->resize(size()); | |
|
32 | 32 | QWidget::resizeEvent(event); |
|
33 | 33 | } |
|
34 | 34 |
@@ -32,7 +32,7 QChartWidget::~QChartWidget() | |||
|
32 | 32 | void QChartWidget::resizeEvent(QResizeEvent *event) |
|
33 | 33 | { |
|
34 | 34 | m_scene->setSceneRect(0,0,size().width(),size().height()); |
|
35 |
m_chart->s |
|
|
35 | m_chart->resize(size()); | |
|
36 | 36 | QWidget::resizeEvent(event); |
|
37 | 37 | } |
|
38 | 38 |
@@ -49,7 +49,7 bool QPieSeriesPrivate::setData(QList<qreal> data) | |||
|
49 | 49 | return true; |
|
50 | 50 | } |
|
51 | 51 | |
|
52 | void QPieSeriesPrivate::setSize(const QSize &size) | |
|
52 | void QPieSeriesPrivate::setSize(const QSizeF &size) | |
|
53 | 53 | { |
|
54 | 54 | // TODO: allow user setting the size? |
|
55 | 55 | // TODO: allow user defining the margins? |
@@ -19,7 +19,7 public: | |||
|
19 | 19 | ~QPieSeriesPrivate(); |
|
20 | 20 | |
|
21 | 21 | public: // from ChartItem |
|
22 | void setSize(const QSize &size); | |
|
22 | void setSize(const QSizeF &size); | |
|
23 | 23 | void setPlotDomain(const PlotDomain& data); |
|
24 | 24 | // This is a dummy QGraphicsItem; dummy implementation |
|
25 | 25 | QRectF boundingRect() const { return parentItem()->boundingRect(); } |
@@ -37,7 +37,7 void QScatterSeriesPrivate::changeGeometry() | |||
|
37 | 37 | } |
|
38 | 38 | } |
|
39 | 39 | |
|
40 | void QScatterSeriesPrivate::setSize(const QSize &size) | |
|
40 | void QScatterSeriesPrivate::setSize(const QSizeF &size) | |
|
41 | 41 | { |
|
42 | 42 | // m_boundingRect = QRectF(pos().x(), pos().y(), size.width(), size.height()); |
|
43 | 43 | m_boundingRect = QRectF(0, 0, size.width(), size.height()); |
@@ -18,7 +18,7 public: | |||
|
18 | 18 | QScatterSeriesPrivate(QGraphicsItem *parent); |
|
19 | 19 | |
|
20 | 20 | public: // from ChartObjectInterface |
|
21 | void setSize(const QSize &size); | |
|
21 | void setSize(const QSizeF &size); | |
|
22 | 22 | void setPlotDomain(const PlotDomain& data); |
|
23 | 23 | |
|
24 | 24 | public: // from ChartThemeObserver |
@@ -15,7 +15,7 XYLineChartItem::XYLineChartItem(QXYChartSeries* series,QGraphicsItem *parent) : | |||
|
15 | 15 | setFlags(QGraphicsItem::ItemClipsChildrenToShape); |
|
16 | 16 | } |
|
17 | 17 | |
|
18 | void XYLineChartItem::setSize(const QSize &size) | |
|
18 | void XYLineChartItem::setSize(const QSizeF &size) | |
|
19 | 19 | { |
|
20 | 20 | m_rect = QRect(0, 0, size.width(), size.height()); |
|
21 | 21 | prepareGeometryChange(); |
General Comments 0
You need to be logged in to leave comments.
Login now