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 QXYMODELMAPPER_P_H
13#define QXYMODELMAPPER_P_H
14
15#include <QtGraphs/QXYModelMapper>
16#include <private/qobject_p.h>
17
18QT_BEGIN_NAMESPACE
19
20class QXYModelMapperPrivate : public QObjectPrivate
21{
22 Q_DECLARE_PUBLIC(QXYModelMapper)
23public:
24 QXYModelMapperPrivate();
25 ~QXYModelMapperPrivate() override;
26
27public Q_SLOTS:
28 // for the model
29 void onModelUpdated(QModelIndex topLeft, QModelIndex bottomRight);
30 void onModelRowsAdded(QModelIndex parent, qsizetype start, qsizetype end);
31 void onModelRowsRemoved(QModelIndex parent, qsizetype start, qsizetype end);
32 void onModelColumnsAdded(QModelIndex parent, qsizetype start, qsizetype end);
33 void onModelColumnsRemoved(QModelIndex parent, qsizetype start, qsizetype end);
34 void handleModelDestroyed();
35
36 // for the series
37 void onPointAdded(qsizetype pointIndex);
38 void onPointRemoved(qsizetype pointIndex);
39 void onPointsRemoved(qsizetype pointIndex, qsizetype count);
40 void onPointReplaced(qsizetype pointIndex);
41 void handleSeriesDestroyed();
42
43 void initializeXYFromModel();
44
45private:
46 QModelIndex xModelIndex(qsizetype xIndex);
47 QModelIndex yModelIndex(qsizetype yIndex);
48 void insertData(int start, int end);
49 void removeData(int start, int end);
50 void blockModelSignals(bool block = true);
51 void blockSeriesSignals(bool block = true);
52 qreal valueFromModel(QModelIndex index);
53 void setValueToModel(QModelIndex index, qreal value);
54
55private:
56 QXYSeries *m_series = nullptr;
57 QAbstractItemModel *m_model = nullptr;
58 qsizetype m_first = 0;
59 qsizetype m_count = -1;
60 Qt::Orientation m_orientation = Qt::Vertical;
61 qsizetype m_xSection = -1;
62 qsizetype m_ySection = -1;
63 bool m_seriesSignalsBlock = false;
64 bool m_modelSignalsBlock = false;
65
66 Q_DISABLE_COPY_MOVE(QXYModelMapperPrivate)
67};
68
69QT_END_NAMESPACE
70
71#endif // QXYMODELMAPPER_P_H
72

Provided by KDAB

Privacy Policy
Start learning QML with our Intro Training
Find out more

source code of qtgraphs/src/graphs2d/xychart/qxymodelmapper_p.h