1/****************************************************************************
2**
3** Copyright (C) 2019 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the QtQml module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or (at your option) the GNU General
28** Public license version 3 or any later version approved by the KDE Free
29** Qt Foundation. The licenses are as published by the Free Software
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31** included in the packaging of this file. Please review the following
32** information to ensure the GNU General Public License requirements will
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34** https://www.gnu.org/licenses/gpl-3.0.html.
35**
36** $QT_END_LICENSE$
37**
38****************************************************************************/
39
40#ifndef QQMLTABLEMODELCOLUMN_P_H
41#define QQMLTABLEMODELCOLUMN_P_H
42
43//
44// W A R N I N G
45// -------------
46//
47// This file is not part of the Qt API. It exists purely as an
48// implementation detail. This header file may change from version to
49// version without notice, or even be removed.
50//
51// We mean it.
52//
53
54#include <QtCore/QObject>
55#include <QtQml/qqml.h>
56#include <QtQmlModels/private/qtqmlmodelsglobal_p.h>
57#include <QtQml/qjsvalue.h>
58
59QT_REQUIRE_CONFIG(qml_table_model);
60
61QT_BEGIN_NAMESPACE
62
63class QQmlTableModelColumn : public QObject
64{
65 Q_OBJECT
66 Q_PROPERTY(QJSValue display READ display WRITE setDisplay NOTIFY displayChanged FINAL)
67 Q_PROPERTY(QJSValue setDisplay READ getSetDisplay WRITE setSetDisplay NOTIFY setDisplayChanged)
68 Q_PROPERTY(QJSValue decoration READ decoration WRITE setDecoration NOTIFY decorationChanged FINAL)
69 Q_PROPERTY(QJSValue setDecoration READ getSetDecoration WRITE setSetDecoration NOTIFY setDecorationChanged FINAL)
70 Q_PROPERTY(QJSValue edit READ edit WRITE setEdit NOTIFY editChanged FINAL)
71 Q_PROPERTY(QJSValue setEdit READ getSetEdit WRITE setSetEdit NOTIFY setEditChanged FINAL)
72 Q_PROPERTY(QJSValue toolTip READ toolTip WRITE setToolTip NOTIFY toolTipChanged FINAL)
73 Q_PROPERTY(QJSValue setToolTip READ getSetToolTip WRITE setSetToolTip NOTIFY setToolTipChanged FINAL)
74 Q_PROPERTY(QJSValue statusTip READ statusTip WRITE setStatusTip NOTIFY statusTipChanged FINAL)
75 Q_PROPERTY(QJSValue setStatusTip READ getSetStatusTip WRITE setSetStatusTip NOTIFY setStatusTipChanged FINAL)
76 Q_PROPERTY(QJSValue whatsThis READ whatsThis WRITE setWhatsThis NOTIFY whatsThisChanged FINAL)
77 Q_PROPERTY(QJSValue setWhatsThis READ getSetWhatsThis WRITE setSetWhatsThis NOTIFY setWhatsThisChanged FINAL)
78
79 Q_PROPERTY(QJSValue font READ font WRITE setFont NOTIFY fontChanged FINAL)
80 Q_PROPERTY(QJSValue setFont READ getSetFont WRITE setSetFont NOTIFY setFontChanged FINAL)
81 Q_PROPERTY(QJSValue textAlignment READ textAlignment WRITE setTextAlignment NOTIFY textAlignmentChanged FINAL)
82 Q_PROPERTY(QJSValue setTextAlignment READ getSetTextAlignment WRITE setSetTextAlignment NOTIFY setTextAlignmentChanged FINAL)
83 Q_PROPERTY(QJSValue background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
84 Q_PROPERTY(QJSValue setBackground READ getSetBackground WRITE setSetBackground NOTIFY setBackgroundChanged FINAL)
85 Q_PROPERTY(QJSValue foreground READ foreground WRITE setForeground NOTIFY foregroundChanged FINAL)
86 Q_PROPERTY(QJSValue setForeground READ getSetForeground WRITE setSetForeground NOTIFY setForegroundChanged FINAL)
87 Q_PROPERTY(QJSValue checkState READ checkState WRITE setCheckState NOTIFY checkStateChanged FINAL)
88 Q_PROPERTY(QJSValue setCheckState READ getSetCheckState WRITE setSetCheckState NOTIFY setCheckStateChanged FINAL)
89
90 Q_PROPERTY(QJSValue accessibleText READ accessibleText WRITE setAccessibleText NOTIFY accessibleTextChanged FINAL)
91 Q_PROPERTY(QJSValue setAccessibleText READ getSetAccessibleText WRITE setSetAccessibleText NOTIFY setAccessibleTextChanged FINAL)
92 Q_PROPERTY(QJSValue accessibleDescription READ accessibleDescription
93 WRITE setAccessibleDescription NOTIFY accessibleDescriptionChanged FINAL)
94 Q_PROPERTY(QJSValue setAccessibleDescription READ getSetAccessibleDescription
95 WRITE setSetAccessibleDescription NOTIFY setAccessibleDescriptionChanged FINAL)
96
97 Q_PROPERTY(QJSValue sizeHint READ sizeHint WRITE setSizeHint NOTIFY sizeHintChanged FINAL)
98 Q_PROPERTY(QJSValue setSizeHint READ getSetSizeHint WRITE setSetSizeHint NOTIFY setSizeHintChanged FINAL)
99 QML_NAMED_ELEMENT(TableModelColumn)
100
101public:
102 QQmlTableModelColumn(QObject *parent = nullptr);
103 ~QQmlTableModelColumn() override;
104
105 QJSValue display() const;
106 void setDisplay(const QJSValue &stringOrFunction);
107 QJSValue getSetDisplay() const;
108 void setSetDisplay(const QJSValue &function);
109
110 QJSValue decoration() const;
111 void setDecoration(const QJSValue &stringOrFunction);
112 QJSValue getSetDecoration() const;
113 void setSetDecoration(const QJSValue &function);
114
115 QJSValue edit() const;
116 void setEdit(const QJSValue &stringOrFunction);
117 QJSValue getSetEdit() const;
118 void setSetEdit(const QJSValue &function);
119
120 QJSValue toolTip() const;
121 void setToolTip(const QJSValue &stringOrFunction);
122 QJSValue getSetToolTip() const;
123 void setSetToolTip(const QJSValue &function);
124
125 QJSValue statusTip() const;
126 void setStatusTip(const QJSValue &stringOrFunction);
127 QJSValue getSetStatusTip() const;
128 void setSetStatusTip(const QJSValue &function);
129
130 QJSValue whatsThis() const;
131 void setWhatsThis(const QJSValue &stringOrFunction);
132 QJSValue getSetWhatsThis() const;
133 void setSetWhatsThis(const QJSValue &function);
134
135 QJSValue font() const;
136 void setFont(const QJSValue &stringOrFunction);
137 QJSValue getSetFont() const;
138 void setSetFont(const QJSValue &function);
139
140 QJSValue textAlignment() const;
141 void setTextAlignment(const QJSValue &stringOrFunction);
142 QJSValue getSetTextAlignment() const;
143 void setSetTextAlignment(const QJSValue &function);
144
145 QJSValue background() const;
146 void setBackground(const QJSValue &stringOrFunction);
147 QJSValue getSetBackground() const;
148 void setSetBackground(const QJSValue &function);
149
150 QJSValue foreground() const;
151 void setForeground(const QJSValue &stringOrFunction);
152 QJSValue getSetForeground() const;
153 void setSetForeground(const QJSValue &function);
154
155 QJSValue checkState() const;
156 void setCheckState(const QJSValue &stringOrFunction);
157 QJSValue getSetCheckState() const;
158 void setSetCheckState(const QJSValue &function);
159
160 QJSValue accessibleText() const;
161 void setAccessibleText(const QJSValue &stringOrFunction);
162 QJSValue getSetAccessibleText() const;
163 void setSetAccessibleText(const QJSValue &function);
164
165 QJSValue accessibleDescription() const;
166 void setAccessibleDescription(const QJSValue &stringOrFunction);
167 QJSValue getSetAccessibleDescription() const;
168 void setSetAccessibleDescription(const QJSValue &function);
169
170 QJSValue sizeHint() const;
171 void setSizeHint(const QJSValue &stringOrFunction);
172 QJSValue getSetSizeHint() const;
173 void setSetSizeHint(const QJSValue &function);
174
175 QJSValue getterAtRole(const QString &roleName);
176 QJSValue setterAtRole(const QString &roleName);
177
178 const QHash<QString, QJSValue> getters() const;
179
180 static const QHash<int, QString> supportedRoleNames();
181
182Q_SIGNALS:
183 void indexChanged();
184 void displayChanged();
185 void setDisplayChanged();
186 void decorationChanged();
187 void setDecorationChanged();
188 void editChanged();
189 void setEditChanged();
190 void toolTipChanged();
191 void setToolTipChanged();
192 void statusTipChanged();
193 void setStatusTipChanged();
194 void whatsThisChanged();
195 void setWhatsThisChanged();
196
197 void fontChanged();
198 void setFontChanged();
199 void textAlignmentChanged();
200 void setTextAlignmentChanged();
201 void backgroundChanged();
202 void setBackgroundChanged();
203 void foregroundChanged();
204 void setForegroundChanged();
205 void checkStateChanged();
206 void setCheckStateChanged();
207
208 void accessibleTextChanged();
209 void setAccessibleTextChanged();
210 void accessibleDescriptionChanged();
211 void setAccessibleDescriptionChanged();
212 void sizeHintChanged();
213 void setSizeHintChanged();
214
215private:
216 int mIndex = -1;
217
218 // We store these in hashes because QQuickTableModel needs string-based lookup in certain situations.
219 QHash<QString, QJSValue> mGetters;
220 QHash<QString, QJSValue> mSetters;
221};
222
223QT_END_NAMESPACE
224
225QML_DECLARE_TYPE(QQmlTableModelColumn)
226
227#endif // QQMLTABLEMODELCOLUMN_P_H
228

source code of qtdeclarative/src/imports/labsmodels/qqmltablemodelcolumn_p.h