1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QITEMMODELSCATTERDATAPROXY_H
5#define QITEMMODELSCATTERDATAPROXY_H
6
7#include <QtCore/qabstractitemmodel.h>
8#include <QtCore/qregularexpression.h>
9#include <QtCore/qstring.h>
10#include <QtGraphs/qscatterdataproxy.h>
11
12QT_BEGIN_NAMESPACE
13
14class QItemModelScatterDataProxyPrivate;
15
16class Q_GRAPHS_EXPORT QItemModelScatterDataProxy : public QScatterDataProxy
17{
18 Q_OBJECT
19 Q_DECLARE_PRIVATE(QItemModelScatterDataProxy)
20 Q_PROPERTY(QAbstractItemModel *itemModel READ itemModel WRITE setItemModel NOTIFY
21 itemModelChanged FINAL)
22 Q_PROPERTY(QString xPosRole READ xPosRole WRITE setXPosRole NOTIFY xPosRoleChanged FINAL)
23 Q_PROPERTY(QString yPosRole READ yPosRole WRITE setYPosRole NOTIFY yPosRoleChanged FINAL)
24 Q_PROPERTY(QString zPosRole READ zPosRole WRITE setZPosRole NOTIFY zPosRoleChanged FINAL)
25 Q_PROPERTY(QString rotationRole READ rotationRole WRITE setRotationRole NOTIFY
26 rotationRoleChanged FINAL)
27 Q_PROPERTY(QRegularExpression xPosRolePattern READ xPosRolePattern WRITE setXPosRolePattern
28 NOTIFY xPosRolePatternChanged FINAL)
29 Q_PROPERTY(QRegularExpression yPosRolePattern READ yPosRolePattern WRITE setYPosRolePattern
30 NOTIFY yPosRolePatternChanged FINAL)
31 Q_PROPERTY(QRegularExpression zPosRolePattern READ zPosRolePattern WRITE setZPosRolePattern
32 NOTIFY zPosRolePatternChanged FINAL)
33 Q_PROPERTY(QRegularExpression rotationRolePattern READ rotationRolePattern WRITE
34 setRotationRolePattern NOTIFY rotationRolePatternChanged FINAL)
35 Q_PROPERTY(QString xPosRoleReplace READ xPosRoleReplace WRITE setXPosRoleReplace NOTIFY
36 xPosRoleReplaceChanged FINAL)
37 Q_PROPERTY(QString yPosRoleReplace READ yPosRoleReplace WRITE setYPosRoleReplace NOTIFY
38 yPosRoleReplaceChanged FINAL)
39 Q_PROPERTY(QString zPosRoleReplace READ zPosRoleReplace WRITE setZPosRoleReplace NOTIFY
40 zPosRoleReplaceChanged FINAL)
41 Q_PROPERTY(QString rotationRoleReplace READ rotationRoleReplace WRITE setRotationRoleReplace
42 NOTIFY rotationRoleReplaceChanged FINAL)
43
44public:
45 explicit QItemModelScatterDataProxy(QObject *parent = nullptr);
46 explicit QItemModelScatterDataProxy(QAbstractItemModel *itemModel, QObject *parent = nullptr);
47 explicit QItemModelScatterDataProxy(QAbstractItemModel *itemModel,
48 const QString &xPosRole,
49 const QString &yPosRole,
50 const QString &zPosRole,
51 QObject *parent = nullptr);
52 explicit QItemModelScatterDataProxy(QAbstractItemModel *itemModel,
53 const QString &xPosRole,
54 const QString &yPosRole,
55 const QString &zPosRole,
56 const QString &rotationRole,
57 QObject *parent = nullptr);
58 ~QItemModelScatterDataProxy() override;
59
60 void setItemModel(QAbstractItemModel *itemModel);
61 QAbstractItemModel *itemModel() const;
62
63 void setXPosRole(const QString &role);
64 QString xPosRole() const;
65 void setYPosRole(const QString &role);
66 QString yPosRole() const;
67 void setZPosRole(const QString &role);
68 QString zPosRole() const;
69 void setRotationRole(const QString &role);
70 QString rotationRole() const;
71
72 void remap(const QString &xPosRole,
73 const QString &yPosRole,
74 const QString &zPosRole,
75 const QString &rotationRole);
76
77 void setXPosRolePattern(const QRegularExpression &pattern);
78 QRegularExpression xPosRolePattern() const;
79 void setYPosRolePattern(const QRegularExpression &pattern);
80 QRegularExpression yPosRolePattern() const;
81 void setZPosRolePattern(const QRegularExpression &pattern);
82 QRegularExpression zPosRolePattern() const;
83 void setRotationRolePattern(const QRegularExpression &pattern);
84 QRegularExpression rotationRolePattern() const;
85
86 void setXPosRoleReplace(const QString &replace);
87 QString xPosRoleReplace() const;
88 void setYPosRoleReplace(const QString &replace);
89 QString yPosRoleReplace() const;
90 void setZPosRoleReplace(const QString &replace);
91 QString zPosRoleReplace() const;
92 void setRotationRoleReplace(const QString &replace);
93 QString rotationRoleReplace() const;
94
95Q_SIGNALS:
96 void itemModelChanged(const QAbstractItemModel *itemModel);
97 void xPosRoleChanged(const QString &role);
98 void yPosRoleChanged(const QString &role);
99 void zPosRoleChanged(const QString &role);
100 void rotationRoleChanged(const QString &role);
101 void xPosRolePatternChanged(const QRegularExpression &pattern);
102 void yPosRolePatternChanged(const QRegularExpression &pattern);
103 void zPosRolePatternChanged(const QRegularExpression &pattern);
104 void rotationRolePatternChanged(const QRegularExpression &pattern);
105 void rotationRoleReplaceChanged(const QString &replace);
106 void xPosRoleReplaceChanged(const QString &replace);
107 void yPosRoleReplaceChanged(const QString &replace);
108 void zPosRoleReplaceChanged(const QString &replace);
109
110private:
111 Q_DISABLE_COPY(QItemModelScatterDataProxy)
112};
113
114QT_END_NAMESPACE
115
116#endif
117

Provided by KDAB

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

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