1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QSCATTERDATAPROXY_H
5#define QSCATTERDATAPROXY_H
6
7#include <QtGraphs/qabstractdataproxy.h>
8#include <QtGraphs/qscatterdataitem.h>
9
10Q_MOC_INCLUDE(<QtGraphs/qscatter3dseries.h>)
11
12QT_BEGIN_NAMESPACE
13
14class QScatterDataProxyPrivate;
15class QScatter3DSeries;
16
17using QScatterDataArray = QList<QScatterDataItem>;
18
19class Q_GRAPHS_EXPORT QScatterDataProxy : public QAbstractDataProxy
20{
21 Q_OBJECT
22 Q_DECLARE_PRIVATE(QScatterDataProxy)
23 Q_PROPERTY(qsizetype itemCount READ itemCount NOTIFY itemCountChanged FINAL)
24 Q_PROPERTY(QScatter3DSeries *series READ series NOTIFY seriesChanged FINAL)
25
26public:
27 explicit QScatterDataProxy(QObject *parent = nullptr);
28 ~QScatterDataProxy() override;
29
30 QScatter3DSeries *series() const;
31 qsizetype itemCount() const;
32 const QScatterDataItem &itemAt(qsizetype index) const;
33
34 void resetArray();
35 void resetArray(QScatterDataArray newArray);
36
37 void setItem(qsizetype index, QScatterDataItem item);
38 void setItems(qsizetype index, QScatterDataArray items);
39
40 qsizetype addItem(QScatterDataItem item);
41 qsizetype addItem(QScatterDataItem &&item);
42 qsizetype addItems(QScatterDataArray items);
43 qsizetype addItems(QScatterDataArray &&items);
44
45 void insertItem(qsizetype index, QScatterDataItem item);
46 void insertItems(qsizetype index, QScatterDataArray items);
47
48 void removeItems(qsizetype index, qsizetype removeCount);
49
50Q_SIGNALS:
51 void arrayReset();
52 void itemsAdded(qsizetype startIndex, qsizetype count);
53 void itemsChanged(qsizetype startIndex, qsizetype count);
54 void itemsRemoved(qsizetype startIndex, qsizetype count);
55 void itemsInserted(qsizetype startIndex, qsizetype count);
56
57 void itemCountChanged(qsizetype count);
58 void seriesChanged(QScatter3DSeries *series);
59
60protected:
61 explicit QScatterDataProxy(QScatterDataProxyPrivate &d, QObject *parent = nullptr);
62
63private:
64 Q_DISABLE_COPY(QScatterDataProxy)
65
66 friend class QQuickGraphsScatter;
67};
68
69QT_END_NAMESPACE
70
71#endif
72

Provided by KDAB

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

source code of qtgraphs/src/graphs3d/data/qscatterdataproxy.h