1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Charts module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30// W A R N I N G
31// -------------
32//
33// This file is not part of the Qt Chart API. It exists purely as an
34// implementation detail. This header file may change from version to
35// version without notice, or even be removed.
36//
37// We mean it.
38
39#ifndef QCANDLESTICKMODELMAPPER_P_H
40#define QCANDLESTICKMODELMAPPER_P_H
41
42#include <QtCharts/QCandlestickModelMapper>
43#include <QtCharts/private/qchartglobal_p.h>
44#include <QtCore/QObject>
45
46QT_BEGIN_NAMESPACE
47class QModelIndex;
48QT_END_NAMESPACE
49
50QT_CHARTS_BEGIN_NAMESPACE
51
52class QCandlestickSet;
53
54class Q_CHARTS_PRIVATE_EXPORT QCandlestickModelMapperPrivate : public QObject
55{
56 Q_OBJECT
57
58public:
59 explicit QCandlestickModelMapperPrivate(QCandlestickModelMapper *q);
60
61Q_SIGNALS:
62 void timestampChanged();
63 void openChanged();
64 void highChanged();
65 void lowChanged();
66 void closeChanged();
67 void firstSetSectionChanged();
68 void lastSetSectionChanged();
69
70private Q_SLOTS:
71 void initializeCandlestickFromModel();
72
73 // for the model
74 void modelDataUpdated(QModelIndex topLeft, QModelIndex bottomRight);
75 void modelHeaderDataUpdated(Qt::Orientation orientation, int first, int last);
76 void modelRowsInserted(QModelIndex parent, int start, int end);
77 void modelRowsRemoved(QModelIndex parent, int start, int end);
78 void modelColumnsInserted(QModelIndex parent, int start, int end);
79 void modelColumnsRemoved(QModelIndex parent, int start, int end);
80 void modelDestroyed();
81
82 // for the series
83 void candlestickSetsAdded(const QList<QCandlestickSet *> &sets);
84 void candlestickSetsRemoved(const QList<QCandlestickSet *> &sets);
85 void candlestickSetChanged();
86 void seriesDestroyed();
87
88private:
89 QCandlestickSet *candlestickSet(QModelIndex index);
90 QModelIndex candlestickModelIndex(int section, int pos);
91 void insertData(int start, int end);
92 void removeData(int start, int end);
93 void blockModelSignals(bool block = true);
94 void blockSeriesSignals(bool block = true);
95
96private:
97 QAbstractItemModel *m_model;
98 QCandlestickSeries *m_series;
99 int m_timestamp;
100 int m_open;
101 int m_high;
102 int m_low;
103 int m_close;
104 int m_firstSetSection;
105 int m_lastSetSection;
106 QList<QCandlestickSet *> m_sets;
107 bool m_modelSignalsBlock;
108 bool m_seriesSignalsBlock;
109
110private:
111 QCandlestickModelMapper *q_ptr;
112 Q_DECLARE_PUBLIC(QCandlestickModelMapper)
113};
114
115QT_CHARTS_END_NAMESPACE
116
117#endif // QCANDLESTICKMODELMAPPER_P_H
118

source code of qtcharts/src/charts/candlestickchart/qcandlestickmodelmapper_p.h