1 /****************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 **
6 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 **
8 ** This file is part of a Qt Solutions component.
9 **
10 ** You may use this file under the terms of the BSD license as follows:
11 **
12 ** "Redistribution and use in source and binary forms, with or without
13 ** modification, are permitted provided that the following conditions are
14 ** met:
15 **   * Redistributions of source code must retain the above copyright
16 **     notice, this list of conditions and the following disclaimer.
17 **   * Redistributions in binary form must reproduce the above copyright
18 **     notice, this list of conditions and the following disclaimer in
19 **     the documentation and/or other materials provided with the
20 **     distribution.
21 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
22 **     the names of its contributors may be used to endorse or promote
23 **     products derived from this software without specific prior written
24 **     permission.
25 **
26 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
37 **
38 ****************************************************************************/
39 
40 
41 #ifndef QTEDITORFACTORY_H
42 #define QTEDITORFACTORY_H
43 
44 #include "qtpropertymanager.h"
45 
46 #if QT_VERSION >= 0x040400
47 QT_BEGIN_NAMESPACE
48 #endif
49 
50 class QtSpinBoxFactoryPrivate;
51 
52 class QT_QTPROPERTYBROWSER_EXPORT QtSpinBoxFactory : public QtAbstractEditorFactory<QtIntPropertyManager>
53 {
54     Q_OBJECT
55 public:
56     QtSpinBoxFactory(QObject *parent = 0);
57     ~QtSpinBoxFactory();
58 protected:
59     void connectPropertyManager(QtIntPropertyManager *manager);
60     QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property,
61                 QWidget *parent);
62     void disconnectPropertyManager(QtIntPropertyManager *manager);
63 private:
64     QtSpinBoxFactoryPrivate *d_ptr;
65     Q_DECLARE_PRIVATE(QtSpinBoxFactory)
66     Q_DISABLE_COPY(QtSpinBoxFactory)
67     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int))
68     Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int))
69     Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int))
70     Q_PRIVATE_SLOT(d_func(), void slotSetValue(int))
71     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
72 };
73 
74 class QtSliderFactoryPrivate;
75 
76 class QT_QTPROPERTYBROWSER_EXPORT QtSliderFactory : public QtAbstractEditorFactory<QtIntPropertyManager>
77 {
78     Q_OBJECT
79 public:
80     QtSliderFactory(QObject *parent = 0);
81     ~QtSliderFactory();
82 protected:
83     void connectPropertyManager(QtIntPropertyManager *manager);
84     QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property,
85                 QWidget *parent);
86     void disconnectPropertyManager(QtIntPropertyManager *manager);
87 private:
88     QtSliderFactoryPrivate *d_ptr;
89     Q_DECLARE_PRIVATE(QtSliderFactory)
90     Q_DISABLE_COPY(QtSliderFactory)
91     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int))
92     Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int))
93     Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int))
94     Q_PRIVATE_SLOT(d_func(), void slotSetValue(int))
95     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
96 };
97 
98 class QtScrollBarFactoryPrivate;
99 
100 class QT_QTPROPERTYBROWSER_EXPORT QtScrollBarFactory : public QtAbstractEditorFactory<QtIntPropertyManager>
101 {
102     Q_OBJECT
103 public:
104     QtScrollBarFactory(QObject *parent = 0);
105     ~QtScrollBarFactory();
106 protected:
107     void connectPropertyManager(QtIntPropertyManager *manager);
108     QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property,
109                 QWidget *parent);
110     void disconnectPropertyManager(QtIntPropertyManager *manager);
111 private:
112     QtScrollBarFactoryPrivate *d_ptr;
113     Q_DECLARE_PRIVATE(QtScrollBarFactory)
114     Q_DISABLE_COPY(QtScrollBarFactory)
115     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int))
116     Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int))
117     Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int))
118     Q_PRIVATE_SLOT(d_func(), void slotSetValue(int))
119     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
120 };
121 
122 class QtCheckBoxFactoryPrivate;
123 
124 class QT_QTPROPERTYBROWSER_EXPORT QtCheckBoxFactory : public QtAbstractEditorFactory<QtBoolPropertyManager>
125 {
126     Q_OBJECT
127 public:
128     QtCheckBoxFactory(QObject *parent = 0);
129     ~QtCheckBoxFactory();
130 protected:
131     void connectPropertyManager(QtBoolPropertyManager *manager);
132     QWidget *createEditor(QtBoolPropertyManager *manager, QtProperty *property,
133                 QWidget *parent);
134     void disconnectPropertyManager(QtBoolPropertyManager *manager);
135 private:
136     QtCheckBoxFactoryPrivate *d_ptr;
137     Q_DECLARE_PRIVATE(QtCheckBoxFactory)
138     Q_DISABLE_COPY(QtCheckBoxFactory)
139     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, bool))
140     Q_PRIVATE_SLOT(d_func(), void slotSetValue(bool))
141     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
142 };
143 
144 class QtDoubleSpinBoxFactoryPrivate;
145 
146 class QT_QTPROPERTYBROWSER_EXPORT QtDoubleSpinBoxFactory : public QtAbstractEditorFactory<QtDoublePropertyManager>
147 {
148     Q_OBJECT
149 public:
150     QtDoubleSpinBoxFactory(QObject *parent = 0);
151     ~QtDoubleSpinBoxFactory();
152 protected:
153     void connectPropertyManager(QtDoublePropertyManager *manager);
154     QWidget *createEditor(QtDoublePropertyManager *manager, QtProperty *property,
155                 QWidget *parent);
156     void disconnectPropertyManager(QtDoublePropertyManager *manager);
157 private:
158     QtDoubleSpinBoxFactoryPrivate *d_ptr;
159     Q_DECLARE_PRIVATE(QtDoubleSpinBoxFactory)
160     Q_DISABLE_COPY(QtDoubleSpinBoxFactory)
161     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, double))
162     Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, double, double))
163     Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, double))
164     Q_PRIVATE_SLOT(d_func(), void slotDecimalsChanged(QtProperty *, int))
165     Q_PRIVATE_SLOT(d_func(), void slotSetValue(double))
166     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
167 };
168 
169 class QtLineEditFactoryPrivate;
170 
171 class QT_QTPROPERTYBROWSER_EXPORT QtLineEditFactory : public QtAbstractEditorFactory<QtStringPropertyManager>
172 {
173     Q_OBJECT
174 public:
175     QtLineEditFactory(QObject *parent = 0);
176     ~QtLineEditFactory();
177 protected:
178     void connectPropertyManager(QtStringPropertyManager *manager);
179     QWidget *createEditor(QtStringPropertyManager *manager, QtProperty *property,
180                 QWidget *parent);
181     void disconnectPropertyManager(QtStringPropertyManager *manager);
182 private:
183     QtLineEditFactoryPrivate *d_ptr;
184     Q_DECLARE_PRIVATE(QtLineEditFactory)
185     Q_DISABLE_COPY(QtLineEditFactory)
186     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QString &))
187     Q_PRIVATE_SLOT(d_func(), void slotRegExpChanged(QtProperty *, const QRegExp &))
188     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QString &))
189     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
190 };
191 
192 class QtDateEditFactoryPrivate;
193 
194 class QT_QTPROPERTYBROWSER_EXPORT QtDateEditFactory : public QtAbstractEditorFactory<QtDatePropertyManager>
195 {
196     Q_OBJECT
197 public:
198     QtDateEditFactory(QObject *parent = 0);
199     ~QtDateEditFactory();
200 protected:
201     void connectPropertyManager(QtDatePropertyManager *manager);
202     QWidget *createEditor(QtDatePropertyManager *manager, QtProperty *property,
203                 QWidget *parent);
204     void disconnectPropertyManager(QtDatePropertyManager *manager);
205 private:
206     QtDateEditFactoryPrivate *d_ptr;
207     Q_DECLARE_PRIVATE(QtDateEditFactory)
208     Q_DISABLE_COPY(QtDateEditFactory)
209     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QDate &))
210     Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *,
211                         const QDate &, const QDate &))
212     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QDate &))
213     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
214 };
215 
216 class QtTimeEditFactoryPrivate;
217 
218 class QT_QTPROPERTYBROWSER_EXPORT QtTimeEditFactory : public QtAbstractEditorFactory<QtTimePropertyManager>
219 {
220     Q_OBJECT
221 public:
222     QtTimeEditFactory(QObject *parent = 0);
223     ~QtTimeEditFactory();
224 protected:
225     void connectPropertyManager(QtTimePropertyManager *manager);
226     QWidget *createEditor(QtTimePropertyManager *manager, QtProperty *property,
227                 QWidget *parent);
228     void disconnectPropertyManager(QtTimePropertyManager *manager);
229 private:
230     QtTimeEditFactoryPrivate *d_ptr;
231     Q_DECLARE_PRIVATE(QtTimeEditFactory)
232     Q_DISABLE_COPY(QtTimeEditFactory)
233     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QTime &))
234     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QTime &))
235     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
236 };
237 
238 class QtDateTimeEditFactoryPrivate;
239 
240 class QT_QTPROPERTYBROWSER_EXPORT QtDateTimeEditFactory : public QtAbstractEditorFactory<QtDateTimePropertyManager>
241 {
242     Q_OBJECT
243 public:
244     QtDateTimeEditFactory(QObject *parent = 0);
245     ~QtDateTimeEditFactory();
246 protected:
247     void connectPropertyManager(QtDateTimePropertyManager *manager);
248     QWidget *createEditor(QtDateTimePropertyManager *manager, QtProperty *property,
249                 QWidget *parent);
250     void disconnectPropertyManager(QtDateTimePropertyManager *manager);
251 private:
252     QtDateTimeEditFactoryPrivate *d_ptr;
253     Q_DECLARE_PRIVATE(QtDateTimeEditFactory)
254     Q_DISABLE_COPY(QtDateTimeEditFactory)
255     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QDateTime &))
256     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QDateTime &))
257     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
258 };
259 
260 class QtKeySequenceEditorFactoryPrivate;
261 
262 class QT_QTPROPERTYBROWSER_EXPORT QtKeySequenceEditorFactory : public QtAbstractEditorFactory<QtKeySequencePropertyManager>
263 {
264     Q_OBJECT
265 public:
266     QtKeySequenceEditorFactory(QObject *parent = 0);
267     ~QtKeySequenceEditorFactory();
268 protected:
269     void connectPropertyManager(QtKeySequencePropertyManager *manager);
270     QWidget *createEditor(QtKeySequencePropertyManager *manager, QtProperty *property,
271                 QWidget *parent);
272     void disconnectPropertyManager(QtKeySequencePropertyManager *manager);
273 private:
274     QtKeySequenceEditorFactoryPrivate *d_ptr;
275     Q_DECLARE_PRIVATE(QtKeySequenceEditorFactory)
276     Q_DISABLE_COPY(QtKeySequenceEditorFactory)
277     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QKeySequence &))
278     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QKeySequence &))
279     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
280 };
281 
282 class QtCharEditorFactoryPrivate;
283 
284 class QT_QTPROPERTYBROWSER_EXPORT QtCharEditorFactory : public QtAbstractEditorFactory<QtCharPropertyManager>
285 {
286     Q_OBJECT
287 public:
288     QtCharEditorFactory(QObject *parent = 0);
289     ~QtCharEditorFactory();
290 protected:
291     void connectPropertyManager(QtCharPropertyManager *manager);
292     QWidget *createEditor(QtCharPropertyManager *manager, QtProperty *property,
293                 QWidget *parent);
294     void disconnectPropertyManager(QtCharPropertyManager *manager);
295 private:
296     QtCharEditorFactoryPrivate *d_ptr;
297     Q_DECLARE_PRIVATE(QtCharEditorFactory)
298     Q_DISABLE_COPY(QtCharEditorFactory)
299     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QChar &))
300     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QChar &))
301     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
302 };
303 
304 class QtEnumEditorFactoryPrivate;
305 
306 class QT_QTPROPERTYBROWSER_EXPORT QtEnumEditorFactory : public QtAbstractEditorFactory<QtEnumPropertyManager>
307 {
308     Q_OBJECT
309 public:
310     QtEnumEditorFactory(QObject *parent = 0);
311     ~QtEnumEditorFactory();
312 protected:
313     void connectPropertyManager(QtEnumPropertyManager *manager);
314     QWidget *createEditor(QtEnumPropertyManager *manager, QtProperty *property,
315                 QWidget *parent);
316     void disconnectPropertyManager(QtEnumPropertyManager *manager);
317 private:
318     QtEnumEditorFactoryPrivate *d_ptr;
319     Q_DECLARE_PRIVATE(QtEnumEditorFactory)
320     Q_DISABLE_COPY(QtEnumEditorFactory)
321     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int))
322     Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *,
323                         const QStringList &))
324     Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *,
325                         const QMap<int, QIcon> &))
326     Q_PRIVATE_SLOT(d_func(), void slotSetValue(int))
327     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
328 };
329 
330 class QtCursorEditorFactoryPrivate;
331 
332 class QT_QTPROPERTYBROWSER_EXPORT QtCursorEditorFactory : public QtAbstractEditorFactory<QtCursorPropertyManager>
333 {
334     Q_OBJECT
335 public:
336     QtCursorEditorFactory(QObject *parent = 0);
337     ~QtCursorEditorFactory();
338 protected:
339     void connectPropertyManager(QtCursorPropertyManager *manager);
340     QWidget *createEditor(QtCursorPropertyManager *manager, QtProperty *property,
341                 QWidget *parent);
342     void disconnectPropertyManager(QtCursorPropertyManager *manager);
343 private:
344     QtCursorEditorFactoryPrivate *d_ptr;
345     Q_DECLARE_PRIVATE(QtCursorEditorFactory)
346     Q_DISABLE_COPY(QtCursorEditorFactory)
347     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QCursor &))
348     Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
349     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
350 };
351 
352 class QtColorEditorFactoryPrivate;
353 
354 class QT_QTPROPERTYBROWSER_EXPORT QtColorEditorFactory : public QtAbstractEditorFactory<QtColorPropertyManager>
355 {
356     Q_OBJECT
357 public:
358     QtColorEditorFactory(QObject *parent = 0);
359     ~QtColorEditorFactory();
360 protected:
361     void connectPropertyManager(QtColorPropertyManager *manager);
362     QWidget *createEditor(QtColorPropertyManager *manager, QtProperty *property,
363                 QWidget *parent);
364     void disconnectPropertyManager(QtColorPropertyManager *manager);
365 private:
366     QtColorEditorFactoryPrivate *d_ptr;
367     Q_DECLARE_PRIVATE(QtColorEditorFactory)
368     Q_DISABLE_COPY(QtColorEditorFactory)
369     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QColor &))
370     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
371     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QColor &))
372 };
373 
374 class QtFontEditorFactoryPrivate;
375 
376 class QT_QTPROPERTYBROWSER_EXPORT QtFontEditorFactory : public QtAbstractEditorFactory<QtFontPropertyManager>
377 {
378     Q_OBJECT
379 public:
380     QtFontEditorFactory(QObject *parent = 0);
381     ~QtFontEditorFactory();
382 protected:
383     void connectPropertyManager(QtFontPropertyManager *manager);
384     QWidget *createEditor(QtFontPropertyManager *manager, QtProperty *property,
385                 QWidget *parent);
386     void disconnectPropertyManager(QtFontPropertyManager *manager);
387 private:
388     QtFontEditorFactoryPrivate *d_ptr;
389     Q_DECLARE_PRIVATE(QtFontEditorFactory)
390     Q_DISABLE_COPY(QtFontEditorFactory)
391     Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QFont &))
392     Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
393     Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QFont &))
394 };
395 
396 #if QT_VERSION >= 0x040400
397 QT_END_NAMESPACE
398 #endif
399 
400 #endif
401