1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4// W A R N I N G
5// -------------
6//
7// This file is not part of the QtGraphs API. It exists purely as an
8// implementation detail. This header file may change from version to
9// version without notice, or even be removed.
10//
11// We mean it.
12#ifndef QBARMODELMAPPER_P_H
13#define QBARMODELMAPPER_P_H
14
15#include <QtGraphs/QBarModelMapper>
16#include <QtGraphs/QBarSet>
17#include <private/qabstractitemmodel_p.h>
18#include <private/qobject_p.h>
19
20QT_BEGIN_NAMESPACE
21
22class QAbstractItemModel;
23
24class QBarModelMapperPrivate : public QObjectPrivate
25{
26 Q_DECLARE_PUBLIC(QBarModelMapper)
27public:
28 QBarModelMapperPrivate();
29 ~QBarModelMapperPrivate() override;
30
31protected:
32 QModelIndex barModelIndex(qsizetype barSection, qsizetype posInBar);
33 void blockSeriesSignals(const bool block = true);
34 void blockModelSignals(const bool block = true);
35 QBarSet *barSet(QModelIndex index);
36 void insertData(qsizetype start, qsizetype end);
37 void removeData(qsizetype start, qsizetype end);
38
39private:
40 QAbstractItemModel *m_model = nullptr;
41 QBarSeries *m_series = nullptr;
42 QList<QBarSet *> m_barSets;
43
44 qsizetype m_firstBarSetSection = -1;
45 qsizetype m_lastBarSetSection = -1;
46
47 qsizetype m_count = -1;
48 qsizetype m_first = 0;
49 Qt::Orientation m_orientation = Qt::Vertical;
50 bool m_seriesSignalsBlock = false;
51 bool m_modelSignalsBlock = false;
52
53private Q_SLOTS:
54 void initializeBarsFromModel();
55
56 // for the model
57 void modelUpdated(QModelIndex topLeft, QModelIndex bottomRight);
58 void modelHeaderDataUpdated(Qt::Orientation orientation, qsizetype first, qsizetype last);
59 void modelRowsAdded(QModelIndex parent, qsizetype start, qsizetype end);
60 void modelRowsRemoved(QModelIndex parent, qsizetype start, qsizetype end);
61 void modelColumnsAdded(QModelIndex parent, qsizetype start, qsizetype end);
62 void modelColumnsRemoved(QModelIndex parent, qsizetype start, qsizetype end);
63 void handleModelDestroyed();
64
65 // for the series
66 void barSetsAdded(const QList<QBarSet *> &sets);
67 void barSetsRemoved(const QList<QBarSet *> &sets);
68 void valuesRemoved(qsizetype index, qsizetype count);
69 void handleSeriesDestroyed();
70
71private:
72 void handleValuesAdded(QBarSet *set, qsizetype index, qsizetype count);
73 void handleBarLabelChanged(QBarSet *set);
74 void handleBarValueChanged(QBarSet *set, qsizetype index);
75
76 Q_DISABLE_COPY_MOVE(QBarModelMapperPrivate)
77};
78
79QT_END_NAMESPACE
80
81#endif // QBARMODELMAPPER_P_H
82

Provided by KDAB

Privacy Policy
Learn Advanced QML with KDAB
Find out more

source code of qtgraphs/src/graphs2d/barchart/qbarmodelmapper_p.h