1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QBARDATAPROXY_H
5#define QBARDATAPROXY_H
6
7#include <QtCore/qlist.h>
8#include <QtCore/qstringlist.h>
9#include <QtGraphs/qabstractdataproxy.h>
10#include <QtGraphs/qbardataitem.h>
11
12Q_MOC_INCLUDE(<QtGraphs / qbar3dseries.h>)
13
14QT_BEGIN_NAMESPACE
15
16class QBarDataProxyPrivate;
17class QBar3DSeries;
18
19using QBarDataRow = QList<QBarDataItem>;
20using QBarDataArray = QList<QBarDataRow>;
21
22class Q_GRAPHS_EXPORT QBarDataProxy : public QAbstractDataProxy
23{
24 Q_OBJECT
25 Q_DECLARE_PRIVATE(QBarDataProxy)
26 Q_PROPERTY(qsizetype rowCount READ rowCount NOTIFY rowCountChanged FINAL)
27 Q_PROPERTY(qsizetype colCount READ colCount NOTIFY colCountChanged FINAL)
28 Q_PROPERTY(QBar3DSeries *series READ series NOTIFY seriesChanged FINAL)
29public:
30 explicit QBarDataProxy(QObject *parent = nullptr);
31 ~QBarDataProxy() override;
32
33 enum class RemoveLabels { No, Yes };
34 Q_ENUM(RemoveLabels)
35
36 QBar3DSeries *series() const;
37 qsizetype rowCount() const;
38 qsizetype colCount() const;
39
40 const QBarDataRow &rowAt(qsizetype rowIndex) const;
41 const QBarDataItem &itemAt(qsizetype rowIndex, qsizetype columnIndex) const;
42 const QBarDataItem &itemAt(QPoint position) const;
43
44 void resetArray();
45 void resetArray(QBarDataArray newArray);
46 void resetArray(QBarDataArray newArray, QStringList rowLabels, QStringList columnLabels);
47
48 void setRow(qsizetype rowIndex, QBarDataRow row);
49 void setRow(qsizetype rowIndex, QBarDataRow row, QString label);
50 void setRows(qsizetype rowIndex, QBarDataArray rows);
51 void setRows(qsizetype rowIndex, QBarDataArray rows, QStringList labels);
52
53 void setItem(qsizetype rowIndex, qsizetype columnIndex, QBarDataItem item);
54 void setItem(QPoint position, QBarDataItem item);
55
56 qsizetype addRow(QBarDataRow row);
57 qsizetype addRow(QBarDataRow row, QString label);
58 qsizetype addRows(QBarDataArray rows);
59 qsizetype addRows(QBarDataArray rows, QStringList labels);
60
61 void insertRow(qsizetype rowIndex, QBarDataRow row);
62 void insertRow(qsizetype rowIndex, QBarDataRow row, QString label);
63 void insertRows(qsizetype rowIndex, QBarDataArray rows);
64 void insertRows(qsizetype rowIndex, QBarDataArray rows, QStringList labels);
65
66 void removeRows(qsizetype rowIndex,
67 qsizetype removeCount,
68 RemoveLabels removeLabels = RemoveLabels::No);
69
70Q_SIGNALS:
71 void arrayReset();
72 void rowsAdded(qsizetype startIndex, qsizetype count);
73 void rowsChanged(qsizetype startIndex, qsizetype count);
74 void rowsRemoved(qsizetype startIndex, qsizetype count);
75 void rowsInserted(qsizetype startIndex, qsizetype count);
76 void itemChanged(qsizetype rowIndex, qsizetype columnIndex);
77
78 void rowCountChanged(qsizetype count);
79 void colCountChanged(qsizetype count);
80 void seriesChanged(QBar3DSeries *series);
81
82protected:
83 explicit QBarDataProxy(QBarDataProxyPrivate &d, QObject *parent = nullptr);
84
85private:
86 Q_DISABLE_COPY(QBarDataProxy)
87
88 friend class QQuickGraphsBars;
89};
90
91QT_END_NAMESPACE
92
93#endif
94

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

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