1 | /* |
2 | SPDX-FileCopyrightText: 2011-2018 Dominik Haumann <dhaumann@kde.org> |
3 | |
4 | SPDX-License-Identifier: LGPL-2.0-or-later |
5 | */ |
6 | |
7 | #ifndef VARIABLE_ITEM_H |
8 | #define VARIABLE_ITEM_H |
9 | |
10 | #include <QColor> |
11 | #include <QFont> |
12 | #include <QString> |
13 | #include <QStringList> |
14 | |
15 | class VariableEditor; |
16 | |
17 | // BEGIN class VariableItem |
18 | class VariableItem |
19 | { |
20 | public: |
21 | explicit VariableItem(const QString &variable); |
22 | virtual ~VariableItem() = default; |
23 | |
24 | QString variable() const; |
25 | QString helpText() const; |
26 | void setHelpText(const QString &text); |
27 | |
28 | bool isActive() const; |
29 | void setActive(bool active); |
30 | |
31 | virtual void setValueByString(const QString &value) = 0; |
32 | virtual QString valueAsString() const = 0; |
33 | |
34 | virtual VariableEditor *createEditor(QWidget *parent) = 0; |
35 | |
36 | private: |
37 | // not implemented: copy constructor and operator= |
38 | VariableItem(const VariableItem ©); |
39 | VariableItem &operator=(const VariableItem &other); |
40 | |
41 | QString m_variable; |
42 | QString m_helpText; |
43 | bool m_active; |
44 | }; |
45 | // END class VariableItem |
46 | |
47 | // |
48 | // DERIVE A CLASS FOR EACH TYPE |
49 | // |
50 | |
51 | // BEGIN class VariableIntItem |
52 | class VariableIntItem : public VariableItem |
53 | { |
54 | public: |
55 | explicit VariableIntItem(const QString &variable, int value); |
56 | |
57 | int value() const; |
58 | void setValue(int newValue); |
59 | void setRange(int minValue, int maxValue); |
60 | int minValue() const; |
61 | int maxValue() const; |
62 | |
63 | public: |
64 | void setValueByString(const QString &value) override; |
65 | QString valueAsString() const override; |
66 | VariableEditor *createEditor(QWidget *parent) override; |
67 | |
68 | private: |
69 | int m_value; |
70 | int m_minValue; |
71 | int m_maxValue; |
72 | }; |
73 | // END class VariableIntItem |
74 | |
75 | // BEGIN class VariableStringListItem |
76 | class VariableStringListItem : public VariableItem |
77 | { |
78 | public: |
79 | explicit VariableStringListItem(const QString &variable, const QStringList &slist, const QString &value); |
80 | |
81 | QStringList stringList() const; |
82 | |
83 | QString value() const; |
84 | void setValue(const QString &newValue); |
85 | |
86 | public: |
87 | void setValueByString(const QString &value) override; |
88 | QString valueAsString() const override; |
89 | VariableEditor *createEditor(QWidget *parent) override; |
90 | |
91 | private: |
92 | QStringList m_list; |
93 | QString m_value; |
94 | }; |
95 | // END class VariableStringListItem |
96 | |
97 | // BEGIN class VariableBoolItem |
98 | class VariableBoolItem : public VariableItem |
99 | { |
100 | public: |
101 | explicit VariableBoolItem(const QString &variable, bool value); |
102 | |
103 | bool value() const; |
104 | void setValue(bool enabled); |
105 | |
106 | public: |
107 | void setValueByString(const QString &value) override; |
108 | QString valueAsString() const override; |
109 | VariableEditor *createEditor(QWidget *parent) override; |
110 | |
111 | private: |
112 | bool m_value; |
113 | }; |
114 | // END class VariableBoolItem |
115 | |
116 | // BEGIN class VariableColorItem |
117 | class VariableColorItem : public VariableItem |
118 | { |
119 | public: |
120 | explicit VariableColorItem(const QString &variable, const QColor &value); |
121 | |
122 | QColor value() const; |
123 | void setValue(const QColor &color); |
124 | |
125 | public: |
126 | void setValueByString(const QString &value) override; |
127 | QString valueAsString() const override; |
128 | VariableEditor *createEditor(QWidget *parent) override; |
129 | |
130 | private: |
131 | QColor m_value; |
132 | }; |
133 | // END class VariableColorItem |
134 | |
135 | // BEGIN class VariableFontItem |
136 | class VariableFontItem : public VariableItem |
137 | { |
138 | public: |
139 | explicit VariableFontItem(const QString &variable, const QFont &value); |
140 | |
141 | QFont value() const; |
142 | void setValue(const QFont &value); |
143 | |
144 | public: |
145 | void setValueByString(const QString &value) override; |
146 | QString valueAsString() const override; |
147 | VariableEditor *createEditor(QWidget *parent) override; |
148 | |
149 | private: |
150 | QFont m_value; |
151 | }; |
152 | // END class VariableFontItem |
153 | |
154 | // BEGIN class VariableStringItem |
155 | class VariableStringItem : public VariableItem |
156 | { |
157 | public: |
158 | explicit VariableStringItem(const QString &variable, const QString &value); |
159 | |
160 | QString value() const; |
161 | void setValue(const QString &value); |
162 | |
163 | public: |
164 | void setValueByString(const QString &value) override; // Same as setValue() in this case, implemented for uniformity |
165 | QString valueAsString() const override; // Same as value() in this case, implemented for uniformity |
166 | VariableEditor *createEditor(QWidget *parent) override; |
167 | |
168 | private: |
169 | QString m_value; |
170 | }; |
171 | |
172 | // END class VariableStringItem |
173 | |
174 | // BEGIN class VariableSpellCheckItem |
175 | class VariableSpellCheckItem : public VariableItem |
176 | { |
177 | public: |
178 | explicit VariableSpellCheckItem(const QString &variable, const QString &value); |
179 | |
180 | QString value() const; |
181 | void setValue(const QString &value); |
182 | |
183 | public: |
184 | void setValueByString(const QString &value) override; // Same as setValue() in this case, implemented for uniformity |
185 | QString valueAsString() const override; // Same as value() in this case, implemented for uniformity |
186 | VariableEditor *createEditor(QWidget *parent) override; |
187 | |
188 | private: |
189 | QString m_value; |
190 | }; |
191 | // END class VariableSpellCheckItem |
192 | |
193 | // BEGIN class VariableRemoveSpacesItem |
194 | class VariableRemoveSpacesItem : public VariableItem |
195 | { |
196 | public: |
197 | explicit VariableRemoveSpacesItem(const QString &variable, int value); |
198 | |
199 | int value() const; |
200 | void setValue(int value); |
201 | |
202 | public: |
203 | void setValueByString(const QString &value) override; // Same as setValue() in this case, implemented for uniformity |
204 | QString valueAsString() const override; // Same as value() in this case, implemented for uniformity |
205 | VariableEditor *createEditor(QWidget *parent) override; |
206 | |
207 | private: |
208 | int m_value; |
209 | }; |
210 | // END class VariableRemoveSpacesItem |
211 | |
212 | #endif |
213 | |