@@ -1,46 +1,46 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef AXISANIMATION |
|
21 | #ifndef AXISANIMATION_H | |
22 |
#define AXISANIMATION |
|
22 | #define AXISANIMATION_H | |
23 |
|
23 | |||
24 | #include "axis_p.h" |
|
24 | #include "axis_p.h" | |
25 | #include "chartanimation_p.h" |
|
25 | #include "chartanimation_p.h" | |
26 |
|
26 | |||
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class AxisAnimation: public ChartAnimation |
|
30 | class AxisAnimation: public ChartAnimation | |
31 | { |
|
31 | { | |
32 | public: |
|
32 | public: | |
33 | AxisAnimation(Axis *axis); |
|
33 | AxisAnimation(Axis *axis); | |
34 | ~AxisAnimation(); |
|
34 | ~AxisAnimation(); | |
35 | protected: |
|
35 | protected: | |
36 | QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress ) const; |
|
36 | QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress ) const; | |
37 | void updateCurrentValue(const QVariant &value ); |
|
37 | void updateCurrentValue(const QVariant &value ); | |
38 | private: |
|
38 | private: | |
39 | Axis *m_axis; |
|
39 | Axis *m_axis; | |
40 | }; |
|
40 | }; | |
41 |
|
41 | |||
42 | QTCOMMERCIALCHART_END_NAMESPACE |
|
42 | QTCOMMERCIALCHART_END_NAMESPACE | |
43 |
|
43 | |||
44 |
|
44 | |||
45 |
|
45 | |||
46 | #endif /* AXISITEM_H_ */ |
|
46 | #endif /* AXISITEM_H_ */ |
@@ -1,54 +1,54 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef BARANIMATION_P_H |
|
21 | #ifndef BARANIMATION_P_H | |
22 |
#define BARANIMATION_P_H |
|
22 | #define BARANIMATION_P_H | |
23 |
|
23 | |||
24 | #include "chartanimation_p.h" |
|
24 | #include "chartanimation_p.h" | |
25 | #include "barchartitem_p.h" |
|
25 | #include "barchartitem_p.h" | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class BarChartItem; |
|
29 | class BarChartItem; | |
30 | class QBarSet; |
|
30 | class QBarSet; | |
31 | class BarSetAnimation; |
|
31 | class BarSetAnimation; | |
32 |
|
32 | |||
33 | class BarAnimation : public ChartAnimation |
|
33 | class BarAnimation : public ChartAnimation | |
34 | { |
|
34 | { | |
35 | Q_OBJECT |
|
35 | Q_OBJECT | |
36 |
|
36 | |||
37 | public: |
|
37 | public: | |
38 | BarAnimation(BarChartItem *item); |
|
38 | BarAnimation(BarChartItem *item); | |
39 | ~BarAnimation(); |
|
39 | ~BarAnimation(); | |
40 |
|
40 | |||
41 | public: // from QVariantAnimation |
|
41 | public: // from QVariantAnimation | |
42 | virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; |
|
42 | virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; | |
43 | virtual void updateCurrentValue(const QVariant &value); |
|
43 | virtual void updateCurrentValue(const QVariant &value); | |
44 |
|
44 | |||
45 | public Q_SLOTS: |
|
45 | public Q_SLOTS: | |
46 |
|
46 | |||
47 | private: |
|
47 | private: | |
48 | BarChartItem *m_item; |
|
48 | BarChartItem *m_item; | |
49 | QHash<QBarSet *, BarSetAnimation *> m_animations; |
|
49 | QHash<QBarSet *, BarSetAnimation *> m_animations; | |
50 | }; |
|
50 | }; | |
51 |
|
51 | |||
52 | QTCOMMERCIALCHART_END_NAMESPACE |
|
52 | QTCOMMERCIALCHART_END_NAMESPACE | |
53 |
|
53 | |||
54 | #endif |
|
54 | #endif |
@@ -1,46 +1,46 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTANIMATION_H |
|
21 | #ifndef CHARTANIMATION_H | |
22 |
#define CHARTANIMATION_H |
|
22 | #define CHARTANIMATION_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include <QVariantAnimation> |
|
25 | #include <QVariantAnimation> | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class ChartAnimation: public QVariantAnimation |
|
29 | class ChartAnimation: public QVariantAnimation | |
30 | { |
|
30 | { | |
31 | public: |
|
31 | public: | |
32 | enum Animation { LineDrawAnimation, MoveDownAnimation, MoveUpAnimation }; |
|
32 | enum Animation { LineDrawAnimation, MoveDownAnimation, MoveUpAnimation }; | |
33 | ChartAnimation(QObject *parent = 0):QVariantAnimation(parent), m_type(MoveDownAnimation){} |
|
33 | ChartAnimation(QObject *parent = 0):QVariantAnimation(parent), m_type(MoveDownAnimation){} | |
34 | void setAnimationType(Animation type){ |
|
34 | void setAnimationType(Animation type){ | |
35 | m_type=type; |
|
35 | m_type=type; | |
36 | } |
|
36 | } | |
37 | protected: |
|
37 | protected: | |
38 | Animation m_type; |
|
38 | Animation m_type; | |
39 |
|
39 | |||
40 | }; |
|
40 | }; | |
41 |
|
41 | |||
42 | QTCOMMERCIALCHART_END_NAMESPACE |
|
42 | QTCOMMERCIALCHART_END_NAMESPACE | |
43 |
|
43 | |||
44 |
|
44 | |||
45 |
|
45 | |||
46 | #endif /* AXISITEM_H_ */ |
|
46 | #endif /* AXISITEM_H_ */ |
@@ -1,77 +1,78 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTANIMATOR_P_H |
|
21 | #ifndef CHARTANIMATOR_P_H | |
22 |
#define CHARTANIMATOR_P_H |
|
22 | #define CHARTANIMATOR_P_H | |
|
23 | ||||
23 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
24 | #include "chartanimation_p.h" |
|
25 | #include "chartanimation_p.h" | |
25 | #include "piechartitem_p.h" |
|
26 | #include "piechartitem_p.h" | |
26 | #include "barchartitem_p.h" |
|
27 | #include "barchartitem_p.h" | |
27 | #include <QPointF> |
|
28 | #include <QPointF> | |
28 |
|
29 | |||
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
30 |
|
31 | |||
31 | class ChartItem; |
|
32 | class ChartItem; | |
32 | class Axis; |
|
33 | class Axis; | |
33 | class AreaChartItem; |
|
34 | class AreaChartItem; | |
34 | class SplineChartItem; |
|
35 | class SplineChartItem; | |
35 | class ScatterChartItem; |
|
36 | class ScatterChartItem; | |
36 | class LineChartItem; |
|
37 | class LineChartItem; | |
37 | class XYChartItem; |
|
38 | class XYChartItem; | |
38 |
|
39 | |||
39 | class ChartAnimator : public QObject { |
|
40 | class ChartAnimator : public QObject { | |
40 |
|
41 | |||
41 | public: |
|
42 | public: | |
42 | enum State{ShowState, ScrollUpState, ScrollDownState, ScrollLeftState, ScrollRightState, ZoomInState, ZoomOutState}; |
|
43 | enum State{ShowState, ScrollUpState, ScrollDownState, ScrollLeftState, ScrollRightState, ZoomInState, ZoomOutState}; | |
43 |
|
44 | |||
44 | ChartAnimator(QObject *parent = 0); |
|
45 | ChartAnimator(QObject *parent = 0); | |
45 | virtual ~ChartAnimator(); |
|
46 | virtual ~ChartAnimator(); | |
46 |
|
47 | |||
47 | void addAnimation(Axis *item); |
|
48 | void addAnimation(Axis *item); | |
48 | void addAnimation(PieChartItem *item); |
|
49 | void addAnimation(PieChartItem *item); | |
49 | void addAnimation(ScatterChartItem *item); |
|
50 | void addAnimation(ScatterChartItem *item); | |
50 | void addAnimation(LineChartItem *item); |
|
51 | void addAnimation(LineChartItem *item); | |
51 | void addAnimation(SplineChartItem *item); |
|
52 | void addAnimation(SplineChartItem *item); | |
52 | void addAnimation(BarChartItem *item); |
|
53 | void addAnimation(BarChartItem *item); | |
53 | void removeAnimation(Chart *item); |
|
54 | void removeAnimation(Chart *item); | |
54 |
|
55 | |||
55 | void animationStarted(); |
|
56 | void animationStarted(); | |
56 | void updateLayout(XYChartItem *item, QVector<QPointF> &oldLayout, QVector<QPointF> &newLayout, int index); |
|
57 | void updateLayout(XYChartItem *item, QVector<QPointF> &oldLayout, QVector<QPointF> &newLayout, int index); | |
57 | void updateLayout(SplineChartItem *item, QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints, QVector<QPointF> &oldControlPoints, QVector<QPointF> &newContorlPoints, int index); |
|
58 | void updateLayout(SplineChartItem *item, QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints, QVector<QPointF> &oldControlPoints, QVector<QPointF> &newContorlPoints, int index); | |
58 | void updateLayout(Axis *item, QVector<qreal> &layout); |
|
59 | void updateLayout(Axis *item, QVector<qreal> &layout); | |
59 |
|
60 | |||
60 | void addAnimation(PieChartItem *item, QPieSlice *slice, const PieSliceData &sliceData, bool isEmpty); |
|
61 | void addAnimation(PieChartItem *item, QPieSlice *slice, const PieSliceData &sliceData, bool isEmpty); | |
61 | void removeAnimation(PieChartItem *item, QPieSlice *slice); |
|
62 | void removeAnimation(PieChartItem *item, QPieSlice *slice); | |
62 | void updateLayout(PieChartItem *item, const PieLayout &layout); |
|
63 | void updateLayout(PieChartItem *item, const PieLayout &layout); | |
63 | void updateLayout(PieChartItem *item, QPieSlice *slice, const PieSliceData &sliceData); |
|
64 | void updateLayout(PieChartItem *item, QPieSlice *slice, const PieSliceData &sliceData); | |
64 |
|
65 | |||
65 | void updateLayout(BarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); |
|
66 | void updateLayout(BarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
66 |
|
67 | |||
67 | void setState(State state,const QPointF &point = QPointF()); |
|
68 | void setState(State state,const QPointF &point = QPointF()); | |
68 |
|
69 | |||
69 | private: |
|
70 | private: | |
70 | QMap<Chart *, ChartAnimation *> m_animations; |
|
71 | QMap<Chart *, ChartAnimation *> m_animations; | |
71 | State m_state; |
|
72 | State m_state; | |
72 | QPointF m_point; |
|
73 | QPointF m_point; | |
73 | }; |
|
74 | }; | |
74 |
|
75 | |||
75 | QTCOMMERCIALCHART_END_NAMESPACE |
|
76 | QTCOMMERCIALCHART_END_NAMESPACE | |
76 |
|
77 | |||
77 | #endif |
|
78 | #endif |
@@ -1,57 +1,57 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef PIEANIMATION_P_H |
|
21 | #ifndef PIEANIMATION_P_H | |
22 |
#define PIEANIMATION_P_H |
|
22 | #define PIEANIMATION_P_H | |
23 |
|
23 | |||
24 | #include "chartanimation_p.h" |
|
24 | #include "chartanimation_p.h" | |
25 | #include "piechartitem_p.h" |
|
25 | #include "piechartitem_p.h" | |
26 | #include "piesliceanimation_p.h" |
|
26 | #include "piesliceanimation_p.h" | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class PieChartItem; |
|
30 | class PieChartItem; | |
31 |
|
31 | |||
32 | class PieAnimation : public ChartAnimation |
|
32 | class PieAnimation : public ChartAnimation | |
33 | { |
|
33 | { | |
34 | Q_OBJECT |
|
34 | Q_OBJECT | |
35 |
|
35 | |||
36 | public: |
|
36 | public: | |
37 | PieAnimation(PieChartItem *item); |
|
37 | PieAnimation(PieChartItem *item); | |
38 | ~PieAnimation(); |
|
38 | ~PieAnimation(); | |
39 | void updateValues(const PieLayout &newValues); |
|
39 | void updateValues(const PieLayout &newValues); | |
40 | void updateValue(QPieSlice *slice, const PieSliceData &newValue); |
|
40 | void updateValue(QPieSlice *slice, const PieSliceData &newValue); | |
41 | void addSlice(QPieSlice *slice, const PieSliceData &endValue, bool isEmpty); |
|
41 | void addSlice(QPieSlice *slice, const PieSliceData &endValue, bool isEmpty); | |
42 | void removeSlice(QPieSlice *slice); |
|
42 | void removeSlice(QPieSlice *slice); | |
43 |
|
43 | |||
44 | public: // from QVariantAnimation |
|
44 | public: // from QVariantAnimation | |
45 | void updateCurrentValue(const QVariant &value); |
|
45 | void updateCurrentValue(const QVariant &value); | |
46 |
|
46 | |||
47 | public Q_SLOTS: |
|
47 | public Q_SLOTS: | |
48 | void destroySliceAnimationComplete(); |
|
48 | void destroySliceAnimationComplete(); | |
49 |
|
49 | |||
50 | private: |
|
50 | private: | |
51 | PieChartItem *m_item; |
|
51 | PieChartItem *m_item; | |
52 | QHash<QPieSlice *, PieSliceAnimation *> m_animations; |
|
52 | QHash<QPieSlice *, PieSliceAnimation *> m_animations; | |
53 | }; |
|
53 | }; | |
54 |
|
54 | |||
55 | QTCOMMERCIALCHART_END_NAMESPACE |
|
55 | QTCOMMERCIALCHART_END_NAMESPACE | |
56 |
|
56 | |||
57 | #endif |
|
57 | #endif |
@@ -1,53 +1,53 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef PIESLICEANIMATION_P_H |
|
21 | #ifndef PIESLICEANIMATION_P_H | |
22 |
#define PIESLICEANIMATION_P_H |
|
22 | #define PIESLICEANIMATION_P_H | |
23 |
|
23 | |||
24 | #include "piechartitem_p.h" |
|
24 | #include "piechartitem_p.h" | |
25 | #include <QVariantAnimation> |
|
25 | #include <QVariantAnimation> | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class PieChartItem; |
|
29 | class PieChartItem; | |
30 | class QPieSlice; |
|
30 | class QPieSlice; | |
31 |
|
31 | |||
32 | class PieSliceAnimation : public QVariantAnimation |
|
32 | class PieSliceAnimation : public QVariantAnimation | |
33 | { |
|
33 | { | |
34 | public: |
|
34 | public: | |
35 | PieSliceAnimation(PieChartItem *item, QPieSlice *slice); |
|
35 | PieSliceAnimation(PieChartItem *item, QPieSlice *slice); | |
36 | ~PieSliceAnimation(); |
|
36 | ~PieSliceAnimation(); | |
37 | void setValue(const PieSliceData &startValue, const PieSliceData &endValue); |
|
37 | void setValue(const PieSliceData &startValue, const PieSliceData &endValue); | |
38 | void updateValue(const PieSliceData &endValue); |
|
38 | void updateValue(const PieSliceData &endValue); | |
39 | PieSliceData currentSliceValue(); |
|
39 | PieSliceData currentSliceValue(); | |
40 |
|
40 | |||
41 | protected: |
|
41 | protected: | |
42 | QVariant interpolated(const QVariant &start, const QVariant &end, qreal progress) const; |
|
42 | QVariant interpolated(const QVariant &start, const QVariant &end, qreal progress) const; | |
43 | void updateCurrentValue(const QVariant &value); |
|
43 | void updateCurrentValue(const QVariant &value); | |
44 |
|
44 | |||
45 | private: |
|
45 | private: | |
46 | PieChartItem *m_item; |
|
46 | PieChartItem *m_item; | |
47 | QPieSlice *m_slice; |
|
47 | QPieSlice *m_slice; | |
48 | PieSliceData m_currentValue; |
|
48 | PieSliceData m_currentValue; | |
49 | }; |
|
49 | }; | |
50 |
|
50 | |||
51 | QTCOMMERCIALCHART_END_NAMESPACE |
|
51 | QTCOMMERCIALCHART_END_NAMESPACE | |
52 |
|
52 | |||
53 | #endif |
|
53 | #endif |
@@ -1,52 +1,52 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef SPLINEANIMATION_P_H |
|
21 | #ifndef SPLINEANIMATION_P_H | |
22 |
#define SPLINEANIMATION_P_H |
|
22 | #define SPLINEANIMATION_P_H | |
23 | #include "chartanimation_p.h" |
|
23 | #include "chartanimation_p.h" | |
24 | #include <QPointF> |
|
24 | #include <QPointF> | |
25 |
|
25 | |||
26 | typedef QPair<QVector<QPointF >, QVector<QPointF > > SplineVector; |
|
26 | typedef QPair<QVector<QPointF >, QVector<QPointF > > SplineVector; | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class SplineChartItem; |
|
30 | class SplineChartItem; | |
31 |
|
31 | |||
32 | class SplineAnimation : public ChartAnimation |
|
32 | class SplineAnimation : public ChartAnimation | |
33 | { |
|
33 | { | |
34 | public: |
|
34 | public: | |
35 |
|
35 | |||
36 | SplineAnimation(SplineChartItem *item); |
|
36 | SplineAnimation(SplineChartItem *item); | |
37 | ~SplineAnimation(); |
|
37 | ~SplineAnimation(); | |
38 | void setValues(QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints, QVector<QPointF> &oldContorlPoints, QVector<QPointF> &newControlPoints, int index); |
|
38 | void setValues(QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints, QVector<QPointF> &oldContorlPoints, QVector<QPointF> &newControlPoints, int index); | |
39 |
|
39 | |||
40 | protected: |
|
40 | protected: | |
41 | QVariant interpolated(const QVariant &start, const QVariant &end, qreal progress) const; |
|
41 | QVariant interpolated(const QVariant &start, const QVariant &end, qreal progress) const; | |
42 | void updateCurrentValue(const QVariant &value); |
|
42 | void updateCurrentValue(const QVariant &value); | |
43 |
|
43 | |||
44 | private: |
|
44 | private: | |
45 | SplineVector m_oldSpline; |
|
45 | SplineVector m_oldSpline; | |
46 | SplineChartItem *m_item; |
|
46 | SplineChartItem *m_item; | |
47 | bool m_dirty; |
|
47 | bool m_dirty; | |
48 | }; |
|
48 | }; | |
49 |
|
49 | |||
50 | QTCOMMERCIALCHART_END_NAMESPACE |
|
50 | QTCOMMERCIALCHART_END_NAMESPACE | |
51 |
|
51 | |||
52 | #endif |
|
52 | #endif |
@@ -1,50 +1,51 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef XY |
|
21 | #ifndef XYANIMATION_P_H | |
22 |
#define XY |
|
22 | #define XYANIMATION_P_H | |
|
23 | ||||
23 | #include "chartanimation_p.h" |
|
24 | #include "chartanimation_p.h" | |
24 | #include <QPointF> |
|
25 | #include <QPointF> | |
25 |
|
26 | |||
26 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
27 |
|
28 | |||
28 | class XYChartItem; |
|
29 | class XYChartItem; | |
29 |
|
30 | |||
30 | class XYAnimation : public ChartAnimation |
|
31 | class XYAnimation : public ChartAnimation | |
31 | { |
|
32 | { | |
32 | public: |
|
33 | public: | |
33 | enum Animation { LineDrawAnimation, MoveDownAnimation, MoveUpAnimation }; |
|
34 | enum Animation { LineDrawAnimation, MoveDownAnimation, MoveUpAnimation }; | |
34 | XYAnimation(XYChartItem *item); |
|
35 | XYAnimation(XYChartItem *item); | |
35 | ~XYAnimation(); |
|
36 | ~XYAnimation(); | |
36 | void setValues(QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints,int index); |
|
37 | void setValues(QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints,int index); | |
37 |
|
38 | |||
38 | protected: |
|
39 | protected: | |
39 | QVariant interpolated(const QVariant &start, const QVariant &end, qreal progress ) const; |
|
40 | QVariant interpolated(const QVariant &start, const QVariant &end, qreal progress ) const; | |
40 | void updateCurrentValue (const QVariant &value ); |
|
41 | void updateCurrentValue (const QVariant &value ); | |
41 |
|
42 | |||
42 | private: |
|
43 | private: | |
43 | XYChartItem *m_item; |
|
44 | XYChartItem *m_item; | |
44 | QVector<QPointF> m_oldPoints; |
|
45 | QVector<QPointF> m_oldPoints; | |
45 | bool m_dirty; |
|
46 | bool m_dirty; | |
46 | }; |
|
47 | }; | |
47 |
|
48 | |||
48 | QTCOMMERCIALCHART_END_NAMESPACE |
|
49 | QTCOMMERCIALCHART_END_NAMESPACE | |
49 |
|
50 | |||
50 | #endif |
|
51 | #endif |
@@ -1,71 +1,71 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef QAREASERIES_H |
|
21 | #ifndef QAREASERIES_H | |
22 |
#define QAREASERIES_H |
|
22 | #define QAREASERIES_H | |
23 |
|
23 | |||
24 | #include <qchartglobal.h> |
|
24 | #include <qchartglobal.h> | |
25 | #include <qseries.h> |
|
25 | #include <qseries.h> | |
26 | #include <QPen> |
|
26 | #include <QPen> | |
27 | #include <QBrush> |
|
27 | #include <QBrush> | |
28 |
|
28 | |||
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
30 | class QLineSeries; |
|
30 | class QLineSeries; | |
31 | class QAreaSeriesPrivate; |
|
31 | class QAreaSeriesPrivate; | |
32 |
|
32 | |||
33 | class QTCOMMERCIALCHART_EXPORT QAreaSeries : public QSeries |
|
33 | class QTCOMMERCIALCHART_EXPORT QAreaSeries : public QSeries | |
34 | { |
|
34 | { | |
35 | Q_OBJECT |
|
35 | Q_OBJECT | |
36 | public: |
|
36 | public: | |
37 | QAreaSeries(QLineSeries *upperSeries, QLineSeries *lowerSeries = 0); |
|
37 | QAreaSeries(QLineSeries *upperSeries, QLineSeries *lowerSeries = 0); | |
38 | virtual ~QAreaSeries(); |
|
38 | virtual ~QAreaSeries(); | |
39 |
|
39 | |||
40 | public: |
|
40 | public: | |
41 | QSeries::QSeriesType type() const; |
|
41 | QSeries::QSeriesType type() const; | |
42 |
|
42 | |||
43 | QLineSeries* upperSeries() const; |
|
43 | QLineSeries* upperSeries() const; | |
44 | QLineSeries* lowerSeries() const; |
|
44 | QLineSeries* lowerSeries() const; | |
45 |
|
45 | |||
46 | void setPen(const QPen &pen); |
|
46 | void setPen(const QPen &pen); | |
47 | QPen pen() const; |
|
47 | QPen pen() const; | |
48 |
|
48 | |||
49 | void setBrush(const QBrush &brush); |
|
49 | void setBrush(const QBrush &brush); | |
50 | QBrush brush() const; |
|
50 | QBrush brush() const; | |
51 |
|
51 | |||
52 | void setPointsVisible(bool visible); |
|
52 | void setPointsVisible(bool visible); | |
53 | bool pointsVisible() const; |
|
53 | bool pointsVisible() const; | |
54 |
|
54 | |||
55 | bool setModel(QAbstractItemModel* model); |
|
55 | bool setModel(QAbstractItemModel* model); | |
56 | QAbstractItemModel* model() const; |
|
56 | QAbstractItemModel* model() const; | |
57 |
|
57 | |||
58 | Q_SIGNALS: |
|
58 | Q_SIGNALS: | |
59 | void clicked(const QPointF &point); |
|
59 | void clicked(const QPointF &point); | |
60 | void selected(); |
|
60 | void selected(); | |
61 |
|
61 | |||
62 | private: |
|
62 | private: | |
63 | Q_DECLARE_PRIVATE(QAreaSeries); |
|
63 | Q_DECLARE_PRIVATE(QAreaSeries); | |
64 | Q_DISABLE_COPY(QAreaSeries); |
|
64 | Q_DISABLE_COPY(QAreaSeries); | |
65 | friend class AreaLegendMarker; |
|
65 | friend class AreaLegendMarker; | |
66 | friend class AreaChartItem; |
|
66 | friend class AreaChartItem; | |
67 | }; |
|
67 | }; | |
68 |
|
68 | |||
69 | QTCOMMERCIALCHART_END_NAMESPACE |
|
69 | QTCOMMERCIALCHART_END_NAMESPACE | |
70 |
|
70 | |||
71 | #endif |
|
71 | #endif |
@@ -1,65 +1,65 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QAREASERIES_P_H |
|
30 | #ifndef QAREASERIES_P_H | |
31 |
#define QAREASERIES_P_H |
|
31 | #define QAREASERIES_P_H | |
32 |
|
32 | |||
33 | #include "qseries_p.h" |
|
33 | #include "qseries_p.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 | class QAreaSeries; |
|
37 | class QAreaSeries; | |
38 |
|
38 | |||
39 | class QAreaSeriesPrivate: public QSeriesPrivate |
|
39 | class QAreaSeriesPrivate: public QSeriesPrivate | |
40 | { |
|
40 | { | |
41 | Q_OBJECT |
|
41 | Q_OBJECT | |
42 |
|
42 | |||
43 | public: |
|
43 | public: | |
44 | QAreaSeriesPrivate(QLineSeries *upperSeries, QLineSeries *lowerSeries,QAreaSeries* q); |
|
44 | QAreaSeriesPrivate(QLineSeries *upperSeries, QLineSeries *lowerSeries,QAreaSeries* q); | |
45 |
|
45 | |||
46 | void scaleDomain(Domain& domain); |
|
46 | void scaleDomain(Domain& domain); | |
47 | Chart* createGraphics(ChartPresenter* presenter); |
|
47 | Chart* createGraphics(ChartPresenter* presenter); | |
48 | QList<LegendMarker*> createLegendMarker(QLegend* legend); |
|
48 | QList<LegendMarker*> createLegendMarker(QLegend* legend); | |
49 |
|
49 | |||
50 | Q_SIGNALS: |
|
50 | Q_SIGNALS: | |
51 | void updated(); |
|
51 | void updated(); | |
52 |
|
52 | |||
53 | protected: |
|
53 | protected: | |
54 | QBrush m_brush; |
|
54 | QBrush m_brush; | |
55 | QPen m_pen; |
|
55 | QPen m_pen; | |
56 | QLineSeries* m_upperSeries; |
|
56 | QLineSeries* m_upperSeries; | |
57 | QLineSeries* m_lowerSeries; |
|
57 | QLineSeries* m_lowerSeries; | |
58 | bool m_pointsVisible; |
|
58 | bool m_pointsVisible; | |
59 | private: |
|
59 | private: | |
60 | Q_DECLARE_PUBLIC(QAreaSeries); |
|
60 | Q_DECLARE_PUBLIC(QAreaSeries); | |
61 | }; |
|
61 | }; | |
62 |
|
62 | |||
63 | QTCOMMERCIALCHART_END_NAMESPACE |
|
63 | QTCOMMERCIALCHART_END_NAMESPACE | |
64 |
|
64 | |||
65 | #endif |
|
65 | #endif |
@@ -1,143 +1,143 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef AXIS |
|
21 | #ifndef AXIS_H | |
22 |
#define AXIS |
|
22 | #define AXIS_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include "chart_p.h" |
|
25 | #include "chart_p.h" | |
26 | #include <QGraphicsItem> |
|
26 | #include <QGraphicsItem> | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class QChartAxis; |
|
30 | class QChartAxis; | |
31 | class ChartPresenter; |
|
31 | class ChartPresenter; | |
32 |
|
32 | |||
33 | class Axis : public Chart |
|
33 | class Axis : public Chart | |
34 | { |
|
34 | { | |
35 | Q_OBJECT |
|
35 | Q_OBJECT | |
36 | public: |
|
36 | public: | |
37 | enum AxisType{X_AXIS,Y_AXIS}; |
|
37 | enum AxisType{X_AXIS,Y_AXIS}; | |
38 |
|
38 | |||
39 | Axis(QChartAxis *axis, ChartPresenter *presenter, AxisType type = X_AXIS); |
|
39 | Axis(QChartAxis *axis, ChartPresenter *presenter, AxisType type = X_AXIS); | |
40 | ~Axis(); |
|
40 | ~Axis(); | |
41 |
|
41 | |||
42 | AxisType axisType() const { return m_type; } |
|
42 | AxisType axisType() const { return m_type; } | |
43 |
|
43 | |||
44 | void setAxisOpacity(qreal opacity); |
|
44 | void setAxisOpacity(qreal opacity); | |
45 | qreal axisOpacity() const; |
|
45 | qreal axisOpacity() const; | |
46 |
|
46 | |||
47 | void setGridOpacity(qreal opacity); |
|
47 | void setGridOpacity(qreal opacity); | |
48 | qreal gridOpacity() const; |
|
48 | qreal gridOpacity() const; | |
49 |
|
49 | |||
50 | void setLabelsOpacity(qreal opacity); |
|
50 | void setLabelsOpacity(qreal opacity); | |
51 | qreal labelsOpacity() const; |
|
51 | qreal labelsOpacity() const; | |
52 |
|
52 | |||
53 | void setShadesOpacity(qreal opacity); |
|
53 | void setShadesOpacity(qreal opacity); | |
54 | qreal shadesOpacity() const; |
|
54 | qreal shadesOpacity() const; | |
55 |
|
55 | |||
56 | void setLabelsAngle(int angle); |
|
56 | void setLabelsAngle(int angle); | |
57 | int labelsAngle()const { return m_labelsAngle; } |
|
57 | int labelsAngle()const { return m_labelsAngle; } | |
58 |
|
58 | |||
59 | void setShadesBrush(const QBrush &brush); |
|
59 | void setShadesBrush(const QBrush &brush); | |
60 | void setShadesPen(const QPen &pen); |
|
60 | void setShadesPen(const QPen &pen); | |
61 |
|
61 | |||
62 | void setAxisPen(const QPen &pen); |
|
62 | void setAxisPen(const QPen &pen); | |
63 | void setGridPen(const QPen &pen); |
|
63 | void setGridPen(const QPen &pen); | |
64 |
|
64 | |||
65 | void setLabelsPen(const QPen &pen); |
|
65 | void setLabelsPen(const QPen &pen); | |
66 | void setLabelsBrush(const QBrush &brush); |
|
66 | void setLabelsBrush(const QBrush &brush); | |
67 | void setLabelsFont(const QFont &font); |
|
67 | void setLabelsFont(const QFont &font); | |
68 |
|
68 | |||
69 | inline QRectF geometry() const { return m_rect; } |
|
69 | inline QRectF geometry() const { return m_rect; } | |
70 | inline QVector<qreal> layout() { return m_layoutVector; } |
|
70 | inline QVector<qreal> layout() { return m_layoutVector; } | |
71 |
|
71 | |||
72 | public Q_SLOTS: |
|
72 | public Q_SLOTS: | |
73 | void handleAxisUpdated(); |
|
73 | void handleAxisUpdated(); | |
74 | void handleAxisCategoriesUpdated(); |
|
74 | void handleAxisCategoriesUpdated(); | |
75 | void handleRangeChanged(qreal min , qreal max,int tickCount); |
|
75 | void handleRangeChanged(qreal min , qreal max,int tickCount); | |
76 | void handleGeometryChanged(const QRectF &size); |
|
76 | void handleGeometryChanged(const QRectF &size); | |
77 |
|
77 | |||
78 |
|
78 | |||
79 | private: |
|
79 | private: | |
80 | inline bool isEmpty(); |
|
80 | inline bool isEmpty(); | |
81 | void createItems(int count); |
|
81 | void createItems(int count); | |
82 | void deleteItems(int count); |
|
82 | void deleteItems(int count); | |
83 |
|
83 | |||
84 | QVector<qreal> calculateLayout() const; |
|
84 | QVector<qreal> calculateLayout() const; | |
85 | void updateLayout(QVector<qreal> &layout); |
|
85 | void updateLayout(QVector<qreal> &layout); | |
86 | void setLayout(QVector<qreal> &layout); |
|
86 | void setLayout(QVector<qreal> &layout); | |
87 |
|
87 | |||
88 | bool createLabels(QStringList &labels,qreal min, qreal max,int ticks) const; |
|
88 | bool createLabels(QStringList &labels,qreal min, qreal max,int ticks) const; | |
89 | void axisSelected(); |
|
89 | void axisSelected(); | |
90 |
|
90 | |||
91 | private: |
|
91 | private: | |
92 | QChartAxis* m_chartAxis; |
|
92 | QChartAxis* m_chartAxis; | |
93 | AxisType m_type; |
|
93 | AxisType m_type; | |
94 | QRectF m_rect; |
|
94 | QRectF m_rect; | |
95 | int m_labelsAngle; |
|
95 | int m_labelsAngle; | |
96 | QScopedPointer<QGraphicsItemGroup> m_grid; |
|
96 | QScopedPointer<QGraphicsItemGroup> m_grid; | |
97 | QScopedPointer<QGraphicsItemGroup> m_shades; |
|
97 | QScopedPointer<QGraphicsItemGroup> m_shades; | |
98 | QScopedPointer<QGraphicsItemGroup> m_labels; |
|
98 | QScopedPointer<QGraphicsItemGroup> m_labels; | |
99 | QScopedPointer<QGraphicsItemGroup> m_axis; |
|
99 | QScopedPointer<QGraphicsItemGroup> m_axis; | |
100 | QVector<qreal> m_layoutVector; |
|
100 | QVector<qreal> m_layoutVector; | |
101 | qreal m_min; |
|
101 | qreal m_min; | |
102 | qreal m_max; |
|
102 | qreal m_max; | |
103 | int m_ticksCount; |
|
103 | int m_ticksCount; | |
104 |
|
104 | |||
105 | friend class AxisAnimation; |
|
105 | friend class AxisAnimation; | |
106 | friend class AxisItem; |
|
106 | friend class AxisItem; | |
107 |
|
107 | |||
108 | }; |
|
108 | }; | |
109 |
|
109 | |||
110 | class AxisItem: public QGraphicsLineItem |
|
110 | class AxisItem: public QGraphicsLineItem | |
111 | { |
|
111 | { | |
112 |
|
112 | |||
113 | public: |
|
113 | public: | |
114 | AxisItem(Axis *axis, QGraphicsItem *parent = 0) : QGraphicsLineItem(parent), m_axis(axis) {} |
|
114 | AxisItem(Axis *axis, QGraphicsItem *parent = 0) : QGraphicsLineItem(parent), m_axis(axis) {} | |
115 |
|
115 | |||
116 | protected: |
|
116 | protected: | |
117 | void mousePressEvent(QGraphicsSceneMouseEvent *event) |
|
117 | void mousePressEvent(QGraphicsSceneMouseEvent *event) | |
118 | { |
|
118 | { | |
119 | Q_UNUSED(event) |
|
119 | Q_UNUSED(event) | |
120 | m_axis->axisSelected(); |
|
120 | m_axis->axisSelected(); | |
121 | } |
|
121 | } | |
122 |
|
122 | |||
123 | QRectF boundingRect() const |
|
123 | QRectF boundingRect() const | |
124 | { |
|
124 | { | |
125 | return shape().boundingRect(); |
|
125 | return shape().boundingRect(); | |
126 | } |
|
126 | } | |
127 |
|
127 | |||
128 | QPainterPath shape() const |
|
128 | QPainterPath shape() const | |
129 | { |
|
129 | { | |
130 | QPainterPath path = QGraphicsLineItem::shape(); |
|
130 | QPainterPath path = QGraphicsLineItem::shape(); | |
131 | QRectF rect = path.boundingRect(); |
|
131 | QRectF rect = path.boundingRect(); | |
132 | path.addRect(rect.adjusted(0,0,m_axis->axisType()!=Axis::X_AXIS?8:0,m_axis->axisType()!=Axis::Y_AXIS?8:0)); |
|
132 | path.addRect(rect.adjusted(0,0,m_axis->axisType()!=Axis::X_AXIS?8:0,m_axis->axisType()!=Axis::Y_AXIS?8:0)); | |
133 | return path; |
|
133 | return path; | |
134 | } |
|
134 | } | |
135 |
|
135 | |||
136 | private: |
|
136 | private: | |
137 | Axis* m_axis; |
|
137 | Axis* m_axis; | |
138 |
|
138 | |||
139 | }; |
|
139 | }; | |
140 |
|
140 | |||
141 | QTCOMMERCIALCHART_END_NAMESPACE |
|
141 | QTCOMMERCIALCHART_END_NAMESPACE | |
142 |
|
142 | |||
143 | #endif /* AXISITEM_H_ */ |
|
143 | #endif /* AXISITEM_H_ */ |
@@ -1,108 +1,108 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef QCHARTAXIS_H |
|
21 | #ifndef QCHARTAXIS_H | |
22 |
#define QCHARTAXIS_H |
|
22 | #define QCHARTAXIS_H | |
23 |
|
23 | |||
24 | #include <qchartglobal.h> |
|
24 | #include <qchartglobal.h> | |
25 | #include <qchartaxiscategories.h> |
|
25 | #include <qchartaxiscategories.h> | |
26 | #include <QPen> |
|
26 | #include <QPen> | |
27 | #include <QFont> |
|
27 | #include <QFont> | |
28 |
|
28 | |||
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
30 |
|
30 | |||
31 | class QChartAxisPrivate; |
|
31 | class QChartAxisPrivate; | |
32 |
|
32 | |||
33 | class QTCOMMERCIALCHART_EXPORT QChartAxis : public QObject |
|
33 | class QTCOMMERCIALCHART_EXPORT QChartAxis : public QObject | |
34 | { |
|
34 | { | |
35 | Q_OBJECT |
|
35 | Q_OBJECT | |
36 | public: |
|
36 | public: | |
37 |
|
37 | |||
38 | QChartAxis(QObject *parent =0); |
|
38 | QChartAxis(QObject *parent =0); | |
39 | ~QChartAxis(); |
|
39 | ~QChartAxis(); | |
40 |
|
40 | |||
41 | //axis handling |
|
41 | //axis handling | |
42 | bool isAxisVisible() const; |
|
42 | bool isAxisVisible() const; | |
43 | void setAxisVisible(bool visible); |
|
43 | void setAxisVisible(bool visible); | |
44 | void setAxisPen(const QPen &pen); |
|
44 | void setAxisPen(const QPen &pen); | |
45 | QPen axisPen() const; |
|
45 | QPen axisPen() const; | |
46 |
|
46 | |||
47 | //grid handling |
|
47 | //grid handling | |
48 | bool isGridLineVisible() const; |
|
48 | bool isGridLineVisible() const; | |
49 | void setGridLineVisible(bool visible); |
|
49 | void setGridLineVisible(bool visible); | |
50 | void setGridLinePen(const QPen &pen); |
|
50 | void setGridLinePen(const QPen &pen); | |
51 | QPen gridLinePen() const; |
|
51 | QPen gridLinePen() const; | |
52 |
|
52 | |||
53 | //labels handling |
|
53 | //labels handling | |
54 | bool labelsVisible() const; |
|
54 | bool labelsVisible() const; | |
55 | void setLabelsVisible(bool visible); |
|
55 | void setLabelsVisible(bool visible); | |
56 | void setLabelsPen(const QPen &pen); |
|
56 | void setLabelsPen(const QPen &pen); | |
57 | QPen labelsPen() const; |
|
57 | QPen labelsPen() const; | |
58 | void setLabelsBrush(const QBrush &brush); |
|
58 | void setLabelsBrush(const QBrush &brush); | |
59 | QBrush labelsBrush() const; |
|
59 | QBrush labelsBrush() const; | |
60 | void setLabelsFont(const QFont &font); |
|
60 | void setLabelsFont(const QFont &font); | |
61 | QFont labelsFont() const; |
|
61 | QFont labelsFont() const; | |
62 | void setLabelsAngle(int angle); |
|
62 | void setLabelsAngle(int angle); | |
63 | int labelsAngle() const; |
|
63 | int labelsAngle() const; | |
64 |
|
64 | |||
65 | //shades handling |
|
65 | //shades handling | |
66 | bool shadesVisible() const; |
|
66 | bool shadesVisible() const; | |
67 | void setShadesVisible(bool visible); |
|
67 | void setShadesVisible(bool visible); | |
68 | void setShadesPen(const QPen &pen); |
|
68 | void setShadesPen(const QPen &pen); | |
69 | QPen shadesPen() const; |
|
69 | QPen shadesPen() const; | |
70 | void setShadesBrush(const QBrush &brush); |
|
70 | void setShadesBrush(const QBrush &brush); | |
71 | QBrush shadesBrush() const; |
|
71 | QBrush shadesBrush() const; | |
72 | void setShadesOpacity(qreal opacity); |
|
72 | void setShadesOpacity(qreal opacity); | |
73 | qreal shadesOpacity() const; |
|
73 | qreal shadesOpacity() const; | |
74 |
|
74 | |||
75 | //range handling |
|
75 | //range handling | |
76 | void setMin(qreal min); |
|
76 | void setMin(qreal min); | |
77 | qreal min() const; |
|
77 | qreal min() const; | |
78 | void setMax(qreal max); |
|
78 | void setMax(qreal max); | |
79 | qreal max() const; |
|
79 | qreal max() const; | |
80 | void setRange(qreal min, qreal max); |
|
80 | void setRange(qreal min, qreal max); | |
81 |
|
81 | |||
82 | //ticks handling |
|
82 | //ticks handling | |
83 | void setTicksCount(int count); |
|
83 | void setTicksCount(int count); | |
84 | int ticksCount() const; |
|
84 | int ticksCount() const; | |
85 |
|
85 | |||
86 | void setNiceNumbers(bool enable); |
|
86 | void setNiceNumbers(bool enable); | |
87 | bool niceNumbers() const; |
|
87 | bool niceNumbers() const; | |
88 |
|
88 | |||
89 | QChartAxisCategories* categories(); |
|
89 | QChartAxisCategories* categories(); | |
90 |
|
90 | |||
91 | void show(); |
|
91 | void show(); | |
92 | void hide(); |
|
92 | void hide(); | |
93 |
|
93 | |||
94 | Q_SIGNALS: |
|
94 | Q_SIGNALS: | |
95 | void minChanged(qreal min); |
|
95 | void minChanged(qreal min); | |
96 | void maxChanged(qreal max); |
|
96 | void maxChanged(qreal max); | |
97 | void rangeChanged(qreal min, qreal max); |
|
97 | void rangeChanged(qreal min, qreal max); | |
98 | void ticksCountChanged(int count); |
|
98 | void ticksCountChanged(int count); | |
99 |
|
99 | |||
100 | private: |
|
100 | private: | |
101 | QScopedPointer<QChartAxisPrivate> d_ptr; |
|
101 | QScopedPointer<QChartAxisPrivate> d_ptr; | |
102 | Q_DISABLE_COPY(QChartAxis); |
|
102 | Q_DISABLE_COPY(QChartAxis); | |
103 | friend class ChartDataSet; |
|
103 | friend class ChartDataSet; | |
104 | friend class Axis; |
|
104 | friend class Axis; | |
105 | }; |
|
105 | }; | |
106 |
|
106 | |||
107 | QTCOMMERCIALCHART_END_NAMESPACE |
|
107 | QTCOMMERCIALCHART_END_NAMESPACE | |
108 | #endif /* QCHARTAXIS_H_ */ |
|
108 | #endif /* QCHARTAXIS_H_ */ |
@@ -1,85 +1,85 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QCHARTAXIS_P_H |
|
30 | #ifndef QCHARTAXIS_P_H | |
31 |
#define QCHARTAXIS_P_H |
|
31 | #define QCHARTAXIS_P_H | |
32 |
|
32 | |||
33 | #include "qchartaxis.h" |
|
33 | #include "qchartaxis.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 | class QChartAxisPrivate : public QObject |
|
37 | class QChartAxisPrivate : public QObject | |
38 | { |
|
38 | { | |
39 | Q_OBJECT |
|
39 | Q_OBJECT | |
40 | public: |
|
40 | public: | |
41 | QChartAxisPrivate(QChartAxis *q); |
|
41 | QChartAxisPrivate(QChartAxis *q); | |
42 | ~QChartAxisPrivate(); |
|
42 | ~QChartAxisPrivate(); | |
43 |
|
43 | |||
44 | Q_SIGNALS: |
|
44 | Q_SIGNALS: | |
45 | void updated(); |
|
45 | void updated(); | |
46 | void changed(qreal min, qreal max, int tickCount,bool niceNumbers); |
|
46 | void changed(qreal min, qreal max, int tickCount,bool niceNumbers); | |
47 |
|
47 | |||
48 | public Q_SLOTS: |
|
48 | public Q_SLOTS: | |
49 | void handleAxisRangeChanged(qreal min, qreal max,int count); |
|
49 | void handleAxisRangeChanged(qreal min, qreal max,int count); | |
50 |
|
50 | |||
51 | private: |
|
51 | private: | |
52 | QChartAxis *q_ptr; |
|
52 | QChartAxis *q_ptr; | |
53 |
|
53 | |||
54 | bool m_axisVisible; |
|
54 | bool m_axisVisible; | |
55 | QPen m_axisPen; |
|
55 | QPen m_axisPen; | |
56 | QBrush m_axisBrush; |
|
56 | QBrush m_axisBrush; | |
57 |
|
57 | |||
58 | bool m_gridLineVisible; |
|
58 | bool m_gridLineVisible; | |
59 | QPen m_gridLinePen; |
|
59 | QPen m_gridLinePen; | |
60 |
|
60 | |||
61 | bool m_labelsVisible; |
|
61 | bool m_labelsVisible; | |
62 | QPen m_labelsPen; |
|
62 | QPen m_labelsPen; | |
63 | QBrush m_labelsBrush; |
|
63 | QBrush m_labelsBrush; | |
64 | QFont m_labelsFont; |
|
64 | QFont m_labelsFont; | |
65 | int m_labelsAngle; |
|
65 | int m_labelsAngle; | |
66 |
|
66 | |||
67 | bool m_shadesVisible; |
|
67 | bool m_shadesVisible; | |
68 | QPen m_shadesPen; |
|
68 | QPen m_shadesPen; | |
69 | QBrush m_shadesBrush; |
|
69 | QBrush m_shadesBrush; | |
70 | qreal m_shadesOpacity; |
|
70 | qreal m_shadesOpacity; | |
71 |
|
71 | |||
72 | qreal m_min; |
|
72 | qreal m_min; | |
73 | qreal m_max; |
|
73 | qreal m_max; | |
74 |
|
74 | |||
75 | int m_ticksCount; |
|
75 | int m_ticksCount; | |
76 | QChartAxisCategories m_category; |
|
76 | QChartAxisCategories m_category; | |
77 |
|
77 | |||
78 | bool m_niceNumbers; |
|
78 | bool m_niceNumbers; | |
79 |
|
79 | |||
80 | friend class QChartAxis; |
|
80 | friend class QChartAxis; | |
81 | }; |
|
81 | }; | |
82 |
|
82 | |||
83 | QTCOMMERCIALCHART_END_NAMESPACE |
|
83 | QTCOMMERCIALCHART_END_NAMESPACE | |
84 |
|
84 | |||
85 | #endif |
|
85 | #endif |
@@ -1,56 +1,56 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef QCHARTAXISCATEGORIES_H |
|
21 | #ifndef QCHARTAXISCATEGORIES_H | |
22 |
#define QCHARTAXISCATEGORIES_H |
|
22 | #define QCHARTAXISCATEGORIES_H | |
23 |
|
23 | |||
24 | #include <qchartglobal.h> |
|
24 | #include <qchartglobal.h> | |
25 | #include <qbarseries.h> |
|
25 | #include <qbarseries.h> | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class QChartAxisCategoriesPrivate; |
|
29 | class QChartAxisCategoriesPrivate; | |
30 |
|
30 | |||
31 | class QTCOMMERCIALCHART_EXPORT QChartAxisCategories : public QObject |
|
31 | class QTCOMMERCIALCHART_EXPORT QChartAxisCategories : public QObject | |
32 | { |
|
32 | { | |
33 | Q_OBJECT |
|
33 | Q_OBJECT | |
34 | private: |
|
34 | private: | |
35 | QChartAxisCategories(); |
|
35 | QChartAxisCategories(); | |
36 | public: |
|
36 | public: | |
37 | ~QChartAxisCategories(); |
|
37 | ~QChartAxisCategories(); | |
38 |
|
38 | |||
39 | void insert(const QBarCategories &category); |
|
39 | void insert(const QBarCategories &category); | |
40 | void insert(qreal value,QString label); |
|
40 | void insert(qreal value,QString label); | |
41 | void remove(qreal value); |
|
41 | void remove(qreal value); | |
42 | QList<qreal> values() const; |
|
42 | QList<qreal> values() const; | |
43 | QString label(qreal value) const; |
|
43 | QString label(qreal value) const; | |
44 | void clear(); |
|
44 | void clear(); | |
45 | int count(); |
|
45 | int count(); | |
46 |
|
46 | |||
47 | private: |
|
47 | private: | |
48 | QScopedPointer<QChartAxisCategoriesPrivate> d_ptr; |
|
48 | QScopedPointer<QChartAxisCategoriesPrivate> d_ptr; | |
49 | friend class QChartAxisPrivate; |
|
49 | friend class QChartAxisPrivate; | |
50 | friend class Axis; |
|
50 | friend class Axis; | |
51 | }; |
|
51 | }; | |
52 |
|
52 | |||
53 |
|
53 | |||
54 | QTCOMMERCIALCHART_END_NAMESPACE |
|
54 | QTCOMMERCIALCHART_END_NAMESPACE | |
55 |
|
55 | |||
56 | #endif /* QCHARTAXISCATEGORIES_H_ */ |
|
56 | #endif /* QCHARTAXISCATEGORIES_H_ */ |
@@ -1,56 +1,56 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QCHARTAXISCATEGORIES_P_H |
|
30 | #ifndef QCHARTAXISCATEGORIES_P_H | |
31 |
#define QCHARTAXISCATEGORIES_P_H |
|
31 | #define QCHARTAXISCATEGORIES_P_H | |
32 |
|
32 | |||
33 | #include "qchartaxiscategories.h" |
|
33 | #include "qchartaxiscategories.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 | class QChartAxisCategoriesPrivate : public QObject |
|
37 | class QChartAxisCategoriesPrivate : public QObject | |
38 | { |
|
38 | { | |
39 | Q_OBJECT |
|
39 | Q_OBJECT | |
40 | public: |
|
40 | public: | |
41 | QChartAxisCategoriesPrivate(QChartAxisCategories *q); |
|
41 | QChartAxisCategoriesPrivate(QChartAxisCategories *q); | |
42 | ~QChartAxisCategoriesPrivate(); |
|
42 | ~QChartAxisCategoriesPrivate(); | |
43 |
|
43 | |||
44 | Q_SIGNALS: |
|
44 | Q_SIGNALS: | |
45 | void updated(); |
|
45 | void updated(); | |
46 |
|
46 | |||
47 | private: |
|
47 | private: | |
48 | QChartAxisCategories *q_ptr; |
|
48 | QChartAxisCategories *q_ptr; | |
49 | QMap<qreal,QString> m_map; |
|
49 | QMap<qreal,QString> m_map; | |
50 | friend class QChartAxisCategories; |
|
50 | friend class QChartAxisCategories; | |
51 |
|
51 | |||
52 | }; |
|
52 | }; | |
53 |
|
53 | |||
54 | QTCOMMERCIALCHART_END_NAMESPACE |
|
54 | QTCOMMERCIALCHART_END_NAMESPACE | |
55 |
|
55 | |||
56 | #endif |
|
56 | #endif |
@@ -1,198 +1,198 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
|
21 | #include "barchartmodel_p.h" | |||
|
22 | #include "qbarset.h" | |||
21 | #include <limits.h> |
|
23 | #include <limits.h> | |
22 | #include <QVector> |
|
24 | #include <QVector> | |
23 | #include <QDebug> |
|
25 | #include <QDebug> | |
24 | #include "barchartmodel_p.h" |
|
|||
25 | #include "qbarset.h" |
|
|||
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | BarChartModel::BarChartModel(QStringList categories, QObject *parent) : QObject(parent), |
|
29 | BarChartModel::BarChartModel(QStringList categories, QObject *parent) : QObject(parent), | |
30 | m_category(categories) |
|
30 | m_category(categories) | |
31 | { |
|
31 | { | |
32 | } |
|
32 | } | |
33 |
|
33 | |||
34 | QStringList BarChartModel::category() |
|
34 | QStringList BarChartModel::category() | |
35 | { |
|
35 | { | |
36 | return m_category; |
|
36 | return m_category; | |
37 | } |
|
37 | } | |
38 |
|
38 | |||
39 | void BarChartModel::appendBarSet(QBarSet *set) |
|
39 | void BarChartModel::appendBarSet(QBarSet *set) | |
40 | { |
|
40 | { | |
41 | m_dataModel.append(set); |
|
41 | m_dataModel.append(set); | |
42 | } |
|
42 | } | |
43 |
|
43 | |||
44 | void BarChartModel::removeBarSet(QBarSet *set) |
|
44 | void BarChartModel::removeBarSet(QBarSet *set) | |
45 | { |
|
45 | { | |
46 | if (m_dataModel.contains(set)) { |
|
46 | if (m_dataModel.contains(set)) { | |
47 | m_dataModel.removeOne(set); |
|
47 | m_dataModel.removeOne(set); | |
48 | } |
|
48 | } | |
49 | } |
|
49 | } | |
50 |
|
50 | |||
51 | void BarChartModel::insertBarSet(int i, QBarSet *set) |
|
51 | void BarChartModel::insertBarSet(int i, QBarSet *set) | |
52 | { |
|
52 | { | |
53 | m_dataModel.insert(i, set); |
|
53 | m_dataModel.insert(i, set); | |
54 | } |
|
54 | } | |
55 |
|
55 | |||
56 | void BarChartModel::insertCategory(int i, QString category) |
|
56 | void BarChartModel::insertCategory(int i, QString category) | |
57 | { |
|
57 | { | |
58 | m_category.insert(i, category); |
|
58 | m_category.insert(i, category); | |
59 | } |
|
59 | } | |
60 |
|
60 | |||
61 | void BarChartModel::removeCategory(int i) |
|
61 | void BarChartModel::removeCategory(int i) | |
62 | { |
|
62 | { | |
63 | m_category.removeAt(i); |
|
63 | m_category.removeAt(i); | |
64 | } |
|
64 | } | |
65 |
|
65 | |||
66 | QBarSet* BarChartModel::barsetAt(int index) const |
|
66 | QBarSet* BarChartModel::barsetAt(int index) const | |
67 | { |
|
67 | { | |
68 | return m_dataModel.at(index); |
|
68 | return m_dataModel.at(index); | |
69 | } |
|
69 | } | |
70 |
|
70 | |||
71 | QList<QBarSet*> BarChartModel::barSets() const |
|
71 | QList<QBarSet*> BarChartModel::barSets() const | |
72 | { |
|
72 | { | |
73 | return m_dataModel; |
|
73 | return m_dataModel; | |
74 | } |
|
74 | } | |
75 |
|
75 | |||
76 | int BarChartModel::barsetCount() const |
|
76 | int BarChartModel::barsetCount() const | |
77 | { |
|
77 | { | |
78 | return m_dataModel.count(); |
|
78 | return m_dataModel.count(); | |
79 | } |
|
79 | } | |
80 |
|
80 | |||
81 | int BarChartModel::categoryCount() const |
|
81 | int BarChartModel::categoryCount() const | |
82 | { |
|
82 | { | |
83 | return m_category.count(); |
|
83 | return m_category.count(); | |
84 | } |
|
84 | } | |
85 |
|
85 | |||
86 | qreal BarChartModel::min() const |
|
86 | qreal BarChartModel::min() const | |
87 | { |
|
87 | { | |
88 | Q_ASSERT(m_dataModel.count() > 0); |
|
88 | Q_ASSERT(m_dataModel.count() > 0); | |
89 | // TODO: make min and max members and update them when data changes. |
|
89 | // TODO: make min and max members and update them when data changes. | |
90 | // This is slower since they are checked every time, even if data is same since previous call. |
|
90 | // This is slower since they are checked every time, even if data is same since previous call. | |
91 | qreal min = INT_MAX; |
|
91 | qreal min = INT_MAX; | |
92 |
|
92 | |||
93 | for (int i = 0; i < m_dataModel.count(); i++) { |
|
93 | for (int i = 0; i < m_dataModel.count(); i++) { | |
94 | int itemCount = m_dataModel.at(i)->count(); |
|
94 | int itemCount = m_dataModel.at(i)->count(); | |
95 | for (int j = 0; j < itemCount; j++) { |
|
95 | for (int j = 0; j < itemCount; j++) { | |
96 | qreal temp = m_dataModel.at(i)->valueAt(j); |
|
96 | qreal temp = m_dataModel.at(i)->valueAt(j); | |
97 | if (temp < min) |
|
97 | if (temp < min) | |
98 | min = temp; |
|
98 | min = temp; | |
99 | } |
|
99 | } | |
100 | } |
|
100 | } | |
101 | return min; |
|
101 | return min; | |
102 | } |
|
102 | } | |
103 |
|
103 | |||
104 | qreal BarChartModel::max() const |
|
104 | qreal BarChartModel::max() const | |
105 | { |
|
105 | { | |
106 | if (m_dataModel.count() == 0) return 0; |
|
106 | if (m_dataModel.count() == 0) return 0; | |
107 | // TODO: make min and max members and update them when data changes. |
|
107 | // TODO: make min and max members and update them when data changes. | |
108 | // This is slower since they are checked every time, even if data is same since previous call. |
|
108 | // This is slower since they are checked every time, even if data is same since previous call. | |
109 | qreal max = INT_MIN; |
|
109 | qreal max = INT_MIN; | |
110 |
|
110 | |||
111 | for (int i = 0; i < m_dataModel.count(); i++) { |
|
111 | for (int i = 0; i < m_dataModel.count(); i++) { | |
112 | int itemCount = m_dataModel.at(i)->count(); |
|
112 | int itemCount = m_dataModel.at(i)->count(); | |
113 | for (int j = 0; j < itemCount; j++) { |
|
113 | for (int j = 0; j < itemCount; j++) { | |
114 | qreal temp = m_dataModel.at(i)->valueAt(j); |
|
114 | qreal temp = m_dataModel.at(i)->valueAt(j); | |
115 | if (temp > max) |
|
115 | if (temp > max) | |
116 | max = temp; |
|
116 | max = temp; | |
117 | } |
|
117 | } | |
118 | } |
|
118 | } | |
119 |
|
119 | |||
120 | return max; |
|
120 | return max; | |
121 | } |
|
121 | } | |
122 |
|
122 | |||
123 | qreal BarChartModel::valueAt(int set, int category) const |
|
123 | qreal BarChartModel::valueAt(int set, int category) const | |
124 | { |
|
124 | { | |
125 | if ((set < 0) || (set >= m_dataModel.count())) { |
|
125 | if ((set < 0) || (set >= m_dataModel.count())) { | |
126 | // No set, no value. |
|
126 | // No set, no value. | |
127 | return 0; |
|
127 | return 0; | |
128 | } else if ((category < 0) || (category >= m_dataModel.at(set)->count())) { |
|
128 | } else if ((category < 0) || (category >= m_dataModel.at(set)->count())) { | |
129 | // No category, no value. |
|
129 | // No category, no value. | |
130 | return 0; |
|
130 | return 0; | |
131 | } |
|
131 | } | |
132 |
|
132 | |||
133 | return m_dataModel.at(set)->valueAt(category); |
|
133 | return m_dataModel.at(set)->valueAt(category); | |
134 | } |
|
134 | } | |
135 |
|
135 | |||
136 | qreal BarChartModel::percentageAt(int set, int category) const |
|
136 | qreal BarChartModel::percentageAt(int set, int category) const | |
137 | { |
|
137 | { | |
138 | if ((set < 0) || (set >= m_dataModel.count())) { |
|
138 | if ((set < 0) || (set >= m_dataModel.count())) { | |
139 | // No set, no value. |
|
139 | // No set, no value. | |
140 | return 0; |
|
140 | return 0; | |
141 | } else if ((category < 0) || (category >= m_dataModel.at(set)->count())) { |
|
141 | } else if ((category < 0) || (category >= m_dataModel.at(set)->count())) { | |
142 | // No category, no value. |
|
142 | // No category, no value. | |
143 | return 0; |
|
143 | return 0; | |
144 | } |
|
144 | } | |
145 |
|
145 | |||
146 | qreal value = m_dataModel.at(set)->valueAt(category); |
|
146 | qreal value = m_dataModel.at(set)->valueAt(category); | |
147 | qreal total = categorySum(category); |
|
147 | qreal total = categorySum(category); | |
148 | if ( qFuzzyCompare(total, 0) ) |
|
148 | if ( qFuzzyCompare(total, 0) ) | |
149 | return 0; |
|
149 | return 0; | |
150 |
|
150 | |||
151 | return value / total; |
|
151 | return value / total; | |
152 | } |
|
152 | } | |
153 |
|
153 | |||
154 | qreal BarChartModel::categorySum(int category) const |
|
154 | qreal BarChartModel::categorySum(int category) const | |
155 | { |
|
155 | { | |
156 | qreal sum(0); |
|
156 | qreal sum(0); | |
157 | int count = m_dataModel.count(); // Count sets |
|
157 | int count = m_dataModel.count(); // Count sets | |
158 |
|
158 | |||
159 | for (int set = 0; set < count; set++) { |
|
159 | for (int set = 0; set < count; set++) { | |
160 | if (category < m_dataModel.at(set)->count()) |
|
160 | if (category < m_dataModel.at(set)->count()) | |
161 | sum += m_dataModel.at(set)->valueAt(category); |
|
161 | sum += m_dataModel.at(set)->valueAt(category); | |
162 | } |
|
162 | } | |
163 | return sum; |
|
163 | return sum; | |
164 | } |
|
164 | } | |
165 |
|
165 | |||
166 | qreal BarChartModel::absoluteCategorySum(int category) const |
|
166 | qreal BarChartModel::absoluteCategorySum(int category) const | |
167 | { |
|
167 | { | |
168 | qreal sum(0); |
|
168 | qreal sum(0); | |
169 | int count = m_dataModel.count(); // Count sets |
|
169 | int count = m_dataModel.count(); // Count sets | |
170 |
|
170 | |||
171 | for (int set = 0; set < count; set++) { |
|
171 | for (int set = 0; set < count; set++) { | |
172 | if (category < m_dataModel.at(set)->count()) |
|
172 | if (category < m_dataModel.at(set)->count()) | |
173 | sum += qAbs(m_dataModel.at(set)->valueAt(category)); |
|
173 | sum += qAbs(m_dataModel.at(set)->valueAt(category)); | |
174 | } |
|
174 | } | |
175 | return sum; |
|
175 | return sum; | |
176 | } |
|
176 | } | |
177 |
|
177 | |||
178 | qreal BarChartModel::maxCategorySum() const |
|
178 | qreal BarChartModel::maxCategorySum() const | |
179 | { |
|
179 | { | |
180 | qreal max = INT_MIN; |
|
180 | qreal max = INT_MIN; | |
181 | int count = categoryCount(); |
|
181 | int count = categoryCount(); | |
182 |
|
182 | |||
183 | for (int col = 0; col < count; col++) { |
|
183 | for (int col = 0; col < count; col++) { | |
184 | qreal sum = categorySum(col); |
|
184 | qreal sum = categorySum(col); | |
185 | if (sum > max) |
|
185 | if (sum > max) | |
186 | max = sum; |
|
186 | max = sum; | |
187 | } |
|
187 | } | |
188 | return max; |
|
188 | return max; | |
189 | } |
|
189 | } | |
190 |
|
190 | |||
191 | QString BarChartModel::categoryName(int category) |
|
191 | QString BarChartModel::categoryName(int category) | |
192 | { |
|
192 | { | |
193 | return m_category.at(category); |
|
193 | return m_category.at(category); | |
194 | } |
|
194 | } | |
195 |
|
195 | |||
196 | #include "moc_barchartmodel_p.cpp" |
|
196 | #include "moc_barchartmodel_p.cpp" | |
197 |
|
197 | |||
198 |
QTCOMMERCIALCHART_END_NAMESPACE |
|
198 | QTCOMMERCIALCHART_END_NAMESPACE No newline at end of file |
@@ -1,52 +1,52 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QPERCENTBARSERIES_P_H |
|
30 | #ifndef QPERCENTBARSERIES_P_H | |
31 |
#define QPERCENTBARSERIES_P_H |
|
31 | #define QPERCENTBARSERIES_P_H | |
32 |
|
32 | |||
33 | #include "qbarseries_p.h" |
|
33 | #include "qbarseries_p.h" | |
34 | #include "domain_p.h" |
|
34 | #include "domain_p.h" | |
35 |
|
35 | |||
36 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
36 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
37 |
|
37 | |||
38 |
|
38 | |||
39 | class QPercentBarSeriesPrivate: public QBarSeriesPrivate |
|
39 | class QPercentBarSeriesPrivate: public QBarSeriesPrivate | |
40 | { |
|
40 | { | |
41 | public: |
|
41 | public: | |
42 | QPercentBarSeriesPrivate(QBarCategories categories,QPercentBarSeries* q); |
|
42 | QPercentBarSeriesPrivate(QBarCategories categories,QPercentBarSeries* q); | |
43 | void scaleDomain(Domain& domain); |
|
43 | void scaleDomain(Domain& domain); | |
44 | Chart* createGraphics(ChartPresenter* presenter); |
|
44 | Chart* createGraphics(ChartPresenter* presenter); | |
45 |
|
45 | |||
46 | private: |
|
46 | private: | |
47 | Q_DECLARE_PUBLIC(QPercentBarSeries) |
|
47 | Q_DECLARE_PUBLIC(QPercentBarSeries) | |
48 | }; |
|
48 | }; | |
49 |
|
49 | |||
50 | QTCOMMERCIALCHART_END_NAMESPACE |
|
50 | QTCOMMERCIALCHART_END_NAMESPACE | |
51 |
|
51 | |||
52 | #endif |
|
52 | #endif |
@@ -1,52 +1,52 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QSTACKEDBARSERIES_P_H |
|
30 | #ifndef QSTACKEDBARSERIES_P_H | |
31 |
#define QSTACKEDBARSERIES_P_H |
|
31 | #define QSTACKEDBARSERIES_P_H | |
32 |
|
32 | |||
33 | #include "qbarseries_p.h" |
|
33 | #include "qbarseries_p.h" | |
34 | #include "domain_p.h" |
|
34 | #include "domain_p.h" | |
35 |
|
35 | |||
36 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
36 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
37 |
|
37 | |||
38 |
|
38 | |||
39 | class QStackedBarSeriesPrivate: public QBarSeriesPrivate |
|
39 | class QStackedBarSeriesPrivate: public QBarSeriesPrivate | |
40 | { |
|
40 | { | |
41 | public: |
|
41 | public: | |
42 | QStackedBarSeriesPrivate(QBarCategories categories,QStackedBarSeries* q); |
|
42 | QStackedBarSeriesPrivate(QBarCategories categories,QStackedBarSeries* q); | |
43 | Chart* createGraphics(ChartPresenter* presenter); |
|
43 | Chart* createGraphics(ChartPresenter* presenter); | |
44 | void scaleDomain(Domain& domain); |
|
44 | void scaleDomain(Domain& domain); | |
45 |
|
45 | |||
46 | private: |
|
46 | private: | |
47 | Q_DECLARE_PUBLIC(QStackedBarSeries) |
|
47 | Q_DECLARE_PUBLIC(QStackedBarSeries) | |
48 | }; |
|
48 | }; | |
49 |
|
49 | |||
50 | QTCOMMERCIALCHART_END_NAMESPACE |
|
50 | QTCOMMERCIALCHART_END_NAMESPACE | |
51 |
|
51 | |||
52 | #endif |
|
52 | #endif |
@@ -1,55 +1,55 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHART_H |
|
21 | #ifndef CHART_H | |
22 |
#define CHART_H |
|
22 | #define CHART_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include <QRect> |
|
25 | #include <QRect> | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class ChartAnimator; |
|
29 | class ChartAnimator; | |
30 | class ChartPresenter; |
|
30 | class ChartPresenter; | |
31 |
|
31 | |||
32 | class Chart: public QObject |
|
32 | class Chart: public QObject | |
33 | { |
|
33 | { | |
34 | Q_OBJECT |
|
34 | Q_OBJECT | |
35 | public: |
|
35 | public: | |
36 | explicit Chart(ChartPresenter *presenter); |
|
36 | explicit Chart(ChartPresenter *presenter); | |
37 |
|
37 | |||
38 | public Q_SLOTS: |
|
38 | public Q_SLOTS: | |
39 | virtual void handleGeometryChanged(const QRectF& rect); |
|
39 | virtual void handleGeometryChanged(const QRectF& rect); | |
40 | virtual void handleDomainChanged(qreal minX,qreal maxX,qreal minY,qreal maxY); |
|
40 | virtual void handleDomainChanged(qreal minX,qreal maxX,qreal minY,qreal maxY); | |
41 | virtual void rangeXChanged(qreal min, qreal max, int tickXCount); |
|
41 | virtual void rangeXChanged(qreal min, qreal max, int tickXCount); | |
42 | virtual void rangeYChanged(qreal min, qreal max, int tickYCount); |
|
42 | virtual void rangeYChanged(qreal min, qreal max, int tickYCount); | |
43 |
|
43 | |||
44 | void setAnimator(ChartAnimator* animator); |
|
44 | void setAnimator(ChartAnimator* animator); | |
45 | ChartAnimator* animator() const; |
|
45 | ChartAnimator* animator() const; | |
46 | ChartPresenter* presenter() const; |
|
46 | ChartPresenter* presenter() const; | |
47 |
|
47 | |||
48 | private: |
|
48 | private: | |
49 | ChartAnimator* m_animator; |
|
49 | ChartAnimator* m_animator; | |
50 | ChartPresenter* m_presenter; |
|
50 | ChartPresenter* m_presenter; | |
51 | }; |
|
51 | }; | |
52 |
|
52 | |||
53 | QTCOMMERCIALCHART_END_NAMESPACE |
|
53 | QTCOMMERCIALCHART_END_NAMESPACE | |
54 |
|
54 | |||
55 | #endif |
|
55 | #endif |
@@ -1,55 +1,55 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTBACKGROUND_H |
|
21 | #ifndef CHARTBACKGROUND_H | |
22 |
#define CHARTBACKGROUND_H |
|
22 | #define CHARTBACKGROUND_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include <QGraphicsRectItem> |
|
25 | #include <QGraphicsRectItem> | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class ChartBackground: public QGraphicsRectItem |
|
29 | class ChartBackground: public QGraphicsRectItem | |
30 | { |
|
30 | { | |
31 | public: |
|
31 | public: | |
32 | ChartBackground(QGraphicsItem *parent =0); |
|
32 | ChartBackground(QGraphicsItem *parent =0); | |
33 | ~ChartBackground(); |
|
33 | ~ChartBackground(); | |
34 |
|
34 | |||
35 | void setDimeter(int dimater); |
|
35 | void setDimeter(int dimater); | |
36 | int diameter() const; |
|
36 | int diameter() const; | |
37 |
|
37 | |||
38 |
|
38 | |||
39 | protected: |
|
39 | protected: | |
40 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); |
|
40 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); | |
41 |
|
41 | |||
42 |
|
42 | |||
43 | private: |
|
43 | private: | |
44 | int roundness(qreal size) const; |
|
44 | int roundness(qreal size) const; | |
45 |
|
45 | |||
46 | private: |
|
46 | private: | |
47 | int m_diameter; |
|
47 | int m_diameter; | |
48 |
|
48 | |||
49 | }; |
|
49 | }; | |
50 |
|
50 | |||
51 | QTCOMMERCIALCHART_END_NAMESPACE |
|
51 | QTCOMMERCIALCHART_END_NAMESPACE | |
52 |
|
52 | |||
53 | #endif /* CHARTBACKGROUND_H_ */ |
|
53 | #endif /* CHARTBACKGROUND_H_ */ | |
54 |
|
54 | |||
55 |
|
55 |
@@ -1,73 +1,73 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTCONFIG_H |
|
21 | #ifndef CHARTCONFIG_H | |
22 |
#define CHARTCONFIG_H |
|
22 | #define CHARTCONFIG_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #ifdef Q_CC_MSVC |
|
25 | #ifdef Q_CC_MSVC | |
26 | // There is a problem with jom.exe currently. It does not seem to understand QMAKE_EXTRA_TARGETS properly. |
|
26 | // There is a problem with jom.exe currently. It does not seem to understand QMAKE_EXTRA_TARGETS properly. | |
27 | // This is the case at least with shadow builds. |
|
27 | // This is the case at least with shadow builds. | |
28 | // http://qt-project.org/wiki/jom |
|
28 | // http://qt-project.org/wiki/jom | |
29 | const char *buildTime = __DATE__; |
|
29 | const char *buildTime = __DATE__; | |
30 | const char *gitHead = "unknown"; |
|
30 | const char *gitHead = "unknown"; | |
31 | #else |
|
31 | #else | |
32 | #include "qchartversion_p.h" |
|
32 | #include "qchartversion_p.h" | |
33 | #endif |
|
33 | #endif | |
34 |
|
34 | |||
35 |
|
35 | |||
36 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
36 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
37 |
|
37 | |||
38 | class ChartConfig { |
|
38 | class ChartConfig { | |
39 |
|
39 | |||
40 | private: |
|
40 | private: | |
41 | ChartConfig(){ |
|
41 | ChartConfig(){ | |
42 | #ifndef QT_NO_DEBUG |
|
42 | #ifndef QT_NO_DEBUG | |
43 | qDebug()<<"buildTime" << buildTime; |
|
43 | qDebug()<<"buildTime" << buildTime; | |
44 | qDebug()<<"gitHead" << gitHead; |
|
44 | qDebug()<<"gitHead" << gitHead; | |
45 | #endif |
|
45 | #endif | |
46 | m_instance = this; |
|
46 | m_instance = this; | |
47 | } |
|
47 | } | |
48 | public: |
|
48 | public: | |
49 | static ChartConfig* instance(){ |
|
49 | static ChartConfig* instance(){ | |
50 | if(!m_instance){ |
|
50 | if(!m_instance){ | |
51 | m_instance= new ChartConfig(); |
|
51 | m_instance= new ChartConfig(); | |
52 | } |
|
52 | } | |
53 | return m_instance; |
|
53 | return m_instance; | |
54 | } |
|
54 | } | |
55 |
|
55 | |||
56 | QString compilationTime(){ |
|
56 | QString compilationTime(){ | |
57 | return buildTime; |
|
57 | return buildTime; | |
58 | } |
|
58 | } | |
59 |
|
59 | |||
60 | QString compilationHead(){ |
|
60 | QString compilationHead(){ | |
61 | return gitHead; |
|
61 | return gitHead; | |
62 | } |
|
62 | } | |
63 |
|
63 | |||
64 | private: |
|
64 | private: | |
65 | static ChartConfig* m_instance; |
|
65 | static ChartConfig* m_instance; | |
66 | }; |
|
66 | }; | |
67 |
|
67 | |||
68 |
|
68 | |||
69 | ChartConfig* ChartConfig::m_instance=0; |
|
69 | ChartConfig* ChartConfig::m_instance=0; | |
70 |
|
70 | |||
71 | QTCOMMERCIALCHART_END_NAMESPACE |
|
71 | QTCOMMERCIALCHART_END_NAMESPACE | |
72 |
|
72 | |||
73 | #endif |
|
73 | #endif |
@@ -1,90 +1,90 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef CHARTDATASET_P_H |
|
30 | #ifndef CHARTDATASET_P_H | |
31 |
#define CHARTDATASET_P_H |
|
31 | #define CHARTDATASET_P_H | |
32 |
|
32 | |||
33 | #include "qseries.h" |
|
33 | #include "qseries.h" | |
34 | #include "domain_p.h" |
|
34 | #include "domain_p.h" | |
35 | #include <QVector> |
|
35 | #include <QVector> | |
36 |
|
36 | |||
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
38 |
|
38 | |||
39 | class QChartAxis; |
|
39 | class QChartAxis; | |
40 | class QBarSeries; |
|
40 | class QBarSeries; | |
41 |
|
41 | |||
42 | class ChartDataSet : public QObject |
|
42 | class ChartDataSet : public QObject | |
43 | { |
|
43 | { | |
44 | Q_OBJECT |
|
44 | Q_OBJECT | |
45 | public: |
|
45 | public: | |
46 | ChartDataSet(QObject* parent=0); |
|
46 | ChartDataSet(QObject* parent=0); | |
47 | virtual ~ChartDataSet(); |
|
47 | virtual ~ChartDataSet(); | |
48 |
|
48 | |||
49 | void addSeries(QSeries* series,QChartAxis *axisY = 0); |
|
49 | void addSeries(QSeries* series,QChartAxis *axisY = 0); | |
50 | void removeSeries(QSeries* series); |
|
50 | void removeSeries(QSeries* series); | |
51 | void removeAllSeries(); |
|
51 | void removeAllSeries(); | |
52 |
|
52 | |||
53 | void zoomInDomain(const QRectF& rect, const QSizeF& size); |
|
53 | void zoomInDomain(const QRectF& rect, const QSizeF& size); | |
54 | void zoomOutDomain(const QRectF& rect, const QSizeF& size); |
|
54 | void zoomOutDomain(const QRectF& rect, const QSizeF& size); | |
55 | void scrollDomain(int dx,int dy,const QSizeF& size); |
|
55 | void scrollDomain(int dx,int dy,const QSizeF& size); | |
56 |
|
56 | |||
57 | int seriesCount(QSeries::QSeriesType type); |
|
57 | int seriesCount(QSeries::QSeriesType type); | |
58 | int seriesIndex(QSeries *series); |
|
58 | int seriesIndex(QSeries *series); | |
59 |
|
59 | |||
60 | Domain* domain(QSeries* series) const; |
|
60 | Domain* domain(QSeries* series) const; | |
61 | Domain* domain(QChartAxis* axis) const; |
|
61 | Domain* domain(QChartAxis* axis) const; | |
62 |
|
62 | |||
63 | QChartAxis* axisX() const { return m_axisX; } |
|
63 | QChartAxis* axisX() const { return m_axisX; } | |
64 | QChartAxis* axisY(QSeries* series = 0) const; |
|
64 | QChartAxis* axisY(QSeries* series = 0) const; | |
65 |
|
65 | |||
66 | Q_SIGNALS: |
|
66 | Q_SIGNALS: | |
67 | void seriesAdded(QSeries* series,Domain* domain); |
|
67 | void seriesAdded(QSeries* series,Domain* domain); | |
68 | void seriesRemoved(QSeries* series); |
|
68 | void seriesRemoved(QSeries* series); | |
69 | void axisAdded(QChartAxis* axis,Domain* domain); |
|
69 | void axisAdded(QChartAxis* axis,Domain* domain); | |
70 | void axisRemoved(QChartAxis* axis); |
|
70 | void axisRemoved(QChartAxis* axis); | |
71 |
|
71 | |||
72 | private: |
|
72 | private: | |
73 | QStringList createLabels(QChartAxis* axis,qreal min, qreal max); |
|
73 | QStringList createLabels(QChartAxis* axis,qreal min, qreal max); | |
74 | void calculateDomain(QSeries* series,Domain* domain); |
|
74 | void calculateDomain(QSeries* series,Domain* domain); | |
75 | void setupCategories(QBarSeries* series); |
|
75 | void setupCategories(QBarSeries* series); | |
76 |
|
76 | |||
77 | private: |
|
77 | private: | |
78 | QMap<QSeries*, QChartAxis*> m_seriesAxisMap; |
|
78 | QMap<QSeries*, QChartAxis*> m_seriesAxisMap; | |
79 | QMap<QChartAxis*, Domain*> m_axisDomainMap; |
|
79 | QMap<QChartAxis*, Domain*> m_axisDomainMap; | |
80 | QMap<int,QSeries*> m_indexSeriesMap; |
|
80 | QMap<int,QSeries*> m_indexSeriesMap; | |
81 | QChartAxis* m_axisX; |
|
81 | QChartAxis* m_axisX; | |
82 | QChartAxis* m_axisY; |
|
82 | QChartAxis* m_axisY; | |
83 |
|
83 | |||
84 | int m_domainIndex; |
|
84 | int m_domainIndex; | |
85 | bool m_axisXInitialized; |
|
85 | bool m_axisXInitialized; | |
86 | }; |
|
86 | }; | |
87 |
|
87 | |||
88 | QTCOMMERCIALCHART_END_NAMESPACE |
|
88 | QTCOMMERCIALCHART_END_NAMESPACE | |
89 |
|
89 | |||
90 | #endif /* CHARTENGINE_P_H_ */ |
|
90 | #endif /* CHARTENGINE_P_H_ */ |
@@ -1,39 +1,39 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTITEM_H |
|
21 | #ifndef CHARTITEM_H | |
22 |
#define CHARTITEM_H |
|
22 | #define CHARTITEM_H | |
23 |
|
23 | |||
24 | #include "chart_p.h" |
|
24 | #include "chart_p.h" | |
25 | #include "chartpresenter_p.h" |
|
25 | #include "chartpresenter_p.h" | |
26 | #include <QGraphicsItem> |
|
26 | #include <QGraphicsItem> | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class ChartItem : public QGraphicsItem, public Chart |
|
30 | class ChartItem : public QGraphicsItem, public Chart | |
31 | { |
|
31 | { | |
32 | enum ChartItemTypes{ AXIS_ITEM = UserType + 1, XYLINE_ITEM }; |
|
32 | enum ChartItemTypes{ AXIS_ITEM = UserType + 1, XYLINE_ITEM }; | |
33 | public: |
|
33 | public: | |
34 | ChartItem(ChartPresenter *presenter) : QGraphicsItem(presenter ? presenter->rootItem() : 0), Chart(presenter) {} |
|
34 | ChartItem(ChartPresenter *presenter) : QGraphicsItem(presenter ? presenter->rootItem() : 0), Chart(presenter) {} | |
35 | }; |
|
35 | }; | |
36 |
|
36 | |||
37 | QTCOMMERCIALCHART_END_NAMESPACE |
|
37 | QTCOMMERCIALCHART_END_NAMESPACE | |
38 |
|
38 | |||
39 | #endif /* CHARTITEM_H_ */ |
|
39 | #endif /* CHARTITEM_H_ */ |
@@ -1,402 +1,401 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | #include "chartpresenter_p.h" | ||
21 | #include "qchart.h" |
|
21 | #include "qchart.h" | |
22 | #include "qchart_p.h" |
|
22 | #include "qchart_p.h" | |
23 | #include "qchartaxis.h" |
|
23 | #include "qchartaxis.h" | |
24 | #include "chartpresenter_p.h" |
|
|||
25 | #include "chartdataset_p.h" |
|
24 | #include "chartdataset_p.h" | |
26 | #include "charttheme_p.h" |
|
25 | #include "charttheme_p.h" | |
27 | #include "chartanimator_p.h" |
|
26 | #include "chartanimator_p.h" | |
28 | #include "qseries_p.h" |
|
27 | #include "qseries_p.h" | |
29 | #include "qareaseries.h" |
|
28 | #include "qareaseries.h" | |
30 | #include "axis_p.h" |
|
29 | #include "axis_p.h" | |
31 | #include "areachartitem_p.h" |
|
30 | #include "areachartitem_p.h" | |
32 |
|
31 | |||
33 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
32 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
34 |
|
33 | |||
35 | ChartPresenter::ChartPresenter(QChart* chart,ChartDataSet* dataset):QObject(chart), |
|
34 | ChartPresenter::ChartPresenter(QChart* chart,ChartDataSet* dataset):QObject(chart), | |
36 |
|
|
35 | m_chart(chart), | |
37 |
|
|
36 | m_animator(0), | |
38 |
|
|
37 | m_dataset(dataset), | |
39 |
|
|
38 | m_chartTheme(0), | |
40 |
|
|
39 | m_chartRect(QRectF(QPoint(0,0),m_chart->size())), | |
41 |
|
|
40 | m_options(QChart::NoAnimation), | |
42 |
|
|
41 | m_minLeftMargin(0), | |
43 |
|
|
42 | m_minBottomMargin(0), | |
44 |
|
|
43 | m_backgroundItem(0), | |
45 |
|
|
44 | m_titleItem(0), | |
46 |
|
|
45 | m_marginBig(60), | |
47 |
|
|
46 | m_marginSmall(20), | |
48 |
|
|
47 | m_marginTiny(10), | |
49 |
|
|
48 | m_chartMargins(QRect(m_marginBig,m_marginBig,0,0)) | |
50 | { |
|
49 | { | |
51 | } |
|
50 | } | |
52 |
|
51 | |||
53 | ChartPresenter::~ChartPresenter() |
|
52 | ChartPresenter::~ChartPresenter() | |
54 | { |
|
53 | { | |
55 |
|
|
54 | delete m_chartTheme; | |
56 | } |
|
55 | } | |
57 |
|
56 | |||
58 | void ChartPresenter::setGeometry(const QRectF& rect) |
|
57 | void ChartPresenter::setGeometry(const QRectF& rect) | |
59 | { |
|
58 | { | |
60 | m_rect = rect; |
|
59 | m_rect = rect; | |
61 | Q_ASSERT(m_rect.isValid()); |
|
60 | Q_ASSERT(m_rect.isValid()); | |
62 | updateLayout(); |
|
61 | updateLayout(); | |
63 | } |
|
62 | } | |
64 |
|
63 | |||
65 | void ChartPresenter::setMinimumMarginWidth(Axis* axis, qreal width) |
|
64 | void ChartPresenter::setMinimumMarginWidth(Axis* axis, qreal width) | |
66 | { |
|
65 | { | |
67 | switch(axis->axisType()){ |
|
66 | switch(axis->axisType()){ | |
68 |
|
|
67 | case Axis::X_AXIS: | |
69 |
|
|
68 | { | |
70 |
|
|
69 | if(width>m_chartRect.width()+ m_chartMargins.left()) { | |
71 |
|
|
70 | m_minLeftMargin= width - m_chartRect.width(); | |
72 |
|
|
71 | updateLayout(); | |
73 | } |
|
|||
74 | break; |
|
|||
75 | } |
|
72 | } | |
76 | case Axis::Y_AXIS: |
|
73 | break; | |
77 | { |
|
74 | } | |
|
75 | case Axis::Y_AXIS: | |||
|
76 | { | |||
78 |
|
77 | |||
79 |
|
|
78 | if(m_minLeftMargin!=width){ | |
80 |
|
|
79 | m_minLeftMargin= width; | |
81 |
|
|
80 | updateLayout(); | |
82 | } |
|
|||
83 | break; |
|
|||
84 | } |
|
81 | } | |
|
82 | break; | |||
|
83 | } | |||
85 |
|
84 | |||
86 | } |
|
85 | } | |
87 | } |
|
86 | } | |
88 |
|
87 | |||
89 | void ChartPresenter::setMinimumMarginHeight(Axis* axis, qreal height) |
|
88 | void ChartPresenter::setMinimumMarginHeight(Axis* axis, qreal height) | |
90 | { |
|
89 | { | |
91 | switch(axis->axisType()){ |
|
90 | switch(axis->axisType()){ | |
92 |
|
|
91 | case Axis::X_AXIS: | |
93 |
|
|
92 | { | |
94 |
|
|
93 | if(m_minBottomMargin!=height) { | |
95 |
|
|
94 | m_minBottomMargin= height; | |
96 |
|
|
95 | updateLayout(); | |
97 | } |
|
|||
98 | break; |
|
|||
99 | } |
|
96 | } | |
100 | case Axis::Y_AXIS: |
|
97 | break; | |
101 | { |
|
98 | } | |
|
99 | case Axis::Y_AXIS: | |||
|
100 | { | |||
102 |
|
101 | |||
103 |
|
|
102 | if(height>m_chartMargins.bottom()+m_chartRect.height()){ | |
104 |
|
|
103 | m_minBottomMargin= height - m_chartRect.height(); | |
105 |
|
|
104 | updateLayout(); | |
106 | } |
|
|||
107 | break; |
|
|||
108 | } |
|
105 | } | |
|
106 | break; | |||
|
107 | } | |||
109 |
|
108 | |||
110 | } |
|
109 | } | |
111 | } |
|
110 | } | |
112 |
|
111 | |||
113 | void ChartPresenter::handleAxisAdded(QChartAxis* axis,Domain* domain) |
|
112 | void ChartPresenter::handleAxisAdded(QChartAxis* axis,Domain* domain) | |
114 | { |
|
113 | { | |
115 | Axis* item = new Axis(axis,this,axis==m_dataset->axisX()?Axis::X_AXIS : Axis::Y_AXIS); |
|
114 | Axis* item = new Axis(axis,this,axis==m_dataset->axisX()?Axis::X_AXIS : Axis::Y_AXIS); | |
116 |
|
115 | |||
117 | if(m_options.testFlag(QChart::GridAxisAnimations)){ |
|
116 | if(m_options.testFlag(QChart::GridAxisAnimations)){ | |
118 | m_animator->addAnimation(item); |
|
117 | m_animator->addAnimation(item); | |
119 | } |
|
118 | } | |
120 |
|
119 | |||
121 | if(axis==m_dataset->axisX()){ |
|
120 | if(axis==m_dataset->axisX()){ | |
122 | m_chartTheme->decorate(axis,true); |
|
121 | m_chartTheme->decorate(axis,true); | |
123 | QObject::connect(domain,SIGNAL(rangeXChanged(qreal,qreal,int)),item,SLOT(handleRangeChanged(qreal,qreal,int))); |
|
122 | QObject::connect(domain,SIGNAL(rangeXChanged(qreal,qreal,int)),item,SLOT(handleRangeChanged(qreal,qreal,int))); | |
124 | //initialize |
|
123 | //initialize | |
125 | item->handleRangeChanged(domain->minX(),domain->maxX(),domain->tickXCount()); |
|
124 | item->handleRangeChanged(domain->minX(),domain->maxX(),domain->tickXCount()); | |
126 |
|
125 | |||
127 | } |
|
126 | } | |
128 | else{ |
|
127 | else{ | |
129 | m_chartTheme->decorate(axis,false); |
|
128 | m_chartTheme->decorate(axis,false); | |
130 | QObject::connect(domain,SIGNAL(rangeYChanged(qreal,qreal,int)),item,SLOT(handleRangeChanged(qreal,qreal,int))); |
|
129 | QObject::connect(domain,SIGNAL(rangeYChanged(qreal,qreal,int)),item,SLOT(handleRangeChanged(qreal,qreal,int))); | |
131 | //initialize |
|
130 | //initialize | |
132 | item->handleRangeChanged(domain->minY(),domain->maxY(),domain->tickYCount()); |
|
131 | item->handleRangeChanged(domain->minY(),domain->maxY(),domain->tickYCount()); | |
133 | } |
|
132 | } | |
134 |
|
133 | |||
135 | QObject::connect(this,SIGNAL(geometryChanged(QRectF)),item,SLOT(handleGeometryChanged(QRectF))); |
|
134 | QObject::connect(this,SIGNAL(geometryChanged(QRectF)),item,SLOT(handleGeometryChanged(QRectF))); | |
136 | //initialize |
|
135 | //initialize | |
137 | item->handleGeometryChanged(m_chartRect); |
|
136 | item->handleGeometryChanged(m_chartRect); | |
138 | m_axisItems.insert(axis, item); |
|
137 | m_axisItems.insert(axis, item); | |
139 | } |
|
138 | } | |
140 |
|
139 | |||
141 | void ChartPresenter::handleAxisRemoved(QChartAxis* axis) |
|
140 | void ChartPresenter::handleAxisRemoved(QChartAxis* axis) | |
142 | { |
|
141 | { | |
143 | Axis* item = m_axisItems.take(axis); |
|
142 | Axis* item = m_axisItems.take(axis); | |
144 | Q_ASSERT(item); |
|
143 | Q_ASSERT(item); | |
145 | if(m_animator) m_animator->removeAnimation(item); |
|
144 | if(m_animator) m_animator->removeAnimation(item); | |
146 | delete item; |
|
145 | delete item; | |
147 | } |
|
146 | } | |
148 |
|
147 | |||
149 |
|
148 | |||
150 | void ChartPresenter::handleSeriesAdded(QSeries* series,Domain* domain) |
|
149 | void ChartPresenter::handleSeriesAdded(QSeries* series,Domain* domain) | |
151 | { |
|
150 | { | |
152 |
|
|
151 | Chart *item = series->d_ptr->createGraphics(this); | |
153 |
|
|
152 | Q_ASSERT(item); | |
154 |
|
|
153 | QObject::connect(this,SIGNAL(geometryChanged(QRectF)),item,SLOT(handleGeometryChanged(QRectF))); | |
155 |
|
|
154 | QObject::connect(domain,SIGNAL(domainChanged(qreal,qreal,qreal,qreal)),item,SLOT(handleDomainChanged(qreal,qreal,qreal,qreal))); | |
156 |
|
|
155 | //initialize | |
157 |
|
|
156 | item->handleDomainChanged(domain->minX(),domain->maxX(),domain->minY(),domain->maxY()); | |
158 |
|
|
157 | if(m_chartRect.isValid()) item->handleGeometryChanged(m_chartRect); | |
159 |
|
|
158 | m_chartItems.insert(series,item); | |
160 | } |
|
159 | } | |
161 |
|
160 | |||
162 | void ChartPresenter::handleSeriesRemoved(QSeries* series) |
|
161 | void ChartPresenter::handleSeriesRemoved(QSeries* series) | |
163 | { |
|
162 | { | |
164 | Chart* item = m_chartItems.take(series); |
|
163 | Chart* item = m_chartItems.take(series); | |
165 | Q_ASSERT(item); |
|
164 | Q_ASSERT(item); | |
166 | if(m_animator) { |
|
165 | if(m_animator) { | |
167 | //small hack to handle area animations |
|
166 | //small hack to handle area animations | |
168 | if(series->type()==QSeries::SeriesTypeArea){ |
|
167 | if(series->type()==QSeries::SeriesTypeArea){ | |
169 |
|
|
168 | QAreaSeries* areaSeries = static_cast<QAreaSeries*>(series); | |
170 |
|
|
169 | AreaChartItem* area = static_cast<AreaChartItem*>(item); | |
171 |
|
|
170 | m_animator->removeAnimation(area->upperLineItem()); | |
172 |
|
|
171 | if(areaSeries->lowerSeries()) m_animator->removeAnimation(area->lowerLineItem()); | |
173 | }else |
|
172 | }else | |
174 | m_animator->removeAnimation(item); |
|
173 | m_animator->removeAnimation(item); | |
175 | } |
|
174 | } | |
176 | delete item; |
|
175 | delete item; | |
177 | } |
|
176 | } | |
178 |
|
177 | |||
179 | void ChartPresenter::setTheme(QChart::ChartTheme theme,bool force) |
|
178 | void ChartPresenter::setTheme(QChart::ChartTheme theme,bool force) | |
180 | { |
|
179 | { | |
181 |
|
|
180 | if(m_chartTheme && m_chartTheme->id() == theme) return; | |
182 | delete m_chartTheme; |
|
181 | delete m_chartTheme; | |
183 | m_chartTheme = ChartTheme::createTheme(theme); |
|
182 | m_chartTheme = ChartTheme::createTheme(theme); | |
184 | m_chartTheme->setForced(force); |
|
183 | m_chartTheme->setForced(force); | |
185 | m_chartTheme->decorate(m_chart); |
|
184 | m_chartTheme->decorate(m_chart); | |
186 | m_chartTheme->decorate(m_chart->legend()); |
|
185 | m_chartTheme->decorate(m_chart->legend()); | |
187 | resetAllElements(); |
|
186 | resetAllElements(); | |
188 | } |
|
187 | } | |
189 |
|
188 | |||
190 | QChart::ChartTheme ChartPresenter::theme() |
|
189 | QChart::ChartTheme ChartPresenter::theme() | |
191 | { |
|
190 | { | |
192 | return m_chartTheme->id(); |
|
191 | return m_chartTheme->id(); | |
193 | } |
|
192 | } | |
194 |
|
193 | |||
195 | void ChartPresenter::setAnimationOptions(QChart::AnimationOptions options) |
|
194 | void ChartPresenter::setAnimationOptions(QChart::AnimationOptions options) | |
196 | { |
|
195 | { | |
197 | if(m_options!=options) { |
|
196 | if(m_options!=options) { | |
198 |
|
197 | |||
199 | m_options=options; |
|
198 | m_options=options; | |
200 |
|
199 | |||
201 | if(m_options!=QChart::NoAnimation && !m_animator) { |
|
200 | if(m_options!=QChart::NoAnimation && !m_animator) { | |
202 | m_animator= new ChartAnimator(this); |
|
201 | m_animator= new ChartAnimator(this); | |
203 | } |
|
202 | } | |
204 | resetAllElements(); |
|
203 | resetAllElements(); | |
205 | } |
|
204 | } | |
206 |
|
205 | |||
207 | } |
|
206 | } | |
208 |
|
207 | |||
209 | void ChartPresenter::resetAllElements() |
|
208 | void ChartPresenter::resetAllElements() | |
210 | { |
|
209 | { | |
211 |
|
|
210 | QList<QChartAxis*> axisList = m_axisItems.uniqueKeys(); | |
212 |
|
|
211 | QList<QSeries*> seriesList = m_chartItems.uniqueKeys(); | |
213 |
|
212 | |||
214 |
|
|
213 | foreach(QChartAxis* axis, axisList) { | |
215 |
|
|
214 | handleAxisRemoved(axis); | |
216 |
|
|
215 | handleAxisAdded(axis,m_dataset->domain(axis)); | |
217 |
|
|
216 | } | |
218 |
|
|
217 | foreach(QSeries* series, seriesList) { | |
219 |
|
|
218 | handleSeriesRemoved(series); | |
220 |
|
|
219 | handleSeriesAdded(series,m_dataset->domain(series)); | |
221 |
|
|
220 | } | |
222 | } |
|
221 | } | |
223 |
|
222 | |||
224 | void ChartPresenter::zoomIn() |
|
223 | void ChartPresenter::zoomIn() | |
225 | { |
|
224 | { | |
226 |
|
|
225 | QRectF rect = chartGeometry(); | |
227 |
|
|
226 | rect.setWidth(rect.width()/2); | |
228 |
|
|
227 | rect.setHeight(rect.height()/2); | |
229 |
|
|
228 | rect.moveCenter(chartGeometry().center()); | |
230 |
|
|
229 | zoomIn(rect); | |
231 | } |
|
230 | } | |
232 |
|
231 | |||
233 | void ChartPresenter::zoomIn(const QRectF& rect) |
|
232 | void ChartPresenter::zoomIn(const QRectF& rect) | |
234 | { |
|
233 | { | |
235 |
|
|
234 | QRectF r = rect.normalized(); | |
236 | r.translate(-m_chartMargins.topLeft()); |
|
235 | r.translate(-m_chartMargins.topLeft()); | |
237 |
|
|
236 | if(m_animator) { | |
238 |
|
237 | |||
239 |
|
|
238 | QPointF point(r.center().x()/chartGeometry().width(),r.center().y()/chartGeometry().height()); | |
240 |
|
|
239 | m_animator->setState(ChartAnimator::ZoomInState,point); | |
241 | } |
|
240 | } | |
242 |
|
|
241 | m_dataset->zoomInDomain(r,chartGeometry().size()); | |
243 |
|
|
242 | if(m_animator) { | |
244 |
|
|
243 | m_animator->setState(ChartAnimator::ShowState); | |
245 | } |
|
244 | } | |
246 | } |
|
245 | } | |
247 |
|
246 | |||
248 | void ChartPresenter::zoomOut() |
|
247 | void ChartPresenter::zoomOut() | |
249 | { |
|
248 | { | |
250 |
|
|
249 | if(m_animator) | |
251 | { |
|
250 | { | |
252 |
|
|
251 | m_animator->setState(ChartAnimator::ZoomOutState); | |
253 | } |
|
252 | } | |
254 |
|
253 | |||
255 |
|
|
254 | QSizeF size = chartGeometry().size(); | |
256 |
|
|
255 | QRectF rect = chartGeometry(); | |
257 | rect.translate(-m_chartMargins.topLeft()); |
|
256 | rect.translate(-m_chartMargins.topLeft()); | |
258 | m_dataset->zoomOutDomain(rect.adjusted(size.width()/4,size.height()/4,-size.width()/4,-size.height()/4),size); |
|
257 | m_dataset->zoomOutDomain(rect.adjusted(size.width()/4,size.height()/4,-size.width()/4,-size.height()/4),size); | |
259 | //m_dataset->zoomOutDomain(m_zoomStack[m_zoomIndex-1],geometry().size()); |
|
258 | //m_dataset->zoomOutDomain(m_zoomStack[m_zoomIndex-1],geometry().size()); | |
260 |
|
259 | |||
261 |
|
|
260 | if(m_animator){ | |
262 |
|
|
261 | m_animator->setState(ChartAnimator::ShowState); | |
263 | } |
|
262 | } | |
264 | } |
|
263 | } | |
265 |
|
264 | |||
266 | void ChartPresenter::scroll(int dx,int dy) |
|
265 | void ChartPresenter::scroll(int dx,int dy) | |
267 | { |
|
266 | { | |
268 |
|
|
267 | if(m_animator){ | |
269 |
|
|
268 | if(dx<0) m_animator->setState(ChartAnimator::ScrollLeftState,QPointF()); | |
270 |
|
|
269 | if(dx>0) m_animator->setState(ChartAnimator::ScrollRightState,QPointF()); | |
271 |
|
|
270 | if(dy<0) m_animator->setState(ChartAnimator::ScrollUpState,QPointF()); | |
272 |
|
|
271 | if(dy>0) m_animator->setState(ChartAnimator::ScrollDownState,QPointF()); | |
273 | } |
|
272 | } | |
274 |
|
273 | |||
275 |
|
|
274 | m_dataset->scrollDomain(dx,dy,chartGeometry().size()); | |
276 |
|
275 | |||
277 | if(m_animator){ |
|
276 | if(m_animator){ | |
278 |
|
|
277 | m_animator->setState(ChartAnimator::ShowState); | |
279 | } |
|
278 | } | |
280 | } |
|
279 | } | |
281 |
|
280 | |||
282 | QChart::AnimationOptions ChartPresenter::animationOptions() const |
|
281 | QChart::AnimationOptions ChartPresenter::animationOptions() const | |
283 | { |
|
282 | { | |
284 | return m_options; |
|
283 | return m_options; | |
285 | } |
|
284 | } | |
286 |
|
285 | |||
287 | void ChartPresenter::updateLayout() |
|
286 | void ChartPresenter::updateLayout() | |
288 | { |
|
287 | { | |
289 | if (!m_rect.isValid()) return; |
|
288 | if (!m_rect.isValid()) return; | |
290 |
|
289 | |||
291 | // recalculate title size |
|
290 | // recalculate title size | |
292 |
|
291 | |||
293 | QSize titleSize; |
|
292 | QSize titleSize; | |
294 | int titlePadding=0; |
|
293 | int titlePadding=0; | |
295 |
|
294 | |||
296 | if (m_titleItem) { |
|
295 | if (m_titleItem) { | |
297 | titleSize= m_titleItem->boundingRect().size().toSize(); |
|
296 | titleSize= m_titleItem->boundingRect().size().toSize(); | |
298 | } |
|
297 | } | |
299 |
|
298 | |||
300 | //defaults |
|
299 | //defaults | |
301 | m_chartMargins = QRect(QPoint(m_minLeftMargin>m_marginBig?m_minLeftMargin:m_marginBig,m_marginBig),QPoint(m_marginBig,m_minBottomMargin>m_marginBig?m_minBottomMargin:m_marginBig)); |
|
300 | m_chartMargins = QRect(QPoint(m_minLeftMargin>m_marginBig?m_minLeftMargin:m_marginBig,m_marginBig),QPoint(m_marginBig,m_minBottomMargin>m_marginBig?m_minBottomMargin:m_marginBig)); | |
302 | titlePadding = m_chartMargins.top()/2; |
|
301 | titlePadding = m_chartMargins.top()/2; | |
303 |
|
302 | |||
304 | QLegend* legend = m_chart->d_ptr->m_legend; |
|
303 | QLegend* legend = m_chart->d_ptr->m_legend; | |
305 |
|
304 | |||
306 | // recalculate legend position |
|
305 | // recalculate legend position | |
307 | if (legend->isAttachedToChart() && legend->isEnabled()) { |
|
306 | if (legend->isAttachedToChart() && legend->isEnabled()) { | |
308 |
|
307 | |||
309 | QRect legendRect; |
|
308 | QRect legendRect; | |
310 |
|
309 | |||
311 | // Reserve some space for legend |
|
310 | // Reserve some space for legend | |
312 | switch (legend->alignment()) { |
|
311 | switch (legend->alignment()) { | |
313 |
|
312 | |||
314 |
|
|
313 | case QLegend::AlignmentTop: { | |
315 |
|
|
314 | int ledgendSize = legend->minHeight(); | |
316 |
|
|
315 | int topPadding = 2*m_marginTiny + titleSize.height() + ledgendSize + m_marginTiny; | |
317 |
|
|
316 | m_chartMargins = QRect(QPoint(m_chartMargins.left(),topPadding),QPoint(m_chartMargins.right(),m_chartMargins.bottom())); | |
318 |
|
|
317 | m_legendMargins = QRect(QPoint(m_chartMargins.left(),topPadding - (ledgendSize + m_marginTiny)),QPoint(m_chartMargins.right(),m_rect.height()-topPadding + m_marginTiny)); | |
319 |
|
|
318 | titlePadding = m_marginTiny + m_marginTiny; | |
320 |
|
|
319 | break; | |
321 |
|
|
320 | } | |
322 |
|
|
321 | case QLegend::AlignmentBottom: { | |
323 |
|
|
322 | int ledgendSize = legend->minHeight(); | |
324 |
|
|
323 | int bottomPadding = m_marginTiny + m_marginSmall + ledgendSize + m_marginTiny + m_minBottomMargin; | |
325 |
|
|
324 | m_chartMargins = QRect(QPoint(m_chartMargins.left(),m_chartMargins.top()),QPoint(m_chartMargins.right(),bottomPadding)); | |
326 |
|
|
325 | m_legendMargins = QRect(QPoint(m_chartMargins.left(),m_rect.height()-bottomPadding + m_marginTiny + m_minBottomMargin),QPoint(m_chartMargins.right(),m_marginTiny + m_marginSmall)); | |
327 |
|
|
326 | titlePadding = m_chartMargins.top()/2; | |
328 |
|
|
327 | break; | |
329 |
|
|
328 | } | |
330 |
|
|
329 | case QLegend::AlignmentLeft: { | |
331 |
|
|
330 | int ledgendSize = legend->minWidth(); | |
332 |
|
|
331 | int leftPadding = m_marginTiny + m_marginSmall + ledgendSize + m_marginTiny + m_minLeftMargin; | |
333 |
|
|
332 | m_chartMargins = QRect(QPoint(leftPadding,m_chartMargins.top()),QPoint(m_chartMargins.right(),m_chartMargins.bottom())); | |
334 |
|
|
333 | m_legendMargins = QRect(QPoint(m_marginTiny + m_marginSmall,m_chartMargins.top()),QPoint(m_rect.width()-leftPadding + m_marginTiny + m_minLeftMargin,m_chartMargins.bottom())); | |
335 |
|
|
334 | titlePadding = m_chartMargins.top()/2; | |
336 |
|
|
335 | break; | |
337 |
|
|
336 | } | |
338 |
|
|
337 | case QLegend::AlignmentRight: { | |
339 |
|
|
338 | int ledgendSize = legend->minWidth(); | |
340 |
|
|
339 | int rightPadding = m_marginTiny + m_marginSmall + ledgendSize + m_marginTiny; | |
341 |
|
|
340 | m_chartMargins = QRect(QPoint(m_chartMargins.left(),m_chartMargins.top()),QPoint(rightPadding,m_chartMargins.bottom())); | |
342 |
|
|
341 | m_legendMargins = QRect(QPoint(m_rect.width()- rightPadding+ m_marginTiny ,m_chartMargins.top()),QPoint(m_marginTiny + m_marginSmall,m_chartMargins.bottom())); | |
343 |
|
|
342 | titlePadding = m_chartMargins.top()/2; | |
344 |
|
|
343 | break; | |
345 |
|
|
344 | } | |
346 |
|
|
345 | default: { | |
347 |
|
|
346 | break; | |
348 |
|
|
347 | } | |
349 | } |
|
348 | } | |
350 | } |
|
349 | } | |
351 |
|
350 | |||
352 | if(m_rect.width()<2*(m_chartMargins.top()+m_chartMargins.bottom()) || m_rect.height()< 2*(m_chartMargins.top() + m_chartMargins.bottom())) |
|
351 | if(m_rect.width()<2*(m_chartMargins.top()+m_chartMargins.bottom()) || m_rect.height()< 2*(m_chartMargins.top() + m_chartMargins.bottom())) | |
353 | { |
|
352 | { | |
354 | m_chart->setMinimumSize(2*(m_chartMargins.top()+m_chartMargins.bottom()),2*(m_chartMargins.top() + m_chartMargins.bottom())); |
|
353 | m_chart->setMinimumSize(2*(m_chartMargins.top()+m_chartMargins.bottom()),2*(m_chartMargins.top() + m_chartMargins.bottom())); | |
355 | return; |
|
354 | return; | |
356 | } |
|
355 | } | |
357 |
|
356 | |||
358 |
|
357 | |||
359 | // recalculate title position |
|
358 | // recalculate title position | |
360 | if (m_titleItem) { |
|
359 | if (m_titleItem) { | |
361 | QPointF center = m_rect.center() -m_titleItem->boundingRect().center(); |
|
360 | QPointF center = m_rect.center() -m_titleItem->boundingRect().center(); | |
362 | m_titleItem->setPos(center.x(),titlePadding); |
|
361 | m_titleItem->setPos(center.x(),titlePadding); | |
363 | } |
|
362 | } | |
364 |
|
363 | |||
365 | //recalculate background gradient |
|
364 | //recalculate background gradient | |
366 | if (m_backgroundItem) { |
|
365 | if (m_backgroundItem) { | |
367 | m_backgroundItem->setRect(m_rect.adjusted(m_marginTiny,m_marginTiny, -m_marginTiny, -m_marginTiny)); |
|
366 | m_backgroundItem->setRect(m_rect.adjusted(m_marginTiny,m_marginTiny, -m_marginTiny, -m_marginTiny)); | |
368 | } |
|
367 | } | |
369 |
|
368 | |||
370 |
|
369 | |||
371 | QRectF chartRect = m_rect.adjusted(m_chartMargins.left(),m_chartMargins.top(),-m_chartMargins.right(),-m_chartMargins.bottom()); |
|
370 | QRectF chartRect = m_rect.adjusted(m_chartMargins.left(),m_chartMargins.top(),-m_chartMargins.right(),-m_chartMargins.bottom()); | |
372 |
|
371 | |||
373 | legend->setGeometry(m_rect.adjusted(m_legendMargins.left(),m_legendMargins.top(),-m_legendMargins.right(),-m_legendMargins.bottom())); |
|
372 | legend->setGeometry(m_rect.adjusted(m_legendMargins.left(),m_legendMargins.top(),-m_legendMargins.right(),-m_legendMargins.bottom())); | |
374 |
|
373 | |||
375 | if(m_chartRect!=chartRect){ |
|
374 | if(m_chartRect!=chartRect){ | |
376 | m_chartRect=chartRect; |
|
375 | m_chartRect=chartRect; | |
377 | emit geometryChanged(m_chartRect); |
|
376 | emit geometryChanged(m_chartRect); | |
378 | } |
|
377 | } | |
379 |
|
378 | |||
380 |
|
379 | |||
381 | } |
|
380 | } | |
382 |
|
381 | |||
383 | void ChartPresenter::createChartBackgroundItem() |
|
382 | void ChartPresenter::createChartBackgroundItem() | |
384 | { |
|
383 | { | |
385 | if (!m_backgroundItem) { |
|
384 | if (!m_backgroundItem) { | |
386 | m_backgroundItem = new ChartBackground(rootItem()); |
|
385 | m_backgroundItem = new ChartBackground(rootItem()); | |
387 | m_backgroundItem->setPen(Qt::NoPen); |
|
386 | m_backgroundItem->setPen(Qt::NoPen); | |
388 | m_backgroundItem->setZValue(ChartPresenter::BackgroundZValue); |
|
387 | m_backgroundItem->setZValue(ChartPresenter::BackgroundZValue); | |
389 | } |
|
388 | } | |
390 | } |
|
389 | } | |
391 |
|
390 | |||
392 | void ChartPresenter::createChartTitleItem() |
|
391 | void ChartPresenter::createChartTitleItem() | |
393 | { |
|
392 | { | |
394 | if (!m_titleItem) { |
|
393 | if (!m_titleItem) { | |
395 | m_titleItem = new QGraphicsSimpleTextItem(rootItem()); |
|
394 | m_titleItem = new QGraphicsSimpleTextItem(rootItem()); | |
396 | m_titleItem->setZValue(ChartPresenter::BackgroundZValue); |
|
395 | m_titleItem->setZValue(ChartPresenter::BackgroundZValue); | |
397 | } |
|
396 | } | |
398 | } |
|
397 | } | |
399 |
|
398 | |||
400 | #include "moc_chartpresenter_p.cpp" |
|
399 | #include "moc_chartpresenter_p.cpp" | |
401 |
|
400 | |||
402 | QTCOMMERCIALCHART_END_NAMESPACE |
|
401 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -1,125 +1,125 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTPRESENTER_H |
|
21 | #ifndef CHARTPRESENTER_H | |
22 |
#define CHARTPRESENTER_H |
|
22 | #define CHARTPRESENTER_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include "chartbackground_p.h" //TODO fix me |
|
25 | #include "chartbackground_p.h" //TODO fix me | |
26 | #include "qchart.h" //becouse of QChart::ChartThemeId //TODO |
|
26 | #include "qchart.h" //becouse of QChart::ChartThemeId //TODO | |
27 | #include "qchartaxis.h" |
|
27 | #include "qchartaxis.h" | |
28 | #include <QRectF> |
|
28 | #include <QRectF> | |
29 |
|
29 | |||
30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
31 |
|
31 | |||
32 | class Chart; |
|
32 | class Chart; | |
33 | class QSeries; |
|
33 | class QSeries; | |
34 | class ChartDataSet; |
|
34 | class ChartDataSet; | |
35 | class Domain; |
|
35 | class Domain; | |
36 | class Axis; |
|
36 | class Axis; | |
37 | class ChartTheme; |
|
37 | class ChartTheme; | |
38 | class ChartAnimator; |
|
38 | class ChartAnimator; | |
39 |
|
39 | |||
40 | class ChartPresenter: public QObject |
|
40 | class ChartPresenter: public QObject | |
41 | { |
|
41 | { | |
42 | Q_OBJECT |
|
42 | Q_OBJECT | |
43 | public: |
|
43 | public: | |
44 | enum ZValues { |
|
44 | enum ZValues { | |
45 | BackgroundZValue = -1, |
|
45 | BackgroundZValue = -1, | |
46 | ShadesZValue, |
|
46 | ShadesZValue, | |
47 | GridZValue, |
|
47 | GridZValue, | |
48 | LineChartZValue, |
|
48 | LineChartZValue, | |
49 | BarSeriesZValue, |
|
49 | BarSeriesZValue, | |
50 | ScatterSeriesZValue, |
|
50 | ScatterSeriesZValue, | |
51 | PieSeriesZValue, |
|
51 | PieSeriesZValue, | |
52 | AxisZValue, |
|
52 | AxisZValue, | |
53 | LegendZValue |
|
53 | LegendZValue | |
54 | }; |
|
54 | }; | |
55 |
|
55 | |||
56 | ChartPresenter(QChart* chart,ChartDataSet *dataset); |
|
56 | ChartPresenter(QChart* chart,ChartDataSet *dataset); | |
57 | virtual ~ChartPresenter(); |
|
57 | virtual ~ChartPresenter(); | |
58 |
|
58 | |||
59 | ChartAnimator* animator() const { return m_animator; } |
|
59 | ChartAnimator* animator() const { return m_animator; } | |
60 | ChartTheme *chartTheme() const { return m_chartTheme; } |
|
60 | ChartTheme *chartTheme() const { return m_chartTheme; } | |
61 | ChartDataSet *dataSet() const { return m_dataset; } |
|
61 | ChartDataSet *dataSet() const { return m_dataset; } | |
62 | QGraphicsItem* rootItem() const { return m_chart; } |
|
62 | QGraphicsItem* rootItem() const { return m_chart; } | |
63 |
|
63 | |||
64 | void setTheme(QChart::ChartTheme theme,bool force = true); |
|
64 | void setTheme(QChart::ChartTheme theme,bool force = true); | |
65 | QChart::ChartTheme theme(); |
|
65 | QChart::ChartTheme theme(); | |
66 |
|
66 | |||
67 | void setAnimationOptions(QChart::AnimationOptions options); |
|
67 | void setAnimationOptions(QChart::AnimationOptions options); | |
68 | QChart::AnimationOptions animationOptions() const; |
|
68 | QChart::AnimationOptions animationOptions() const; | |
69 |
|
69 | |||
70 | void zoomIn(); |
|
70 | void zoomIn(); | |
71 | void zoomIn(const QRectF& rect); |
|
71 | void zoomIn(const QRectF& rect); | |
72 | void zoomOut(); |
|
72 | void zoomOut(); | |
73 | void scroll(int dx,int dy); |
|
73 | void scroll(int dx,int dy); | |
74 |
|
74 | |||
75 | void setGeometry(const QRectF& rect); |
|
75 | void setGeometry(const QRectF& rect); | |
76 | QRectF chartGeometry() const { return m_chartRect; } |
|
76 | QRectF chartGeometry() const { return m_chartRect; } | |
77 |
|
77 | |||
78 | void setMinimumMarginHeight(Axis* axis, qreal height); |
|
78 | void setMinimumMarginHeight(Axis* axis, qreal height); | |
79 | void setMinimumMarginWidth(Axis* axis, qreal width); |
|
79 | void setMinimumMarginWidth(Axis* axis, qreal width); | |
80 | qreal minimumLeftMargin() const { return m_minLeftMargin; } |
|
80 | qreal minimumLeftMargin() const { return m_minLeftMargin; } | |
81 | qreal minimumBottomMargin() const { return m_minBottomMargin; } |
|
81 | qreal minimumBottomMargin() const { return m_minBottomMargin; } | |
82 |
|
82 | |||
83 | public: //TODO: fix me |
|
83 | public: //TODO: fix me | |
84 | void resetAllElements(); |
|
84 | void resetAllElements(); | |
85 | void createChartBackgroundItem(); |
|
85 | void createChartBackgroundItem(); | |
86 | void createChartTitleItem(); |
|
86 | void createChartTitleItem(); | |
87 | QRectF margins() const { return m_chartMargins;} |
|
87 | QRectF margins() const { return m_chartMargins;} | |
88 |
|
88 | |||
89 | public Q_SLOTS: |
|
89 | public Q_SLOTS: | |
90 | void handleSeriesAdded(QSeries* series,Domain* domain); |
|
90 | void handleSeriesAdded(QSeries* series,Domain* domain); | |
91 | void handleSeriesRemoved(QSeries* series); |
|
91 | void handleSeriesRemoved(QSeries* series); | |
92 | void handleAxisAdded(QChartAxis* axis,Domain* domain); |
|
92 | void handleAxisAdded(QChartAxis* axis,Domain* domain); | |
93 | void handleAxisRemoved(QChartAxis* axis); |
|
93 | void handleAxisRemoved(QChartAxis* axis); | |
94 | void updateLayout(); |
|
94 | void updateLayout(); | |
95 |
|
95 | |||
96 | Q_SIGNALS: |
|
96 | Q_SIGNALS: | |
97 | void geometryChanged(const QRectF& rect); |
|
97 | void geometryChanged(const QRectF& rect); | |
98 |
|
98 | |||
99 |
|
99 | |||
100 | private: |
|
100 | private: | |
101 | QChart* m_chart; |
|
101 | QChart* m_chart; | |
102 | ChartAnimator* m_animator; |
|
102 | ChartAnimator* m_animator; | |
103 | ChartDataSet* m_dataset; |
|
103 | ChartDataSet* m_dataset; | |
104 | ChartTheme *m_chartTheme; |
|
104 | ChartTheme *m_chartTheme; | |
105 | QMap<QSeries*,Chart*> m_chartItems; |
|
105 | QMap<QSeries*,Chart*> m_chartItems; | |
106 | QMap<QChartAxis*,Axis*> m_axisItems; |
|
106 | QMap<QChartAxis*,Axis*> m_axisItems; | |
107 | QRectF m_rect; |
|
107 | QRectF m_rect; | |
108 | QRectF m_chartRect; |
|
108 | QRectF m_chartRect; | |
109 | QChart::AnimationOptions m_options; |
|
109 | QChart::AnimationOptions m_options; | |
110 | qreal m_minLeftMargin; |
|
110 | qreal m_minLeftMargin; | |
111 | qreal m_minBottomMargin; |
|
111 | qreal m_minBottomMargin; | |
112 | public: //TODO: fixme |
|
112 | public: //TODO: fixme | |
113 | ChartBackground* m_backgroundItem; |
|
113 | ChartBackground* m_backgroundItem; | |
114 | QGraphicsSimpleTextItem* m_titleItem; |
|
114 | QGraphicsSimpleTextItem* m_titleItem; | |
115 | int m_marginBig; |
|
115 | int m_marginBig; | |
116 | int m_marginSmall; |
|
116 | int m_marginSmall; | |
117 | int m_marginTiny; |
|
117 | int m_marginTiny; | |
118 | QRectF m_chartMargins; |
|
118 | QRectF m_chartMargins; | |
119 | QRectF m_legendMargins; |
|
119 | QRectF m_legendMargins; | |
120 |
|
120 | |||
121 | }; |
|
121 | }; | |
122 |
|
122 | |||
123 | QTCOMMERCIALCHART_END_NAMESPACE |
|
123 | QTCOMMERCIALCHART_END_NAMESPACE | |
124 |
|
124 | |||
125 | #endif /* CHARTPRESENTER_H_ */ |
|
125 | #endif /* CHARTPRESENTER_H_ */ |
@@ -1,91 +1,91 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef DOMAIN_H |
|
21 | #ifndef DOMAIN_H | |
22 |
#define DOMAIN_H |
|
22 | #define DOMAIN_H | |
23 | #include "qchartglobal.h" |
|
23 | #include "qchartglobal.h" | |
24 | #include <QRectF> |
|
24 | #include <QRectF> | |
25 | #include <QSizeF> |
|
25 | #include <QSizeF> | |
26 |
|
26 | |||
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
28 |
|
28 | |||
29 | class Domain: public QObject { |
|
29 | class Domain: public QObject { | |
30 | Q_OBJECT |
|
30 | Q_OBJECT | |
31 | public: |
|
31 | public: | |
32 | explicit Domain(QObject* object=0); |
|
32 | explicit Domain(QObject* object=0); | |
33 | virtual ~Domain(); |
|
33 | virtual ~Domain(); | |
34 |
|
34 | |||
35 | void setRange(qreal minX, qreal maxX, qreal minY, qreal maxY); |
|
35 | void setRange(qreal minX, qreal maxX, qreal minY, qreal maxY); | |
36 | void setRange(qreal minX, qreal maxX, qreal minY, qreal maxY, int tickXCount, int tickYCount); |
|
36 | void setRange(qreal minX, qreal maxX, qreal minY, qreal maxY, int tickXCount, int tickYCount); | |
37 | void setRangeX(qreal min, qreal max); |
|
37 | void setRangeX(qreal min, qreal max); | |
38 | void setRangeX(qreal min, qreal max, int tickCount); |
|
38 | void setRangeX(qreal min, qreal max, int tickCount); | |
39 | void setRangeY(qreal min, qreal max); |
|
39 | void setRangeY(qreal min, qreal max); | |
40 | void setRangeY(qreal min, qreal max, int tickCount); |
|
40 | void setRangeY(qreal min, qreal max, int tickCount); | |
41 | void setMinX(qreal min); |
|
41 | void setMinX(qreal min); | |
42 | void setMaxX(qreal max); |
|
42 | void setMaxX(qreal max); | |
43 | void setMinY(qreal min); |
|
43 | void setMinY(qreal min); | |
44 | void setMaxY(qreal max); |
|
44 | void setMaxY(qreal max); | |
45 |
|
45 | |||
46 | qreal minX() const { return m_minX; } |
|
46 | qreal minX() const { return m_minX; } | |
47 | qreal maxX() const { return m_maxX; } |
|
47 | qreal maxX() const { return m_maxX; } | |
48 | qreal minY() const { return m_minY; } |
|
48 | qreal minY() const { return m_minY; } | |
49 | qreal maxY() const { return m_maxY; } |
|
49 | qreal maxY() const { return m_maxY; } | |
50 |
|
50 | |||
51 | qreal spanX() const; |
|
51 | qreal spanX() const; | |
52 | qreal spanY() const; |
|
52 | qreal spanY() const; | |
53 | bool isEmpty() const; |
|
53 | bool isEmpty() const; | |
54 |
|
54 | |||
55 | int tickXCount() const {return m_tickXCount;} |
|
55 | int tickXCount() const {return m_tickXCount;} | |
56 | int tickYCount() const {return m_tickYCount;} |
|
56 | int tickYCount() const {return m_tickYCount;} | |
57 |
|
57 | |||
58 | friend bool operator== (const Domain &domain1, const Domain &domain2); |
|
58 | friend bool operator== (const Domain &domain1, const Domain &domain2); | |
59 | friend bool operator!= (const Domain &domain1, const Domain &domain2); |
|
59 | friend bool operator!= (const Domain &domain1, const Domain &domain2); | |
60 | friend QDebug operator<<(QDebug dbg, const Domain &domain); |
|
60 | friend QDebug operator<<(QDebug dbg, const Domain &domain); | |
61 |
|
61 | |||
62 | void zoomIn(const QRectF& rect, const QSizeF& size); |
|
62 | void zoomIn(const QRectF& rect, const QSizeF& size); | |
63 | void zoomOut(const QRectF& rect, const QSizeF& size); |
|
63 | void zoomOut(const QRectF& rect, const QSizeF& size); | |
64 | void move(int dx,int dy,const QSizeF& size); |
|
64 | void move(int dx,int dy,const QSizeF& size); | |
65 |
|
65 | |||
66 | Q_SIGNALS: |
|
66 | Q_SIGNALS: | |
67 | void domainChanged(qreal minX, qreal maxX, qreal minY, qreal maxY); |
|
67 | void domainChanged(qreal minX, qreal maxX, qreal minY, qreal maxY); | |
68 | void rangeXChanged(qreal min, qreal max, int tickXCount); |
|
68 | void rangeXChanged(qreal min, qreal max, int tickXCount); | |
69 | void rangeYChanged(qreal min, qreal max, int tickYCount); |
|
69 | void rangeYChanged(qreal min, qreal max, int tickYCount); | |
70 |
|
70 | |||
71 | public Q_SLOTS: |
|
71 | public Q_SLOTS: | |
72 | void handleAxisXChanged(qreal min,qreal max,int tickXCount = 5,bool niceNumbers = false); |
|
72 | void handleAxisXChanged(qreal min,qreal max,int tickXCount = 5,bool niceNumbers = false); | |
73 | void handleAxisYChanged(qreal min,qreal max,int tickYCount = 5,bool niceNumbers = false); |
|
73 | void handleAxisYChanged(qreal min,qreal max,int tickYCount = 5,bool niceNumbers = false); | |
74 |
|
74 | |||
75 | private: |
|
75 | private: | |
76 | void looseNiceNumbers(qreal &min, qreal &max, int &ticksCount); |
|
76 | void looseNiceNumbers(qreal &min, qreal &max, int &ticksCount); | |
77 | qreal niceNumber(qreal x,bool celing); |
|
77 | qreal niceNumber(qreal x,bool celing); | |
78 |
|
78 | |||
79 | private: |
|
79 | private: | |
80 | qreal m_minX; |
|
80 | qreal m_minX; | |
81 | qreal m_maxX; |
|
81 | qreal m_maxX; | |
82 | qreal m_minY; |
|
82 | qreal m_minY; | |
83 | qreal m_maxY; |
|
83 | qreal m_maxY; | |
84 | int m_tickXCount; |
|
84 | int m_tickXCount; | |
85 | int m_tickYCount; |
|
85 | int m_tickYCount; | |
86 | bool m_niceNumbers; |
|
86 | bool m_niceNumbers; | |
87 | }; |
|
87 | }; | |
88 |
|
88 | |||
89 | QTCOMMERCIALCHART_END_NAMESPACE |
|
89 | QTCOMMERCIALCHART_END_NAMESPACE | |
90 |
|
90 | |||
91 | #endif |
|
91 | #endif |
@@ -1,72 +1,72 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
|
30 | |||
31 |
#ifndef LEGENDSCROLLER_P_H |
|
31 | #ifndef LEGENDSCROLLER_P_H | |
32 |
#define LEGENDSCROLLER_P_H |
|
32 | #define LEGENDSCROLLER_P_H | |
33 |
|
33 | |||
34 | #include "qlegend.h" |
|
34 | #include "qlegend.h" | |
35 | #include "scroller_p.h" |
|
35 | #include "scroller_p.h" | |
36 |
|
36 | |||
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
38 |
|
38 | |||
39 | class LegendScroller: public QLegend, public Scroller |
|
39 | class LegendScroller: public QLegend, public Scroller | |
40 | { |
|
40 | { | |
41 |
|
41 | |||
42 | public: |
|
42 | public: | |
43 | LegendScroller(QChart *chart):QLegend(chart) |
|
43 | LegendScroller(QChart *chart):QLegend(chart) | |
44 | { |
|
44 | { | |
45 | } |
|
45 | } | |
46 |
|
46 | |||
47 | void setOffset(const QPointF& point) |
|
47 | void setOffset(const QPointF& point) | |
48 | { |
|
48 | { | |
49 | QLegend::setOffset(point); |
|
49 | QLegend::setOffset(point); | |
50 | } |
|
50 | } | |
51 | QPointF offset() const |
|
51 | QPointF offset() const | |
52 | { |
|
52 | { | |
53 | return QLegend::offset(); |
|
53 | return QLegend::offset(); | |
54 | } |
|
54 | } | |
55 |
|
55 | |||
56 | void mousePressEvent(QGraphicsSceneMouseEvent* event){ |
|
56 | void mousePressEvent(QGraphicsSceneMouseEvent* event){ | |
57 | Scroller::mousePressEvent(event); |
|
57 | Scroller::mousePressEvent(event); | |
58 | //QLegend::mousePressEvent(event); |
|
58 | //QLegend::mousePressEvent(event); | |
59 | } |
|
59 | } | |
60 | void mouseMoveEvent(QGraphicsSceneMouseEvent* event){ |
|
60 | void mouseMoveEvent(QGraphicsSceneMouseEvent* event){ | |
61 | Scroller::mouseMoveEvent(event); |
|
61 | Scroller::mouseMoveEvent(event); | |
62 | //QLegend::mouseMoveEvent(event); |
|
62 | //QLegend::mouseMoveEvent(event); | |
63 | } |
|
63 | } | |
64 | void mouseReleaseEvent(QGraphicsSceneMouseEvent* event){ |
|
64 | void mouseReleaseEvent(QGraphicsSceneMouseEvent* event){ | |
65 | Scroller::mouseReleaseEvent(event); |
|
65 | Scroller::mouseReleaseEvent(event); | |
66 | //QLegend::mouseReleaseEvent(event); |
|
66 | //QLegend::mouseReleaseEvent(event); | |
67 | } |
|
67 | } | |
68 | }; |
|
68 | }; | |
69 |
|
69 | |||
70 | QTCOMMERCIALCHART_END_NAMESPACE |
|
70 | QTCOMMERCIALCHART_END_NAMESPACE | |
71 |
|
71 | |||
72 | #endif |
|
72 | #endif |
@@ -1,77 +1,77 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QLEGEND_P_H |
|
30 | #ifndef QLEGEND_P_H | |
31 |
#define QLEGEND_P_H |
|
31 | #define QLEGEND_P_H | |
32 |
|
32 | |||
33 | #include "qlegend.h" |
|
33 | #include "qlegend.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 | class ChartPresenter; |
|
37 | class ChartPresenter; | |
38 |
|
38 | |||
39 | class QLegendPrivate : public QObject |
|
39 | class QLegendPrivate : public QObject | |
40 | { |
|
40 | { | |
41 | Q_OBJECT |
|
41 | Q_OBJECT | |
42 | public: |
|
42 | public: | |
43 | QLegendPrivate(ChartPresenter *chart,QLegend *q); |
|
43 | QLegendPrivate(ChartPresenter *chart,QLegend *q); | |
44 | ~QLegendPrivate(); |
|
44 | ~QLegendPrivate(); | |
45 |
|
45 | |||
46 | void setOffset(qreal x, qreal y); |
|
46 | void setOffset(qreal x, qreal y); | |
47 | void updateLayout(); |
|
47 | void updateLayout(); | |
48 |
|
48 | |||
49 | public Q_SLOTS: |
|
49 | public Q_SLOTS: | |
50 | void handleSeriesAdded(QSeries *series, Domain *domain); |
|
50 | void handleSeriesAdded(QSeries *series, Domain *domain); | |
51 | void handleSeriesRemoved(QSeries *series); |
|
51 | void handleSeriesRemoved(QSeries *series); | |
52 | void handleUpdateSeries(); //TODO remove this function |
|
52 | void handleUpdateSeries(); //TODO remove this function | |
53 |
|
53 | |||
54 | private: |
|
54 | private: | |
55 | QLegend *q_ptr; |
|
55 | QLegend *q_ptr; | |
56 | ChartPresenter *m_presenter; |
|
56 | ChartPresenter *m_presenter; | |
57 | QGraphicsItemGroup* m_markers; |
|
57 | QGraphicsItemGroup* m_markers; | |
58 | QLegend::Alignments m_alignment; |
|
58 | QLegend::Alignments m_alignment; | |
59 | QBrush m_brush; |
|
59 | QBrush m_brush; | |
60 | QPen m_pen; |
|
60 | QPen m_pen; | |
61 | QRectF m_rect; |
|
61 | QRectF m_rect; | |
62 | qreal m_offsetX; |
|
62 | qreal m_offsetX; | |
63 | qreal m_offsetY; |
|
63 | qreal m_offsetY; | |
64 | qreal m_minWidth; |
|
64 | qreal m_minWidth; | |
65 | qreal m_minHeight; |
|
65 | qreal m_minHeight; | |
66 | qreal m_width; |
|
66 | qreal m_width; | |
67 | qreal m_height; |
|
67 | qreal m_height; | |
68 | bool m_attachedToChart; |
|
68 | bool m_attachedToChart; | |
69 | bool m_backgroundVisible; |
|
69 | bool m_backgroundVisible; | |
70 |
|
70 | |||
71 | friend class QLegend; |
|
71 | friend class QLegend; | |
72 |
|
72 | |||
73 | }; |
|
73 | }; | |
74 |
|
74 | |||
75 | QTCOMMERCIALCHART_END_NAMESPACE |
|
75 | QTCOMMERCIALCHART_END_NAMESPACE | |
76 |
|
76 | |||
77 | #endif |
|
77 | #endif |
@@ -1,52 +1,52 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef QLINESERIES_H |
|
21 | #ifndef QLINESERIES_H | |
22 |
#define QLINESERIES_H |
|
22 | #define QLINESERIES_H | |
23 |
|
23 | |||
24 | #include <qchartglobal.h> |
|
24 | #include <qchartglobal.h> | |
25 | #include <qxyseries.h> |
|
25 | #include <qxyseries.h> | |
26 | #include <QPen> |
|
26 | #include <QPen> | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class QLineSeriesPrivate; |
|
30 | class QLineSeriesPrivate; | |
31 |
|
31 | |||
32 | class QTCOMMERCIALCHART_EXPORT QLineSeries : public QXYSeries |
|
32 | class QTCOMMERCIALCHART_EXPORT QLineSeries : public QXYSeries | |
33 | { |
|
33 | { | |
34 | public: |
|
34 | public: | |
35 | explicit QLineSeries(QObject *parent=0); |
|
35 | explicit QLineSeries(QObject *parent=0); | |
36 |
|
|
36 | ~QLineSeries(); | |
37 |
|
37 | |||
38 |
|
|
38 | QSeries::QSeriesType type() const; | |
39 |
|
39 | |||
40 | protected: |
|
40 | protected: | |
41 |
|
|
41 | QLineSeries(QLineSeriesPrivate &d,QObject *parent = 0); | |
42 |
|
42 | |||
43 | private: |
|
43 | private: | |
44 | Q_DECLARE_PRIVATE(QLineSeries); |
|
44 | Q_DECLARE_PRIVATE(QLineSeries); | |
45 | Q_DISABLE_COPY(QLineSeries); |
|
45 | Q_DISABLE_COPY(QLineSeries); | |
46 | friend class LineChartItem; |
|
46 | friend class LineChartItem; | |
47 |
|
47 | |||
48 | }; |
|
48 | }; | |
49 |
|
49 | |||
50 | QTCOMMERCIALCHART_END_NAMESPACE |
|
50 | QTCOMMERCIALCHART_END_NAMESPACE | |
51 |
|
51 | |||
52 | #endif |
|
52 | #endif |
@@ -1,50 +1,50 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QLINESERIES_P_H |
|
30 | #ifndef QLINESERIES_P_H | |
31 |
#define QLINESERIES_P_H |
|
31 | #define QLINESERIES_P_H | |
32 |
|
32 | |||
33 | #include "qxyseries_p.h" |
|
33 | #include "qxyseries_p.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 |
|
37 | |||
38 | class QLineSeriesPrivate: public QXYSeriesPrivate |
|
38 | class QLineSeriesPrivate: public QXYSeriesPrivate | |
39 | { |
|
39 | { | |
40 | public: |
|
40 | public: | |
41 | QLineSeriesPrivate(QLineSeries* q); |
|
41 | QLineSeriesPrivate(QLineSeries* q); | |
42 | Chart* createGraphics(ChartPresenter* presenter); |
|
42 | Chart* createGraphics(ChartPresenter* presenter); | |
43 | private: |
|
43 | private: | |
44 | Q_DECLARE_PUBLIC(QLineSeries); |
|
44 | Q_DECLARE_PUBLIC(QLineSeries); | |
45 |
|
45 | |||
46 | }; |
|
46 | }; | |
47 |
|
47 | |||
48 | QTCOMMERCIALCHART_END_NAMESPACE |
|
48 | QTCOMMERCIALCHART_END_NAMESPACE | |
49 |
|
49 | |||
50 | #endif |
|
50 | #endif |
@@ -1,219 +1,218 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | #include "qchartview.h" |
|
21 | #include "qchartview.h" | |
22 | #include "qchart_p.h" |
|
22 | #include "qchartview_p.h" | |
23 |
#include "qchart |
|
23 | #include "qchart_p.h" | |
24 | #include <QGraphicsScene> |
|
24 | #include <QGraphicsScene> | |
25 | #include <QRubberBand> |
|
25 | #include <QRubberBand> | |
26 |
|
26 | |||
27 |
|
27 | /*! | ||
28 | /*! |
|
28 | \enum QChartView::RubberBand | |
29 | \enum QChartView::RubberBand |
|
29 | ||
30 |
|
30 | This enum describes the different types of rubber bands that can be used for zoom rect selection | ||
31 | This enum describes the different types of rubber bands that can be used for zoom rect selection |
|
31 | ||
32 |
|
32 | \value NoRubberBand | ||
33 |
\value |
|
33 | \value VerticalRubberBand | |
34 |
\value |
|
34 | \value HorizonalRubberBand | |
35 |
\value |
|
35 | \value RectangleRubberBand | |
36 | \value RectangleRubberBand |
|
36 | */ | |
37 | */ |
|
37 | ||
38 |
|
38 | /*! | ||
39 | /*! |
|
39 | \class QChartView | |
40 | \class QChartView |
|
40 | \brief Standalone charting widget. | |
41 | \brief Standalone charting widget. |
|
41 | ||
42 |
|
42 | QChartView is a standalone widget that can display charts. It does not require separate | ||
43 | QChartView is a standalone widget that can display charts. It does not require separate |
|
43 | QGraphicsScene to work. It manages the graphical representation of different types of | |
44 | QGraphicsScene to work. It manages the graphical representation of different types of |
|
44 | QChartSeries and other chart related objects like QChartAxis and QChartLegend. If you want to | |
45 | QChartSeries and other chart related objects like QChartAxis and QChartLegend. If you want to |
|
45 | display a chart in your existing QGraphicsScene, you can use the QChart class instead. | |
46 | display a chart in your existing QGraphicsScene, you can use the QChart class instead. |
|
46 | ||
47 |
|
47 | \sa QChart | ||
48 | \sa QChart |
|
48 | */ | |
49 | */ |
|
49 | ||
50 |
|
50 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||
51 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
51 | ||
52 |
|
52 | /*! | ||
53 | /*! |
|
53 | Constructs a chartView object which is a child of a\a parent. | |
54 | Constructs a chartView object which is a child of a\a parent. |
|
54 | */ | |
55 | */ |
|
55 | QChartView::QChartView(QChart *chart,QWidget *parent) : | |
56 | QChartView::QChartView(QChart *chart,QWidget *parent) : |
|
56 | QGraphicsView(parent), | |
57 | QGraphicsView(parent), |
|
57 | d_ptr(new QChartViewPrivate()) | |
58 | d_ptr(new QChartViewPrivate()) |
|
58 | { | |
59 | { |
|
59 | Q_ASSERT(chart); | |
60 | Q_ASSERT(chart); |
|
60 | d_ptr->m_scene = new QGraphicsScene(this); | |
61 | d_ptr->m_scene = new QGraphicsScene(this); |
|
61 | d_ptr->m_chart = chart; | |
62 | d_ptr->m_chart = chart; |
|
62 | setFrameShape(QFrame::NoFrame); | |
63 | setFrameShape(QFrame::NoFrame); |
|
63 | setBackgroundRole(QPalette::Window); | |
64 | setBackgroundRole(QPalette::Window); |
|
64 | setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
65 |
set |
|
65 | setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
66 | setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
|
66 | setScene(d_ptr->m_scene); | |
67 |
|
|
67 | d_ptr->m_scene->addItem(chart); | |
68 | d_ptr->m_scene->addItem(chart); |
|
68 | setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); | |
69 | setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
|
69 | } | |
70 | } |
|
70 | ||
71 |
|
71 | |||
72 |
|
72 | /*! | ||
73 | /*! |
|
73 | Destroys the object and it's children, like QChartSeries and QChartAxis object added to it. | |
74 | Destroys the object and it's children, like QChartSeries and QChartAxis object added to it. |
|
74 | */ | |
75 | */ |
|
75 | QChartView::~QChartView() | |
76 | QChartView::~QChartView() |
|
76 | { | |
77 | { |
|
77 | } | |
78 | } |
|
78 | ||
79 |
|
79 | /*! | ||
80 | /*! |
|
80 | Returns the pointer to the associated chart | |
81 | Returns the pointer to the associated chart |
|
81 | */ | |
82 | */ |
|
82 | QChart* QChartView::chart() const | |
83 | QChart* QChartView::chart() const |
|
83 | { | |
84 | { |
|
84 | return d_ptr->m_chart; | |
85 | return d_ptr->m_chart; |
|
85 | } | |
86 | } |
|
86 | ||
87 |
|
87 | /*! | ||
88 | /*! |
|
88 | Sets the RubberBandPlicy to \a rubberBand. Selected policy determines the way zooming is performed. | |
89 | Sets the RubberBandPlicy to \a rubberBand. Selected policy determines the way zooming is performed. |
|
89 | */ | |
90 | */ |
|
90 | void QChartView::setRubberBand(const RubberBands& rubberBand) | |
91 | void QChartView::setRubberBand(const RubberBands& rubberBand) |
|
91 | { | |
92 | { |
|
92 | d_ptr->m_rubberBandFlags=rubberBand; | |
93 | d_ptr->m_rubberBandFlags=rubberBand; |
|
93 | ||
94 |
|
94 | if (!d_ptr->m_rubberBandFlags) { | ||
95 |
|
|
95 | delete d_ptr->m_rubberBand; | |
96 |
|
|
96 | d_ptr->m_rubberBand=0; | |
97 | d_ptr->m_rubberBand=0; |
|
97 | return; | |
98 | return; |
|
98 | } | |
99 | } |
|
99 | ||
100 |
|
100 | if (!d_ptr->m_rubberBand) { | ||
101 | if (!d_ptr->m_rubberBand) { |
|
101 | d_ptr->m_rubberBand = new QRubberBand(QRubberBand::Rectangle, this); | |
102 | d_ptr->m_rubberBand = new QRubberBand(QRubberBand::Rectangle, this); |
|
102 | d_ptr->m_rubberBand->setEnabled(true); | |
103 | d_ptr->m_rubberBand->setEnabled(true); |
|
103 | } | |
104 | } |
|
104 | } | |
105 | } |
|
105 | ||
106 |
|
106 | /*! | ||
107 | /*! |
|
107 | Returns the RubberBandPolicy that is currently being used by the widget. | |
108 | Returns the RubberBandPolicy that is currently being used by the widget. |
|
108 | */ | |
109 | */ |
|
109 | QChartView::RubberBands QChartView::rubberBand() const | |
110 | QChartView::RubberBands QChartView::rubberBand() const |
|
110 | { | |
111 | { |
|
111 | return d_ptr->m_rubberBandFlags; | |
112 | return d_ptr->m_rubberBandFlags; |
|
112 | } | |
113 | } |
|
113 | ||
114 |
|
114 | /*! | ||
115 | /*! |
|
115 | If Left mouse button is pressed and the RubberBandPolicy is enabled the \a event is accepted and the rubber band is displayed on the screen allowing the user to select the zoom area. | |
116 | If Left mouse button is pressed and the RubberBandPolicy is enabled the \a event is accepted and the rubber band is displayed on the screen allowing the user to select the zoom area. |
|
116 | If different mouse button is pressed and/or the RubberBandPolicy is disabled then the \a event is passed to QGraphicsView::mousePressEvent() implementation. | |
117 | If different mouse button is pressed and/or the RubberBandPolicy is disabled then the \a event is passed to QGraphicsView::mousePressEvent() implementation. |
|
117 | */ | |
118 | */ |
|
118 | void QChartView::mousePressEvent(QMouseEvent *event) | |
119 | void QChartView::mousePressEvent(QMouseEvent *event) |
|
119 | { | |
120 | { |
|
120 | if(d_ptr->m_rubberBand && d_ptr->m_rubberBand->isEnabled() && event->button() == Qt::LeftButton) { | |
121 | if(d_ptr->m_rubberBand && d_ptr->m_rubberBand->isEnabled() && event->button() == Qt::LeftButton) { |
|
121 | ||
122 |
|
122 | int padding = d_ptr->m_chart->margins().top(); | ||
123 | int padding = d_ptr->m_chart->margins().top(); |
|
123 | QRect rect(padding, padding, width() - 2 * padding, height() - 2 * padding); | |
124 | QRect rect(padding, padding, width() - 2 * padding, height() - 2 * padding); |
|
124 | ||
125 |
|
125 | if (rect.contains(event->pos())) { | ||
126 | if (rect.contains(event->pos())) { |
|
126 | d_ptr->m_rubberBandOrigin = event->pos(); | |
127 | d_ptr->m_rubberBandOrigin = event->pos(); |
|
127 | d_ptr->m_rubberBand->setGeometry(QRect(d_ptr->m_rubberBandOrigin, QSize())); | |
128 | d_ptr->m_rubberBand->setGeometry(QRect(d_ptr->m_rubberBandOrigin, QSize())); |
|
128 | d_ptr->m_rubberBand->show(); | |
129 | d_ptr->m_rubberBand->show(); |
|
129 | event->accept(); | |
130 | event->accept(); |
|
130 | } | |
131 |
|
|
131 | } | |
132 | } |
|
132 | else { | |
133 | else { |
|
133 | QGraphicsView::mousePressEvent(event); | |
134 | QGraphicsView::mousePressEvent(event); |
|
134 | } | |
135 | } |
|
135 | } | |
136 | } |
|
136 | ||
137 |
|
137 | /*! | ||
138 | /*! |
|
138 | If RubberBand rectange specification has been initiated in pressEvent then \a event data is used to update RubberBand geometry. | |
139 | If RubberBand rectange specification has been initiated in pressEvent then \a event data is used to update RubberBand geometry. |
|
139 | In other case the defualt QGraphicsView::mouseMoveEvent implementation is called. | |
140 | In other case the defualt QGraphicsView::mouseMoveEvent implementation is called. |
|
140 | */ | |
141 | */ |
|
141 | void QChartView::mouseMoveEvent(QMouseEvent *event) | |
142 | void QChartView::mouseMoveEvent(QMouseEvent *event) |
|
142 | { | |
143 | { |
|
143 | if(d_ptr->m_rubberBand && d_ptr->m_rubberBand->isVisible()) { | |
144 | if(d_ptr->m_rubberBand && d_ptr->m_rubberBand->isVisible()) { |
|
144 | QRectF margins = d_ptr->m_chart->margins(); | |
145 |
QRectF |
|
145 | QRectF geometry = d_ptr->m_chart->geometry(); | |
146 | QRectF geometry = d_ptr->m_chart->geometry(); |
|
146 | QRectF rect =geometry.adjusted(margins.left(),margins.top(),-margins.right(),-margins.bottom()); | |
147 | QRectF rect =geometry.adjusted(margins.left(),margins.top(),-margins.right(),-margins.bottom()); |
|
147 | int width = event->pos().x() - d_ptr->m_rubberBandOrigin.x(); | |
148 |
int |
|
148 | int height = event->pos().y() - d_ptr->m_rubberBandOrigin.y(); | |
149 | int height = event->pos().y() - d_ptr->m_rubberBandOrigin.y(); |
|
149 | if (!d_ptr->m_rubberBandFlags.testFlag(VerticalRubberBand)) { | |
150 | if (!d_ptr->m_rubberBandFlags.testFlag(VerticalRubberBand)) { |
|
150 | d_ptr->m_rubberBandOrigin.setY(rect.top()); | |
151 | d_ptr->m_rubberBandOrigin.setY(rect.top()); |
|
151 | height = rect.height(); | |
152 | height = rect.height(); |
|
152 | } | |
153 | } |
|
153 | if (!d_ptr->m_rubberBandFlags.testFlag(HorizonalRubberBand)) { | |
154 | if (!d_ptr->m_rubberBandFlags.testFlag(HorizonalRubberBand)) { |
|
154 | d_ptr->m_rubberBandOrigin.setX(rect.left()); | |
155 | d_ptr->m_rubberBandOrigin.setX(rect.left()); |
|
155 | width= rect.width(); | |
156 | width= rect.width(); |
|
156 | } | |
157 | } |
|
157 | d_ptr->m_rubberBand->setGeometry(QRect(d_ptr->m_rubberBandOrigin.x(),d_ptr->m_rubberBandOrigin.y(), width,height).normalized()); | |
158 | d_ptr->m_rubberBand->setGeometry(QRect(d_ptr->m_rubberBandOrigin.x(),d_ptr->m_rubberBandOrigin.y(), width,height).normalized()); |
|
158 | } | |
159 | } |
|
159 | else { | |
160 | else { |
|
160 | QGraphicsView::mouseMoveEvent(event); | |
161 | QGraphicsView::mouseMoveEvent(event); |
|
161 | } | |
162 | } |
|
162 | } | |
163 | } |
|
163 | ||
164 |
|
164 | /*! | ||
165 | /*! |
|
165 | If left mouse button is release and RubberBand is enabled then \a event is accepted and the view is zoomed in to rect specified by RubberBand | |
166 | If left mouse button is release and RubberBand is enabled then \a event is accepted and the view is zoomed in to rect specified by RubberBand |
|
166 | If it is the right mouse button \a event then RubberBand is dissmissed and zoom is canceled. | |
167 | If it is the right mouse button \a event then RubberBand is dissmissed and zoom is canceled. |
|
167 | */ | |
168 | */ |
|
168 | void QChartView::mouseReleaseEvent(QMouseEvent *event) | |
169 | void QChartView::mouseReleaseEvent(QMouseEvent *event) |
|
169 | { | |
170 | { |
|
170 | if(d_ptr->m_rubberBand) { | |
171 | if(d_ptr->m_rubberBand) { |
|
171 | if (event->button() == Qt::LeftButton && d_ptr->m_rubberBand->isVisible()) { | |
172 | if (event->button() == Qt::LeftButton && d_ptr->m_rubberBand->isVisible()) { |
|
172 | d_ptr->m_rubberBand->hide(); | |
173 |
d_ptr->m_rubberBand-> |
|
173 | QRect rect = d_ptr->m_rubberBand->geometry(); | |
174 |
|
|
174 | d_ptr->m_chart->zoomIn(rect); | |
175 | d_ptr->m_chart->zoomIn(rect); |
|
175 | event->accept(); | |
176 | event->accept(); |
|
176 | } | |
177 | } |
|
177 | ||
178 |
|
178 | if(event->button()==Qt::RightButton){ | ||
179 | if(event->button()==Qt::RightButton){ |
|
179 | d_ptr->m_chart->zoomOut(); | |
180 | d_ptr->m_chart->zoomOut(); |
|
180 | event->accept(); | |
181 | event->accept(); |
|
181 | } | |
182 |
|
|
182 | } | |
183 | } |
|
183 | else { | |
184 | else { |
|
184 | QGraphicsView::mouseReleaseEvent(event); | |
185 | QGraphicsView::mouseReleaseEvent(event); |
|
185 | } | |
186 | } |
|
186 | } | |
187 | } |
|
187 | ||
188 |
|
188 | /*! | ||
189 | /*! |
|
189 | Resizes and updates the chart area using the \a event data | |
190 | Resizes and updates the chart area using the \a event data |
|
190 | */ | |
191 | */ |
|
191 | void QChartView::resizeEvent(QResizeEvent *event) | |
192 | void QChartView::resizeEvent(QResizeEvent *event) |
|
192 | { | |
193 | { |
|
193 | QGraphicsView::resizeEvent(event); | |
194 | QGraphicsView::resizeEvent(event); |
|
194 | d_ptr->m_chart->resize(size()); | |
195 |
d_ptr->m_chart-> |
|
195 | setMinimumSize(d_ptr->m_chart->minimumSize().toSize()); | |
196 |
set |
|
196 | setSceneRect(d_ptr->m_chart->geometry()); | |
197 | setSceneRect(d_ptr->m_chart->geometry()); |
|
197 | } | |
198 | } |
|
198 | ||
199 |
|
199 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
200 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
200 | ||
201 |
|
201 | QChartViewPrivate::QChartViewPrivate(): | ||
202 | QChartViewPrivate::QChartViewPrivate(): |
|
202 | m_scene(0), | |
203 |
m_ |
|
203 | m_chart(0), | |
204 |
m_ |
|
204 | m_presenter(0), | |
205 | m_presenter(0), |
|
205 | m_rubberBand(0), | |
206 | m_rubberBand(0), |
|
206 | m_rubberBandFlags(QChartView::NoRubberBand) | |
207 | m_rubberBandFlags(QChartView::NoRubberBand) |
|
207 | { | |
208 | { |
|
208 | ||
209 |
|
209 | } | ||
210 | } |
|
210 | ||
211 |
|
211 | QChartViewPrivate::~QChartViewPrivate() | ||
212 | QChartViewPrivate::~QChartViewPrivate() |
|
212 | { | |
213 | { |
|
213 | ||
214 |
|
214 | } | ||
215 | } |
|
215 | ||
216 |
|
216 | #include "moc_qchartview.cpp" | ||
217 | #include "moc_qchartview.cpp" |
|
217 | ||
218 |
|
218 | QTCOMMERCIALCHART_END_NAMESPACE | ||
219 | QTCOMMERCIALCHART_END_NAMESPACE |
|
@@ -1,55 +1,56 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 | #ifndef QCHARTVIEW_P_H |
|
30 | #ifndef QCHARTVIEW_P_H | |
31 | #define QCHARTVIEW_P_H |
|
31 | #define QCHARTVIEW_P_H | |
32 |
|
32 | |||
33 | #include "qchartview.h" |
|
33 | #include "qchartview.h" | |
34 |
|
34 | |||
35 | class QGraphicsScene; |
|
35 | class QGraphicsScene; | |
|
36 | class ChartPresenter; | |||
36 |
|
37 | |||
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
38 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
38 |
|
39 | |||
39 | class QChart; |
|
40 | class QChart; | |
40 |
|
41 | |||
41 | struct QChartViewPrivate { |
|
42 | struct QChartViewPrivate { | |
42 |
|
43 | |||
43 | QChartViewPrivate(); |
|
44 | QChartViewPrivate(); | |
44 | ~QChartViewPrivate(); |
|
45 | ~QChartViewPrivate(); | |
45 |
|
46 | |||
46 | QGraphicsScene *m_scene; |
|
47 | QGraphicsScene *m_scene; | |
47 | QChart *m_chart; |
|
48 | QChart *m_chart; | |
48 | ChartPresenter *m_presenter; |
|
49 | ChartPresenter *m_presenter; | |
49 | QPoint m_rubberBandOrigin; |
|
50 | QPoint m_rubberBandOrigin; | |
50 | QRubberBand *m_rubberBand; |
|
51 | QRubberBand *m_rubberBand; | |
51 | QChartView::RubberBands m_rubberBandFlags; |
|
52 | QChartView::RubberBands m_rubberBandFlags; | |
52 | }; |
|
53 | }; | |
53 |
|
54 | |||
54 | QTCOMMERCIALCHART_END_NAMESPACE |
|
55 | QTCOMMERCIALCHART_END_NAMESPACE | |
55 | #endif |
|
56 | #endif |
@@ -1,65 +1,65 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QSERIES_P_H |
|
30 | #ifndef QSERIES_P_H | |
31 |
#define QSERIES_P_H |
|
31 | #define QSERIES_P_H | |
32 |
|
32 | |||
33 | #include "qseries.h" |
|
33 | #include "qseries.h" | |
34 |
|
34 | |||
35 | class QAbstractItemModel; |
|
35 | class QAbstractItemModel; | |
36 |
|
36 | |||
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
38 |
|
38 | |||
39 | class Domain; |
|
39 | class Domain; | |
40 | class ChartPresenter; |
|
40 | class ChartPresenter; | |
41 | class Chart; |
|
41 | class Chart; | |
42 | class LegendMarker; |
|
42 | class LegendMarker; | |
43 | class QLegend; |
|
43 | class QLegend; | |
44 |
|
44 | |||
45 | class QSeriesPrivate : public QObject |
|
45 | class QSeriesPrivate : public QObject | |
46 | { |
|
46 | { | |
47 | public: |
|
47 | public: | |
48 | QSeriesPrivate(QSeries *q); |
|
48 | QSeriesPrivate(QSeries *q); | |
49 | ~QSeriesPrivate(); |
|
49 | ~QSeriesPrivate(); | |
50 |
|
50 | |||
51 | virtual void scaleDomain(Domain& domain) = 0; |
|
51 | virtual void scaleDomain(Domain& domain) = 0; | |
52 | virtual Chart* createGraphics(ChartPresenter* presenter) = 0; |
|
52 | virtual Chart* createGraphics(ChartPresenter* presenter) = 0; | |
53 | virtual QList<LegendMarker*> createLegendMarker(QLegend* legend) = 0; |
|
53 | virtual QList<LegendMarker*> createLegendMarker(QLegend* legend) = 0; | |
54 |
|
54 | |||
55 | protected: |
|
55 | protected: | |
56 | QSeries *q_ptr; |
|
56 | QSeries *q_ptr; | |
57 | QAbstractItemModel *m_model; |
|
57 | QAbstractItemModel *m_model; | |
58 | QString m_name; |
|
58 | QString m_name; | |
59 |
|
59 | |||
60 | friend class QSeries; |
|
60 | friend class QSeries; | |
61 | }; |
|
61 | }; | |
62 |
|
62 | |||
63 | QTCOMMERCIALCHART_END_NAMESPACE |
|
63 | QTCOMMERCIALCHART_END_NAMESPACE | |
64 |
|
64 | |||
65 | #endif |
|
65 | #endif |
@@ -1,52 +1,52 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QSCATTERSERIES_P_H |
|
30 | #ifndef QSCATTERSERIES_P_H | |
31 |
#define QSCATTERSERIES_P_H |
|
31 | #define QSCATTERSERIES_P_H | |
32 |
|
32 | |||
33 | #include "qxyseries_p.h" |
|
33 | #include "qxyseries_p.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 | class QScatterSeriesPrivate: public QXYSeriesPrivate |
|
37 | class QScatterSeriesPrivate: public QXYSeriesPrivate | |
38 | { |
|
38 | { | |
39 | public: |
|
39 | public: | |
40 | QScatterSeriesPrivate(QScatterSeries* q); |
|
40 | QScatterSeriesPrivate(QScatterSeries* q); | |
41 | Chart* createGraphics(ChartPresenter* presenter); |
|
41 | Chart* createGraphics(ChartPresenter* presenter); | |
42 |
|
42 | |||
43 | private: |
|
43 | private: | |
44 | QScatterSeries::MarkerShape m_shape; |
|
44 | QScatterSeries::MarkerShape m_shape; | |
45 | qreal m_size; |
|
45 | qreal m_size; | |
46 | Q_DECLARE_PUBLIC(QScatterSeries); |
|
46 | Q_DECLARE_PUBLIC(QScatterSeries); | |
47 |
|
47 | |||
48 | }; |
|
48 | }; | |
49 |
|
49 | |||
50 | QTCOMMERCIALCHART_END_NAMESPACE |
|
50 | QTCOMMERCIALCHART_END_NAMESPACE | |
51 |
|
51 | |||
52 | #endif |
|
52 | #endif |
@@ -1,140 +1,140 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef SCATTER |
|
21 | #ifndef SCATTERCHARTITEM_H | |
22 |
#define SCATTER |
|
22 | #define SCATTERCHARTITEM_H | |
23 |
|
23 | |||
24 | #include "qchartglobal.h" |
|
24 | #include "qchartglobal.h" | |
25 | #include "xychartitem_p.h" |
|
25 | #include "xychartitem_p.h" | |
26 | #include <QGraphicsEllipseItem> |
|
26 | #include <QGraphicsEllipseItem> | |
27 | #include <QPen> |
|
27 | #include <QPen> | |
28 |
|
28 | |||
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
29 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
30 |
|
30 | |||
31 | class QScatterSeries; |
|
31 | class QScatterSeries; | |
32 | class Marker; |
|
32 | class Marker; | |
33 |
|
33 | |||
34 | class ScatterChartItem : public XYChartItem |
|
34 | class ScatterChartItem : public XYChartItem | |
35 | { |
|
35 | { | |
36 | Q_OBJECT |
|
36 | Q_OBJECT | |
37 | public: |
|
37 | public: | |
38 | explicit ScatterChartItem(QScatterSeries *series, ChartPresenter *presenter); |
|
38 | explicit ScatterChartItem(QScatterSeries *series, ChartPresenter *presenter); | |
39 |
|
39 | |||
40 | public: |
|
40 | public: | |
41 | //from QGraphicsItem |
|
41 | //from QGraphicsItem | |
42 | QRectF boundingRect() const; |
|
42 | QRectF boundingRect() const; | |
43 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); |
|
43 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); | |
44 |
|
44 | |||
45 | void setPen(const QPen &pen); |
|
45 | void setPen(const QPen &pen); | |
46 | void setBrush(const QBrush &brush); |
|
46 | void setBrush(const QBrush &brush); | |
47 |
|
47 | |||
48 | void markerSelected(Marker *item); |
|
48 | void markerSelected(Marker *item); | |
49 |
|
49 | |||
50 | public Q_SLOTS: |
|
50 | public Q_SLOTS: | |
51 | void handleUpdated(); |
|
51 | void handleUpdated(); | |
52 |
|
52 | |||
53 | private: |
|
53 | private: | |
54 | void createPoints(int count); |
|
54 | void createPoints(int count); | |
55 | void deletePoints(int count); |
|
55 | void deletePoints(int count); | |
56 |
|
56 | |||
57 | protected: |
|
57 | protected: | |
58 | void setLayout(QVector<QPointF> &points); |
|
58 | void setLayout(QVector<QPointF> &points); | |
59 |
|
59 | |||
60 | private: |
|
60 | private: | |
61 | QScatterSeries *m_series; |
|
61 | QScatterSeries *m_series; | |
62 | QGraphicsItemGroup m_items; |
|
62 | QGraphicsItemGroup m_items; | |
63 | int m_shape; |
|
63 | int m_shape; | |
64 | int m_size; |
|
64 | int m_size; | |
65 | QRectF m_rect; |
|
65 | QRectF m_rect; | |
66 |
|
66 | |||
67 | }; |
|
67 | }; | |
68 |
|
68 | |||
69 |
|
69 | |||
70 | class Marker: public QAbstractGraphicsShapeItem |
|
70 | class Marker: public QAbstractGraphicsShapeItem | |
71 | { |
|
71 | { | |
72 |
|
72 | |||
73 | public: |
|
73 | public: | |
74 |
|
74 | |||
75 | Marker(QAbstractGraphicsShapeItem *item , ScatterChartItem *parent) : QAbstractGraphicsShapeItem(0) ,m_item(item), m_parent(parent), m_index(-1) |
|
75 | Marker(QAbstractGraphicsShapeItem *item , ScatterChartItem *parent) : QAbstractGraphicsShapeItem(0) ,m_item(item), m_parent(parent), m_index(-1) | |
76 | { |
|
76 | { | |
77 | } |
|
77 | } | |
78 |
|
78 | |||
79 | ~Marker() |
|
79 | ~Marker() | |
80 | { |
|
80 | { | |
81 | delete m_item; |
|
81 | delete m_item; | |
82 | } |
|
82 | } | |
83 |
|
83 | |||
84 | void setIndex(int index) |
|
84 | void setIndex(int index) | |
85 | { |
|
85 | { | |
86 | m_index=index; |
|
86 | m_index=index; | |
87 | } |
|
87 | } | |
88 |
|
88 | |||
89 | int index() const |
|
89 | int index() const | |
90 | { |
|
90 | { | |
91 | return m_index; |
|
91 | return m_index; | |
92 | } |
|
92 | } | |
93 |
|
93 | |||
94 | QPainterPath shape() const |
|
94 | QPainterPath shape() const | |
95 | { |
|
95 | { | |
96 | return m_item->shape(); |
|
96 | return m_item->shape(); | |
97 | } |
|
97 | } | |
98 |
|
98 | |||
99 | QRectF boundingRect() const |
|
99 | QRectF boundingRect() const | |
100 | { |
|
100 | { | |
101 | return m_item->boundingRect(); |
|
101 | return m_item->boundingRect(); | |
102 | } |
|
102 | } | |
103 |
|
103 | |||
104 | bool contains(const QPointF &point) const |
|
104 | bool contains(const QPointF &point) const | |
105 | { |
|
105 | { | |
106 | return m_item->contains(point); |
|
106 | return m_item->contains(point); | |
107 | } |
|
107 | } | |
108 |
|
108 | |||
109 | void setPen(const QPen &pen) |
|
109 | void setPen(const QPen &pen) | |
110 | { |
|
110 | { | |
111 | m_item->setPen(pen); |
|
111 | m_item->setPen(pen); | |
112 | } |
|
112 | } | |
113 |
|
113 | |||
114 | void setBrush(const QBrush &brush) |
|
114 | void setBrush(const QBrush &brush) | |
115 | { |
|
115 | { | |
116 | m_item->setBrush(brush); |
|
116 | m_item->setBrush(brush); | |
117 | } |
|
117 | } | |
118 |
|
118 | |||
119 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) |
|
119 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) | |
120 | { |
|
120 | { | |
121 | m_item->paint(painter,option,widget); |
|
121 | m_item->paint(painter,option,widget); | |
122 | } |
|
122 | } | |
123 |
|
123 | |||
124 | protected: |
|
124 | protected: | |
125 |
|
125 | |||
126 | void mousePressEvent(QGraphicsSceneMouseEvent *event) |
|
126 | void mousePressEvent(QGraphicsSceneMouseEvent *event) | |
127 | { |
|
127 | { | |
128 | Q_UNUSED(event) |
|
128 | Q_UNUSED(event) | |
129 | m_parent->markerSelected(this); |
|
129 | m_parent->markerSelected(this); | |
130 | } |
|
130 | } | |
131 |
|
131 | |||
132 | private: |
|
132 | private: | |
133 | QAbstractGraphicsShapeItem* m_item; |
|
133 | QAbstractGraphicsShapeItem* m_item; | |
134 | ScatterChartItem* m_parent; |
|
134 | ScatterChartItem* m_parent; | |
135 | int m_index; |
|
135 | int m_index; | |
136 | }; |
|
136 | }; | |
137 |
|
137 | |||
138 | QTCOMMERCIALCHART_END_NAMESPACE |
|
138 | QTCOMMERCIALCHART_END_NAMESPACE | |
139 |
|
139 | |||
140 | #endif // SCATTERPRESENTER_H |
|
140 | #endif // SCATTERPRESENTER_H |
@@ -1,106 +1,106 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef SCROLLER_P_H |
|
30 | #ifndef SCROLLER_P_H | |
31 |
#define SCROLLER_P_H |
|
31 | #define SCROLLER_P_H | |
32 |
|
32 | |||
33 | #include "qchartglobal.h" |
|
33 | #include "qchartglobal.h" | |
34 | #include <QBasicTimer> |
|
34 | #include <QBasicTimer> | |
35 | #include <QTime> |
|
35 | #include <QTime> | |
36 | #include <QPointF> |
|
36 | #include <QPointF> | |
37 |
|
37 | |||
38 | class QGraphicsSceneMouseEvent; |
|
38 | class QGraphicsSceneMouseEvent; | |
39 |
|
39 | |||
40 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
40 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
41 |
|
41 | |||
42 | class Scroller; |
|
42 | class Scroller; | |
43 | class QLegend; |
|
43 | class QLegend; | |
44 |
|
44 | |||
45 | class ScrollTicker : public QObject |
|
45 | class ScrollTicker : public QObject | |
46 | { |
|
46 | { | |
47 | public: |
|
47 | public: | |
48 | ScrollTicker(Scroller *scroller,QObject *parent=0); |
|
48 | ScrollTicker(Scroller *scroller,QObject *parent=0); | |
49 | void start(int interval); |
|
49 | void start(int interval); | |
50 | void stop(); |
|
50 | void stop(); | |
51 | protected: |
|
51 | protected: | |
52 | void timerEvent(QTimerEvent *event); |
|
52 | void timerEvent(QTimerEvent *event); | |
53 |
|
53 | |||
54 | private: |
|
54 | private: | |
55 | QBasicTimer m_timer; |
|
55 | QBasicTimer m_timer; | |
56 | Scroller *m_scroller; |
|
56 | Scroller *m_scroller; | |
57 | }; |
|
57 | }; | |
58 |
|
58 | |||
59 | class Scroller |
|
59 | class Scroller | |
60 | { |
|
60 | { | |
61 | public: |
|
61 | public: | |
62 | enum State { |
|
62 | enum State { | |
63 | Idle, |
|
63 | Idle, | |
64 | Pressed, |
|
64 | Pressed, | |
65 | Move, |
|
65 | Move, | |
66 | Scroll, |
|
66 | Scroll, | |
67 | Stop |
|
67 | Stop | |
68 | }; |
|
68 | }; | |
69 |
|
69 | |||
70 | Scroller(); |
|
70 | Scroller(); | |
71 | virtual ~Scroller(); |
|
71 | virtual ~Scroller(); | |
72 |
|
72 | |||
73 | virtual void setOffset(const QPointF& point) = 0; |
|
73 | virtual void setOffset(const QPointF& point) = 0; | |
74 | virtual QPointF offset() const = 0; |
|
74 | virtual QPointF offset() const = 0; | |
75 |
|
75 | |||
76 | public: |
|
76 | public: | |
77 | void scrollTick(); |
|
77 | void scrollTick(); | |
78 |
|
78 | |||
79 |
|
79 | |||
80 | public: |
|
80 | public: | |
81 | void mousePressEvent(QGraphicsSceneMouseEvent* event); |
|
81 | void mousePressEvent(QGraphicsSceneMouseEvent* event); | |
82 | void mouseMoveEvent(QGraphicsSceneMouseEvent* event); |
|
82 | void mouseMoveEvent(QGraphicsSceneMouseEvent* event); | |
83 | void mouseReleaseEvent(QGraphicsSceneMouseEvent* event); |
|
83 | void mouseReleaseEvent(QGraphicsSceneMouseEvent* event); | |
84 |
|
84 | |||
85 | private: |
|
85 | private: | |
86 | void calculateSpeed(const QPointF& position); |
|
86 | void calculateSpeed(const QPointF& position); | |
87 | void lowerSpeed(QPointF& speed,qreal maxSpeed=100); |
|
87 | void lowerSpeed(QPointF& speed,qreal maxSpeed=100); | |
88 |
|
88 | |||
89 | private: |
|
89 | private: | |
90 | ScrollTicker m_ticker; |
|
90 | ScrollTicker m_ticker; | |
91 | State m_state; |
|
91 | State m_state; | |
92 | QTime m_timeStamp; |
|
92 | QTime m_timeStamp; | |
93 | QPointF m_press; |
|
93 | QPointF m_press; | |
94 | QPointF m_offset; |
|
94 | QPointF m_offset; | |
95 | QPointF m_speed; |
|
95 | QPointF m_speed; | |
96 | QPointF m_distance; |
|
96 | QPointF m_distance; | |
97 | QPointF m_fraction; |
|
97 | QPointF m_fraction; | |
98 | int m_moveThreshold; |
|
98 | int m_moveThreshold; | |
99 | int m_timeTreshold; |
|
99 | int m_timeTreshold; | |
100 |
|
100 | |||
101 |
|
101 | |||
102 | }; |
|
102 | }; | |
103 |
|
103 | |||
104 | QTCOMMERCIALCHART_END_NAMESPACE |
|
104 | QTCOMMERCIALCHART_END_NAMESPACE | |
105 |
|
105 | |||
106 | #endif /* SCROLLER_P_H_ */ |
|
106 | #endif /* SCROLLER_P_H_ */ |
@@ -1,57 +1,57 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QSPLINESERIES_P_H |
|
30 | #ifndef QSPLINESERIES_P_H | |
31 |
#define QSPLINESERIES_P_H |
|
31 | #define QSPLINESERIES_P_H | |
32 |
|
32 | |||
33 | #include "qlineseries_p.h" |
|
33 | #include "qlineseries_p.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 |
|
37 | |||
38 | class QSplineSeriesPrivate: public QLineSeriesPrivate |
|
38 | class QSplineSeriesPrivate: public QLineSeriesPrivate | |
39 | { |
|
39 | { | |
40 | Q_OBJECT |
|
40 | Q_OBJECT | |
41 | public: |
|
41 | public: | |
42 | Chart* createGraphics(ChartPresenter* presenter); |
|
42 | Chart* createGraphics(ChartPresenter* presenter); | |
43 | QSplineSeriesPrivate(QSplineSeries* q); |
|
43 | QSplineSeriesPrivate(QSplineSeries* q); | |
44 | void calculateControlPoints(); |
|
44 | void calculateControlPoints(); | |
45 | QList<qreal> getFirstControlPoints(QList<qreal> rhs); |
|
45 | QList<qreal> getFirstControlPoints(QList<qreal> rhs); | |
46 |
|
46 | |||
47 | public Q_SLOTS: |
|
47 | public Q_SLOTS: | |
48 | void updateControlPoints(); |
|
48 | void updateControlPoints(); | |
49 | public: |
|
49 | public: | |
50 | QList<QPointF> m_controlPoints; |
|
50 | QList<QPointF> m_controlPoints; | |
51 | private: |
|
51 | private: | |
52 | Q_DECLARE_PUBLIC(QSplineSeries) |
|
52 | Q_DECLARE_PUBLIC(QSplineSeries) | |
53 | }; |
|
53 | }; | |
54 |
|
54 | |||
55 | QTCOMMERCIALCHART_END_NAMESPACE |
|
55 | QTCOMMERCIALCHART_END_NAMESPACE | |
56 |
|
56 | |||
57 | #endif |
|
57 | #endif |
@@ -1,61 +1,61 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTTHEMEBLUE |
|
21 | #ifndef CHARTTHEMEBLUEICY_P_H | |
22 |
#define CHARTTHEMEBLUE |
|
22 | #define CHARTTHEMEBLUEICY_P_H | |
23 |
|
23 | |||
24 | #include "charttheme_p.h" |
|
24 | #include "charttheme_p.h" | |
25 |
|
25 | |||
26 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
26 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
27 |
|
27 | |||
28 | class ChartThemeBlueIcy: public ChartTheme |
|
28 | class ChartThemeBlueIcy: public ChartTheme | |
29 | { |
|
29 | { | |
30 | public: |
|
30 | public: | |
31 | ChartThemeBlueIcy() : ChartTheme(QChart::ChartThemeBlueIcy) |
|
31 | ChartThemeBlueIcy() : ChartTheme(QChart::ChartThemeBlueIcy) | |
32 | { |
|
32 | { | |
33 | // Series colors |
|
33 | // Series colors | |
34 | m_seriesColors << QRgb(0x3daeda); |
|
34 | m_seriesColors << QRgb(0x3daeda); | |
35 | m_seriesColors << QRgb(0x2685bf); |
|
35 | m_seriesColors << QRgb(0x2685bf); | |
36 | m_seriesColors << QRgb(0x0c2673); |
|
36 | m_seriesColors << QRgb(0x0c2673); | |
37 | m_seriesColors << QRgb(0x5f3dba); |
|
37 | m_seriesColors << QRgb(0x5f3dba); | |
38 | m_seriesColors << QRgb(0x2fa3b4); |
|
38 | m_seriesColors << QRgb(0x2fa3b4); | |
39 | generateSeriesGradients(); |
|
39 | generateSeriesGradients(); | |
40 |
|
40 | |||
41 | // Background |
|
41 | // Background | |
42 | QLinearGradient backgroundGradient(0.5, 0.0, 0.5, 1.0); |
|
42 | QLinearGradient backgroundGradient(0.5, 0.0, 0.5, 1.0); | |
43 | backgroundGradient.setColorAt(0.0, QRgb(0xffffff)); |
|
43 | backgroundGradient.setColorAt(0.0, QRgb(0xffffff)); | |
44 | backgroundGradient.setColorAt(1.0, QRgb(0xffffff)); |
|
44 | backgroundGradient.setColorAt(1.0, QRgb(0xffffff)); | |
45 | backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); |
|
45 | backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); | |
46 | m_chartBackgroundGradient = backgroundGradient; |
|
46 | m_chartBackgroundGradient = backgroundGradient; | |
47 |
|
47 | |||
48 | // Axes and other |
|
48 | // Axes and other | |
49 | m_titleBrush = QBrush(QRgb(0x404044)); |
|
49 | m_titleBrush = QBrush(QRgb(0x404044)); | |
50 | m_axisLinePen = QPen(QRgb(0xd6d6d6)); |
|
50 | m_axisLinePen = QPen(QRgb(0xd6d6d6)); | |
51 | m_axisLinePen.setWidth(2); |
|
51 | m_axisLinePen.setWidth(2); | |
52 | m_axisLabelBrush = QBrush(QRgb(0x404044)); |
|
52 | m_axisLabelBrush = QBrush(QRgb(0x404044)); | |
53 | m_gridLinePen = QPen(QRgb(0xe2e2e2)); |
|
53 | m_gridLinePen = QPen(QRgb(0xe2e2e2)); | |
54 | m_gridLinePen.setWidth(1); |
|
54 | m_gridLinePen.setWidth(1); | |
55 | m_backgroundShades = BackgroundShadesNone; |
|
55 | m_backgroundShades = BackgroundShadesNone; | |
56 | } |
|
56 | } | |
57 | }; |
|
57 | }; | |
58 |
|
58 | |||
59 | QTCOMMERCIALCHART_END_NAMESPACE |
|
59 | QTCOMMERCIALCHART_END_NAMESPACE | |
60 |
|
60 | |||
61 | #endif |
|
61 | #endif |
@@ -1,60 +1,60 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef CHARTTHEME |
|
21 | #ifndef CHARTTHEMELIGHT_P_H | |
22 |
#define CHARTTHEME |
|
22 | #define CHARTTHEMELIGHT_P_H | |
23 |
|
23 | |||
24 | #include "charttheme_p.h" |
|
24 | #include "charttheme_p.h" | |
25 |
|
25 | |||
26 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
26 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
27 |
|
27 | |||
28 | class ChartThemeLight: public ChartTheme |
|
28 | class ChartThemeLight: public ChartTheme | |
29 | { |
|
29 | { | |
30 | public: |
|
30 | public: | |
31 | ChartThemeLight() : ChartTheme(QChart::ChartThemeLight) |
|
31 | ChartThemeLight() : ChartTheme(QChart::ChartThemeLight) | |
32 | { |
|
32 | { | |
33 | // Series colors |
|
33 | // Series colors | |
34 | m_seriesColors << QRgb(0x209fdf); |
|
34 | m_seriesColors << QRgb(0x209fdf); | |
35 | m_seriesColors << QRgb(0x99ca53); |
|
35 | m_seriesColors << QRgb(0x99ca53); | |
36 | m_seriesColors << QRgb(0xf6a625); |
|
36 | m_seriesColors << QRgb(0xf6a625); | |
37 | m_seriesColors << QRgb(0x6d5fd5); |
|
37 | m_seriesColors << QRgb(0x6d5fd5); | |
38 | m_seriesColors << QRgb(0xbf593e); |
|
38 | m_seriesColors << QRgb(0xbf593e); | |
39 | generateSeriesGradients(); |
|
39 | generateSeriesGradients(); | |
40 |
|
40 | |||
41 | // Background |
|
41 | // Background | |
42 | QLinearGradient backgroundGradient; |
|
42 | QLinearGradient backgroundGradient; | |
43 | backgroundGradient.setColorAt(0.0, QRgb(0xffffff)); |
|
43 | backgroundGradient.setColorAt(0.0, QRgb(0xffffff)); | |
44 | backgroundGradient.setColorAt(1.0, QRgb(0xffffff)); |
|
44 | backgroundGradient.setColorAt(1.0, QRgb(0xffffff)); | |
45 | backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); |
|
45 | backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode); | |
46 | m_chartBackgroundGradient = backgroundGradient; |
|
46 | m_chartBackgroundGradient = backgroundGradient; | |
47 |
|
47 | |||
48 | // Axes and other |
|
48 | // Axes and other | |
49 | m_axisLinePen = QPen(0xd6d6d6); |
|
49 | m_axisLinePen = QPen(0xd6d6d6); | |
50 | m_axisLinePen.setWidth(1); |
|
50 | m_axisLinePen.setWidth(1); | |
51 | m_axisLabelBrush = QBrush(QRgb(0x404044)); |
|
51 | m_axisLabelBrush = QBrush(QRgb(0x404044)); | |
52 | m_gridLinePen = QPen(QRgb(0xe2e2e2)); |
|
52 | m_gridLinePen = QPen(QRgb(0xe2e2e2)); | |
53 | m_gridLinePen.setWidth(1); |
|
53 | m_gridLinePen.setWidth(1); | |
54 | m_backgroundShades = BackgroundShadesNone; |
|
54 | m_backgroundShades = BackgroundShadesNone; | |
55 | } |
|
55 | } | |
56 | }; |
|
56 | }; | |
57 |
|
57 | |||
58 | QTCOMMERCIALCHART_END_NAMESPACE |
|
58 | QTCOMMERCIALCHART_END_NAMESPACE | |
59 |
|
59 | |||
60 | #endif |
|
60 | #endif |
@@ -1,97 +1,97 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 |
#ifndef QXYSERIES_H |
|
21 | #ifndef QXYSERIES_H | |
22 |
#define QXYSERIES_H |
|
22 | #define QXYSERIES_H | |
23 |
|
23 | |||
24 | #include <qchartglobal.h> |
|
24 | #include <qchartglobal.h> | |
25 | #include <qseries.h> |
|
25 | #include <qseries.h> | |
26 | #include <QPen> |
|
26 | #include <QPen> | |
27 | #include <QBrush> |
|
27 | #include <QBrush> | |
28 |
|
28 | |||
29 | class QModelIndex; |
|
29 | class QModelIndex; | |
30 |
|
30 | |||
31 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
31 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
32 |
|
32 | |||
33 | class QXYSeriesPrivate; |
|
33 | class QXYSeriesPrivate; | |
34 |
|
34 | |||
35 | class QTCOMMERCIALCHART_EXPORT QXYSeries : public QSeries |
|
35 | class QTCOMMERCIALCHART_EXPORT QXYSeries : public QSeries | |
36 | { |
|
36 | { | |
37 | Q_OBJECT |
|
37 | Q_OBJECT | |
38 | protected: |
|
38 | protected: | |
39 | explicit QXYSeries(QXYSeriesPrivate &d,QObject *parent = 0); |
|
39 | explicit QXYSeries(QXYSeriesPrivate &d,QObject *parent = 0); | |
40 | ~QXYSeries(); |
|
40 | ~QXYSeries(); | |
41 |
|
41 | |||
42 | public: |
|
42 | public: | |
43 | void append(qreal x, qreal y); |
|
43 | void append(qreal x, qreal y); | |
44 | void append(const QPointF &point); |
|
44 | void append(const QPointF &point); | |
45 | void append(const QList<QPointF> points); |
|
45 | void append(const QList<QPointF> points); | |
46 | void replace(qreal x,qreal y); |
|
46 | void replace(qreal x,qreal y); | |
47 | void replace(const QPointF &point); |
|
47 | void replace(const QPointF &point); | |
48 | void remove(qreal x); |
|
48 | void remove(qreal x); | |
49 | void remove(qreal x, qreal y); |
|
49 | void remove(qreal x, qreal y); | |
50 | void remove(const QPointF &point); |
|
50 | void remove(const QPointF &point); | |
51 | void removeAll(); |
|
51 | void removeAll(); | |
52 |
|
52 | |||
53 | int count() const; |
|
53 | int count() const; | |
54 | qreal x(int pos) const; |
|
54 | qreal x(int pos) const; | |
55 | qreal y(int pos) const; |
|
55 | qreal y(int pos) const; | |
56 | QList<QPointF> data(); |
|
56 | QList<QPointF> data(); | |
57 |
|
57 | |||
58 | QXYSeries& operator << (const QPointF &point); |
|
58 | QXYSeries& operator << (const QPointF &point); | |
59 | QXYSeries& operator << (const QList<QPointF> points); |
|
59 | QXYSeries& operator << (const QList<QPointF> points); | |
60 |
|
60 | |||
61 | void setPen(const QPen &pen); |
|
61 | void setPen(const QPen &pen); | |
62 | QPen pen() const; |
|
62 | QPen pen() const; | |
63 |
|
63 | |||
64 | void setBrush(const QBrush &brush); |
|
64 | void setBrush(const QBrush &brush); | |
65 | QBrush brush() const; |
|
65 | QBrush brush() const; | |
66 |
|
66 | |||
67 | void setPointsVisible(bool visible); |
|
67 | void setPointsVisible(bool visible); | |
68 | bool pointsVisible() const; |
|
68 | bool pointsVisible() const; | |
69 |
|
69 | |||
70 | bool setModel(QAbstractItemModel *model); |
|
70 | bool setModel(QAbstractItemModel *model); | |
71 |
|
71 | |||
72 | virtual void setModelMapping(int modelX, int modelY, Qt::Orientation orientation = Qt::Vertical); |
|
72 | virtual void setModelMapping(int modelX, int modelY, Qt::Orientation orientation = Qt::Vertical); | |
73 | virtual void setModelMappingRange(int first, int count = 0); |
|
73 | virtual void setModelMappingRange(int first, int count = 0); | |
74 | int mapFirst() const; |
|
74 | int mapFirst() const; | |
75 | int mapCount() const; |
|
75 | int mapCount() const; | |
76 |
|
76 | |||
77 | private Q_SLOTS: |
|
77 | private Q_SLOTS: | |
78 | void modelUpdated(QModelIndex topLeft, QModelIndex bottomRight); |
|
78 | void modelUpdated(QModelIndex topLeft, QModelIndex bottomRight); | |
79 | void modelDataAboutToBeAdded(QModelIndex parent, int start, int end); |
|
79 | void modelDataAboutToBeAdded(QModelIndex parent, int start, int end); | |
80 | void modelDataAdded(QModelIndex parent, int start, int end); |
|
80 | void modelDataAdded(QModelIndex parent, int start, int end); | |
81 | void modelDataAboutToBeRemoved(QModelIndex parent, int start, int end); |
|
81 | void modelDataAboutToBeRemoved(QModelIndex parent, int start, int end); | |
82 | void modelDataRemoved(QModelIndex parent, int start, int end); |
|
82 | void modelDataRemoved(QModelIndex parent, int start, int end); | |
83 |
|
83 | |||
84 | Q_SIGNALS: |
|
84 | Q_SIGNALS: | |
85 | void clicked(const QPointF &point); |
|
85 | void clicked(const QPointF &point); | |
86 | void selected(); |
|
86 | void selected(); | |
87 |
|
87 | |||
88 | private: |
|
88 | private: | |
89 | Q_DECLARE_PRIVATE(QXYSeries); |
|
89 | Q_DECLARE_PRIVATE(QXYSeries); | |
90 | Q_DISABLE_COPY(QXYSeries); |
|
90 | Q_DISABLE_COPY(QXYSeries); | |
91 | friend class XYLegendMarker; |
|
91 | friend class XYLegendMarker; | |
92 | friend class XYChartItem; |
|
92 | friend class XYChartItem; | |
93 | }; |
|
93 | }; | |
94 |
|
94 | |||
95 | QTCOMMERCIALCHART_END_NAMESPACE |
|
95 | QTCOMMERCIALCHART_END_NAMESPACE | |
96 |
|
96 | |||
97 | #endif |
|
97 | #endif |
@@ -1,79 +1,79 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | // W A R N I N G |
|
21 | // W A R N I N G | |
22 | // ------------- |
|
22 | // ------------- | |
23 | // |
|
23 | // | |
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
25 | // implementation detail. This header file may change from version to |
|
25 | // implementation detail. This header file may change from version to | |
26 | // version without notice, or even be removed. |
|
26 | // version without notice, or even be removed. | |
27 | // |
|
27 | // | |
28 | // We mean it. |
|
28 | // We mean it. | |
29 |
|
29 | |||
30 |
#ifndef QXYSERIES_P_H |
|
30 | #ifndef QXYSERIES_P_H | |
31 |
#define QXYSERIES_P_H |
|
31 | #define QXYSERIES_P_H | |
32 |
|
32 | |||
33 | #include "qseries_p.h" |
|
33 | #include "qseries_p.h" | |
34 |
|
34 | |||
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
36 |
|
36 | |||
37 | class QXYSeries; |
|
37 | class QXYSeries; | |
38 |
|
38 | |||
39 | class QXYSeriesPrivate: public QSeriesPrivate |
|
39 | class QXYSeriesPrivate: public QSeriesPrivate | |
40 | { |
|
40 | { | |
41 | Q_OBJECT |
|
41 | Q_OBJECT | |
42 |
|
42 | |||
43 | public: |
|
43 | public: | |
44 | QXYSeriesPrivate(QXYSeries* q); |
|
44 | QXYSeriesPrivate(QXYSeries* q); | |
45 |
|
45 | |||
46 | void scaleDomain(Domain& domain); |
|
46 | void scaleDomain(Domain& domain); | |
47 | QList<LegendMarker*> createLegendMarker(QLegend* legend); |
|
47 | QList<LegendMarker*> createLegendMarker(QLegend* legend); | |
48 |
|
48 | |||
49 | Q_SIGNALS: |
|
49 | Q_SIGNALS: | |
50 | void updated(); |
|
50 | void updated(); | |
51 | void pointReplaced(int index); |
|
51 | void pointReplaced(int index); | |
52 | void pointRemoved(int index); |
|
52 | void pointRemoved(int index); | |
53 | void pointAdded(int index); |
|
53 | void pointAdded(int index); | |
54 |
|
54 | |||
55 | protected: |
|
55 | protected: | |
56 | QVector<qreal> m_x; |
|
56 | QVector<qreal> m_x; | |
57 | QVector<qreal> m_y; |
|
57 | QVector<qreal> m_y; | |
58 |
|
58 | |||
59 | QPen m_pen; |
|
59 | QPen m_pen; | |
60 | QBrush m_brush; |
|
60 | QBrush m_brush; | |
61 |
|
61 | |||
62 | int m_mapX; |
|
62 | int m_mapX; | |
63 | int m_mapY; |
|
63 | int m_mapY; | |
64 | int m_mapFirst; |
|
64 | int m_mapFirst; | |
65 | int m_mapCount; |
|
65 | int m_mapCount; | |
66 | bool m_mapLimited; |
|
66 | bool m_mapLimited; | |
67 | Qt::Orientation m_mapOrientation; |
|
67 | Qt::Orientation m_mapOrientation; | |
68 | int tempItemsRemoved; |
|
68 | int tempItemsRemoved; | |
69 | bool m_pointsVisible; |
|
69 | bool m_pointsVisible; | |
70 |
|
70 | |||
71 | private: |
|
71 | private: | |
72 | Q_DECLARE_PUBLIC(QXYSeries); |
|
72 | Q_DECLARE_PUBLIC(QXYSeries); | |
73 | friend class QScatterSeries; |
|
73 | friend class QScatterSeries; | |
74 |
|
74 | |||
75 | }; |
|
75 | }; | |
76 |
|
76 | |||
77 | QTCOMMERCIALCHART_END_NAMESPACE |
|
77 | QTCOMMERCIALCHART_END_NAMESPACE | |
78 |
|
78 | |||
79 | #endif |
|
79 | #endif |
General Comments 0
You need to be logged in to leave comments.
Login now