1 /****************************************************************************
2 **
3 ** Copyright (C) 2015 The Qt Company Ltd.
4 ** Contact: http://www.qt.io/licensing/
5 **
6 ** This file is part of the tools applications of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL21$
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 http://www.qt.io/terms-conditions. For further
15 ** information use the contact form at http://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 2.1 or version 3 as published by the Free
20 ** Software Foundation and appearing in the file LICENSE.LGPLv21 and
21 ** LICENSE.LGPLv3 included in the packaging of this file. Please review the
22 ** following information to ensure the GNU Lesser General Public License
23 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 **
26 ** As a special exception, The Qt Company gives you certain additional
27 ** rights. These rights are described in The Qt Company LGPL Exception
28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 **
30 ** $QT_END_LICENSE$
31 **
32 ****************************************************************************/
33 
34 
35 #ifndef QTPROPERTYMANAGER_H
36 #define QTPROPERTYMANAGER_H
37 
38 #include "qtpropertybrowser.h"
39 
40 QT_BEGIN_NAMESPACE
41 
42 class QDate;
43 class QTime;
44 class QDateTime;
45 class QLocale;
46 
47 class QtGroupPropertyManager : public QtAbstractPropertyManager
48 {
49     Q_OBJECT
50 public:
51     QtGroupPropertyManager(QObject *parent = 0);
52     ~QtGroupPropertyManager();
53 
54 protected:
55     virtual bool hasValue(const QtProperty *property) const;
56 
57     virtual void initializeProperty(QtProperty *property);
58     virtual void uninitializeProperty(QtProperty *property);
59 };
60 
61 class QtIntPropertyManagerPrivate;
62 
63 class QtIntPropertyManager : public QtAbstractPropertyManager
64 {
65     Q_OBJECT
66 public:
67     QtIntPropertyManager(QObject *parent = 0);
68     ~QtIntPropertyManager();
69 
70     int value(const QtProperty *property) const;
71     int minimum(const QtProperty *property) const;
72     int maximum(const QtProperty *property) const;
73     int singleStep(const QtProperty *property) const;
74     bool isReadOnly(const QtProperty *property) const;
75 
76 public Q_SLOTS:
77     void setValue(QtProperty *property, int val);
78     void setMinimum(QtProperty *property, int minVal);
79     void setMaximum(QtProperty *property, int maxVal);
80     void setRange(QtProperty *property, int minVal, int maxVal);
81     void setSingleStep(QtProperty *property, int step);
82     void setReadOnly(QtProperty *property, bool readOnly);
83 Q_SIGNALS:
84     void valueChanged(QtProperty *property, int val);
85     void rangeChanged(QtProperty *property, int minVal, int maxVal);
86     void singleStepChanged(QtProperty *property, int step);
87     void readOnlyChanged(QtProperty *property, bool readOnly);
88 protected:
89     QString valueText(const QtProperty *property) const;
90     virtual void initializeProperty(QtProperty *property);
91     virtual void uninitializeProperty(QtProperty *property);
92 private:
93     QtIntPropertyManagerPrivate *d_ptr;
94     Q_DECLARE_PRIVATE(QtIntPropertyManager)
95     Q_DISABLE_COPY(QtIntPropertyManager)
96 };
97 
98 class QtBoolPropertyManagerPrivate;
99 
100 class QtBoolPropertyManager : public QtAbstractPropertyManager
101 {
102     Q_OBJECT
103 public:
104     QtBoolPropertyManager(QObject *parent = 0);
105     ~QtBoolPropertyManager();
106 
107     bool value(const QtProperty *property) const;
108     bool textVisible(const QtProperty *property) const;
109 
110 public Q_SLOTS:
111     void setValue(QtProperty *property, bool val);
112     void setTextVisible(QtProperty *property, bool textVisible);
113 Q_SIGNALS:
114     void valueChanged(QtProperty *property, bool val);
115     void textVisibleChanged(QtProperty *property, bool);
116 protected:
117     QString valueText(const QtProperty *property) const;
118     QIcon valueIcon(const QtProperty *property) const;
119     virtual void initializeProperty(QtProperty *property);
120     virtual void uninitializeProperty(QtProperty *property);
121 private:
122     QtBoolPropertyManagerPrivate *d_ptr;
123     Q_DECLARE_PRIVATE(QtBoolPropertyManager)
124     Q_DISABLE_COPY(QtBoolPropertyManager)
125 };
126 
127 class QtDoublePropertyManagerPrivate;
128 
129 class QtDoublePropertyManager : public QtAbstractPropertyManager
130 {
131     Q_OBJECT
132 public:
133     QtDoublePropertyManager(QObject *parent = 0);
134     ~QtDoublePropertyManager();
135 
136     double value(const QtProperty *property) const;
137     double minimum(const QtProperty *property) const;
138     double maximum(const QtProperty *property) const;
139     double singleStep(const QtProperty *property) const;
140     int decimals(const QtProperty *property) const;
141     bool isReadOnly(const QtProperty *property) const;
142 
143 public Q_SLOTS:
144     void setValue(QtProperty *property, double val);
145     void setMinimum(QtProperty *property, double minVal);
146     void setMaximum(QtProperty *property, double maxVal);
147     void setRange(QtProperty *property, double minVal, double maxVal);
148     void setSingleStep(QtProperty *property, double step);
149     void setDecimals(QtProperty *property, int prec);
150     void setReadOnly(QtProperty *property, bool readOnly);
151 Q_SIGNALS:
152     void valueChanged(QtProperty *property, double val);
153     void rangeChanged(QtProperty *property, double minVal, double maxVal);
154     void singleStepChanged(QtProperty *property, double step);
155     void decimalsChanged(QtProperty *property, int prec);
156     void readOnlyChanged(QtProperty *property, bool readOnly);
157 protected:
158     QString valueText(const QtProperty *property) const;
159     virtual void initializeProperty(QtProperty *property);
160     virtual void uninitializeProperty(QtProperty *property);
161 private:
162     QtDoublePropertyManagerPrivate *d_ptr;
163     Q_DECLARE_PRIVATE(QtDoublePropertyManager)
164     Q_DISABLE_COPY(QtDoublePropertyManager)
165 };
166 
167 class QtStringPropertyManagerPrivate;
168 
169 class QtStringPropertyManager : public QtAbstractPropertyManager
170 {
171     Q_OBJECT
172 public:
173     QtStringPropertyManager(QObject *parent = 0);
174     ~QtStringPropertyManager();
175 
176     QString value(const QtProperty *property) const;
177     QRegExp regExp(const QtProperty *property) const;
178     EchoMode echoMode(const QtProperty *property) const;
179     bool isReadOnly(const QtProperty *property) const;
180 
181 public Q_SLOTS:
182     void setValue(QtProperty *property, const QString &val);
183     void setRegExp(QtProperty *property, const QRegExp &regExp);
184     void setEchoMode(QtProperty *property, EchoMode echoMode);
185     void setReadOnly(QtProperty *property, bool readOnly);
186 
187 Q_SIGNALS:
188     void valueChanged(QtProperty *property, const QString &val);
189     void regExpChanged(QtProperty *property, const QRegExp &regExp);
190     void echoModeChanged(QtProperty *property, const int);
191     void readOnlyChanged(QtProperty *property, bool);
192 
193 protected:
194     QString valueText(const QtProperty *property) const;
195     QString displayText(const QtProperty *property) const;
196     virtual void initializeProperty(QtProperty *property);
197     virtual void uninitializeProperty(QtProperty *property);
198 private:
199     QtStringPropertyManagerPrivate *d_ptr;
200     Q_DECLARE_PRIVATE(QtStringPropertyManager)
201     Q_DISABLE_COPY(QtStringPropertyManager)
202 };
203 
204 class QtDatePropertyManagerPrivate;
205 
206 class QtDatePropertyManager : public QtAbstractPropertyManager
207 {
208     Q_OBJECT
209 public:
210     QtDatePropertyManager(QObject *parent = 0);
211     ~QtDatePropertyManager();
212 
213     QDate value(const QtProperty *property) const;
214     QDate minimum(const QtProperty *property) const;
215     QDate maximum(const QtProperty *property) const;
216 
217 public Q_SLOTS:
218     void setValue(QtProperty *property, const QDate &val);
219     void setMinimum(QtProperty *property, const QDate &minVal);
220     void setMaximum(QtProperty *property, const QDate &maxVal);
221     void setRange(QtProperty *property, const QDate &minVal, const QDate &maxVal);
222 Q_SIGNALS:
223     void valueChanged(QtProperty *property, const QDate &val);
224     void rangeChanged(QtProperty *property, const QDate &minVal, const QDate &maxVal);
225 protected:
226     QString valueText(const QtProperty *property) const;
227     virtual void initializeProperty(QtProperty *property);
228     virtual void uninitializeProperty(QtProperty *property);
229 private:
230     QtDatePropertyManagerPrivate *d_ptr;
231     Q_DECLARE_PRIVATE(QtDatePropertyManager)
232     Q_DISABLE_COPY(QtDatePropertyManager)
233 };
234 
235 class QtTimePropertyManagerPrivate;
236 
237 class QtTimePropertyManager : public QtAbstractPropertyManager
238 {
239     Q_OBJECT
240 public:
241     QtTimePropertyManager(QObject *parent = 0);
242     ~QtTimePropertyManager();
243 
244     QTime value(const QtProperty *property) const;
245 
246 public Q_SLOTS:
247     void setValue(QtProperty *property, const QTime &val);
248 Q_SIGNALS:
249     void valueChanged(QtProperty *property, const QTime &val);
250 protected:
251     QString valueText(const QtProperty *property) const;
252     virtual void initializeProperty(QtProperty *property);
253     virtual void uninitializeProperty(QtProperty *property);
254 private:
255     QtTimePropertyManagerPrivate *d_ptr;
256     Q_DECLARE_PRIVATE(QtTimePropertyManager)
257     Q_DISABLE_COPY(QtTimePropertyManager)
258 };
259 
260 class QtDateTimePropertyManagerPrivate;
261 
262 class QtDateTimePropertyManager : public QtAbstractPropertyManager
263 {
264     Q_OBJECT
265 public:
266     QtDateTimePropertyManager(QObject *parent = 0);
267     ~QtDateTimePropertyManager();
268 
269     QDateTime value(const QtProperty *property) const;
270 
271 public Q_SLOTS:
272     void setValue(QtProperty *property, const QDateTime &val);
273 Q_SIGNALS:
274     void valueChanged(QtProperty *property, const QDateTime &val);
275 protected:
276     QString valueText(const QtProperty *property) const;
277     virtual void initializeProperty(QtProperty *property);
278     virtual void uninitializeProperty(QtProperty *property);
279 private:
280     QtDateTimePropertyManagerPrivate *d_ptr;
281     Q_DECLARE_PRIVATE(QtDateTimePropertyManager)
282     Q_DISABLE_COPY(QtDateTimePropertyManager)
283 };
284 
285 class QtKeySequencePropertyManagerPrivate;
286 
287 class QtKeySequencePropertyManager : public QtAbstractPropertyManager
288 {
289     Q_OBJECT
290 public:
291     QtKeySequencePropertyManager(QObject *parent = 0);
292     ~QtKeySequencePropertyManager();
293 
294     QKeySequence value(const QtProperty *property) const;
295 
296 public Q_SLOTS:
297     void setValue(QtProperty *property, const QKeySequence &val);
298 Q_SIGNALS:
299     void valueChanged(QtProperty *property, const QKeySequence &val);
300 protected:
301     QString valueText(const QtProperty *property) const;
302     virtual void initializeProperty(QtProperty *property);
303     virtual void uninitializeProperty(QtProperty *property);
304 private:
305     QtKeySequencePropertyManagerPrivate *d_ptr;
306     Q_DECLARE_PRIVATE(QtKeySequencePropertyManager)
307     Q_DISABLE_COPY(QtKeySequencePropertyManager)
308 };
309 
310 class QtCharPropertyManagerPrivate;
311 
312 class QtCharPropertyManager : public QtAbstractPropertyManager
313 {
314     Q_OBJECT
315 public:
316     QtCharPropertyManager(QObject *parent = 0);
317     ~QtCharPropertyManager();
318 
319     QChar value(const QtProperty *property) const;
320 
321 public Q_SLOTS:
322     void setValue(QtProperty *property, const QChar &val);
323 Q_SIGNALS:
324     void valueChanged(QtProperty *property, const QChar &val);
325 protected:
326     QString valueText(const QtProperty *property) const;
327     virtual void initializeProperty(QtProperty *property);
328     virtual void uninitializeProperty(QtProperty *property);
329 private:
330     QtCharPropertyManagerPrivate *d_ptr;
331     Q_DECLARE_PRIVATE(QtCharPropertyManager)
332     Q_DISABLE_COPY(QtCharPropertyManager)
333 };
334 
335 class QtEnumPropertyManager;
336 class QtLocalePropertyManagerPrivate;
337 
338 class QtLocalePropertyManager : public QtAbstractPropertyManager
339 {
340     Q_OBJECT
341 public:
342     QtLocalePropertyManager(QObject *parent = 0);
343     ~QtLocalePropertyManager();
344 
345     QtEnumPropertyManager *subEnumPropertyManager() const;
346 
347     QLocale value(const QtProperty *property) const;
348 
349 public Q_SLOTS:
350     void setValue(QtProperty *property, const QLocale &val);
351 Q_SIGNALS:
352     void valueChanged(QtProperty *property, const QLocale &val);
353 protected:
354     QString valueText(const QtProperty *property) const;
355     virtual void initializeProperty(QtProperty *property);
356     virtual void uninitializeProperty(QtProperty *property);
357 private:
358     QtLocalePropertyManagerPrivate *d_ptr;
359     Q_DECLARE_PRIVATE(QtLocalePropertyManager)
360     Q_DISABLE_COPY(QtLocalePropertyManager)
361     Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
362     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
363 };
364 
365 class QtPointPropertyManagerPrivate;
366 
367 class QtPointPropertyManager : public QtAbstractPropertyManager
368 {
369     Q_OBJECT
370 public:
371     QtPointPropertyManager(QObject *parent = 0);
372     ~QtPointPropertyManager();
373 
374     QtIntPropertyManager *subIntPropertyManager() const;
375 
376     QPoint value(const QtProperty *property) const;
377 
378 public Q_SLOTS:
379     void setValue(QtProperty *property, const QPoint &val);
380 Q_SIGNALS:
381     void valueChanged(QtProperty *property, const QPoint &val);
382 protected:
383     QString valueText(const QtProperty *property) const;
384     virtual void initializeProperty(QtProperty *property);
385     virtual void uninitializeProperty(QtProperty *property);
386 private:
387     QtPointPropertyManagerPrivate *d_ptr;
388     Q_DECLARE_PRIVATE(QtPointPropertyManager)
389     Q_DISABLE_COPY(QtPointPropertyManager)
390     Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
391     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
392 };
393 
394 class QtPointFPropertyManagerPrivate;
395 
396 class QtPointFPropertyManager : public QtAbstractPropertyManager
397 {
398     Q_OBJECT
399 public:
400     QtPointFPropertyManager(QObject *parent = 0);
401     ~QtPointFPropertyManager();
402 
403     QtDoublePropertyManager *subDoublePropertyManager() const;
404 
405     QPointF value(const QtProperty *property) const;
406     int decimals(const QtProperty *property) const;
407 
408 public Q_SLOTS:
409     void setValue(QtProperty *property, const QPointF &val);
410     void setDecimals(QtProperty *property, int prec);
411 Q_SIGNALS:
412     void valueChanged(QtProperty *property, const QPointF &val);
413     void decimalsChanged(QtProperty *property, int prec);
414 protected:
415     QString valueText(const QtProperty *property) const;
416     virtual void initializeProperty(QtProperty *property);
417     virtual void uninitializeProperty(QtProperty *property);
418 private:
419     QtPointFPropertyManagerPrivate *d_ptr;
420     Q_DECLARE_PRIVATE(QtPointFPropertyManager)
421     Q_DISABLE_COPY(QtPointFPropertyManager)
422     Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double))
423     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
424 };
425 
426 class QtSizePropertyManagerPrivate;
427 
428 class QtSizePropertyManager : public QtAbstractPropertyManager
429 {
430     Q_OBJECT
431 public:
432     QtSizePropertyManager(QObject *parent = 0);
433     ~QtSizePropertyManager();
434 
435     QtIntPropertyManager *subIntPropertyManager() const;
436 
437     QSize value(const QtProperty *property) const;
438     QSize minimum(const QtProperty *property) const;
439     QSize maximum(const QtProperty *property) const;
440 
441 public Q_SLOTS:
442     void setValue(QtProperty *property, const QSize &val);
443     void setMinimum(QtProperty *property, const QSize &minVal);
444     void setMaximum(QtProperty *property, const QSize &maxVal);
445     void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal);
446 Q_SIGNALS:
447     void valueChanged(QtProperty *property, const QSize &val);
448     void rangeChanged(QtProperty *property, const QSize &minVal, const QSize &maxVal);
449 protected:
450     QString valueText(const QtProperty *property) const;
451     virtual void initializeProperty(QtProperty *property);
452     virtual void uninitializeProperty(QtProperty *property);
453 private:
454     QtSizePropertyManagerPrivate *d_ptr;
455     Q_DECLARE_PRIVATE(QtSizePropertyManager)
456     Q_DISABLE_COPY(QtSizePropertyManager)
457     Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
458     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
459 };
460 
461 class QtSizeFPropertyManagerPrivate;
462 
463 class QtSizeFPropertyManager : public QtAbstractPropertyManager
464 {
465     Q_OBJECT
466 public:
467     QtSizeFPropertyManager(QObject *parent = 0);
468     ~QtSizeFPropertyManager();
469 
470     QtDoublePropertyManager *subDoublePropertyManager() const;
471 
472     QSizeF value(const QtProperty *property) const;
473     QSizeF minimum(const QtProperty *property) const;
474     QSizeF maximum(const QtProperty *property) const;
475     int decimals(const QtProperty *property) const;
476 
477 public Q_SLOTS:
478     void setValue(QtProperty *property, const QSizeF &val);
479     void setMinimum(QtProperty *property, const QSizeF &minVal);
480     void setMaximum(QtProperty *property, const QSizeF &maxVal);
481     void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal);
482     void setDecimals(QtProperty *property, int prec);
483 Q_SIGNALS:
484     void valueChanged(QtProperty *property, const QSizeF &val);
485     void rangeChanged(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal);
486     void decimalsChanged(QtProperty *property, int prec);
487 protected:
488     QString valueText(const QtProperty *property) const;
489     virtual void initializeProperty(QtProperty *property);
490     virtual void uninitializeProperty(QtProperty *property);
491 private:
492     QtSizeFPropertyManagerPrivate *d_ptr;
493     Q_DECLARE_PRIVATE(QtSizeFPropertyManager)
494     Q_DISABLE_COPY(QtSizeFPropertyManager)
495     Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double))
496     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
497 };
498 
499 class QtRectPropertyManagerPrivate;
500 
501 class QtRectPropertyManager : public QtAbstractPropertyManager
502 {
503     Q_OBJECT
504 public:
505     QtRectPropertyManager(QObject *parent = 0);
506     ~QtRectPropertyManager();
507 
508     QtIntPropertyManager *subIntPropertyManager() const;
509 
510     QRect value(const QtProperty *property) const;
511     QRect constraint(const QtProperty *property) const;
512 
513 public Q_SLOTS:
514     void setValue(QtProperty *property, const QRect &val);
515     void setConstraint(QtProperty *property, const QRect &constraint);
516 Q_SIGNALS:
517     void valueChanged(QtProperty *property, const QRect &val);
518     void constraintChanged(QtProperty *property, const QRect &constraint);
519 protected:
520     QString valueText(const QtProperty *property) const;
521     virtual void initializeProperty(QtProperty *property);
522     virtual void uninitializeProperty(QtProperty *property);
523 private:
524     QtRectPropertyManagerPrivate *d_ptr;
525     Q_DECLARE_PRIVATE(QtRectPropertyManager)
526     Q_DISABLE_COPY(QtRectPropertyManager)
527     Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
528     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
529 };
530 
531 class QtRectFPropertyManagerPrivate;
532 
533 class QtRectFPropertyManager : public QtAbstractPropertyManager
534 {
535     Q_OBJECT
536 public:
537     QtRectFPropertyManager(QObject *parent = 0);
538     ~QtRectFPropertyManager();
539 
540     QtDoublePropertyManager *subDoublePropertyManager() const;
541 
542     QRectF value(const QtProperty *property) const;
543     QRectF constraint(const QtProperty *property) const;
544     int decimals(const QtProperty *property) const;
545 
546 public Q_SLOTS:
547     void setValue(QtProperty *property, const QRectF &val);
548     void setConstraint(QtProperty *property, const QRectF &constraint);
549     void setDecimals(QtProperty *property, int prec);
550 Q_SIGNALS:
551     void valueChanged(QtProperty *property, const QRectF &val);
552     void constraintChanged(QtProperty *property, const QRectF &constraint);
553     void decimalsChanged(QtProperty *property, int prec);
554 protected:
555     QString valueText(const QtProperty *property) const;
556     virtual void initializeProperty(QtProperty *property);
557     virtual void uninitializeProperty(QtProperty *property);
558 private:
559     QtRectFPropertyManagerPrivate *d_ptr;
560     Q_DECLARE_PRIVATE(QtRectFPropertyManager)
561     Q_DISABLE_COPY(QtRectFPropertyManager)
562     Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double))
563     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
564 };
565 
566 class QtEnumPropertyManagerPrivate;
567 
568 class QtEnumPropertyManager : public QtAbstractPropertyManager
569 {
570     Q_OBJECT
571 public:
572     QtEnumPropertyManager(QObject *parent = 0);
573     ~QtEnumPropertyManager();
574 
575     int value(const QtProperty *property) const;
576     QStringList enumNames(const QtProperty *property) const;
577     QMap<int, QIcon> enumIcons(const QtProperty *property) const;
578 
579 public Q_SLOTS:
580     void setValue(QtProperty *property, int val);
581     void setEnumNames(QtProperty *property, const QStringList &names);
582     void setEnumIcons(QtProperty *property, const QMap<int, QIcon> &icons);
583 Q_SIGNALS:
584     void valueChanged(QtProperty *property, int val);
585     void enumNamesChanged(QtProperty *property, const QStringList &names);
586     void enumIconsChanged(QtProperty *property, const QMap<int, QIcon> &icons);
587 protected:
588     QString valueText(const QtProperty *property) const;
589     QIcon valueIcon(const QtProperty *property) const;
590     virtual void initializeProperty(QtProperty *property);
591     virtual void uninitializeProperty(QtProperty *property);
592 private:
593     QtEnumPropertyManagerPrivate *d_ptr;
594     Q_DECLARE_PRIVATE(QtEnumPropertyManager)
595     Q_DISABLE_COPY(QtEnumPropertyManager)
596 };
597 
598 class QtFlagPropertyManagerPrivate;
599 
600 class QtFlagPropertyManager : public QtAbstractPropertyManager
601 {
602     Q_OBJECT
603 public:
604     QtFlagPropertyManager(QObject *parent = 0);
605     ~QtFlagPropertyManager();
606 
607     QtBoolPropertyManager *subBoolPropertyManager() const;
608 
609     int value(const QtProperty *property) const;
610     QStringList flagNames(const QtProperty *property) const;
611 
612 public Q_SLOTS:
613     void setValue(QtProperty *property, int val);
614     void setFlagNames(QtProperty *property, const QStringList &names);
615 Q_SIGNALS:
616     void valueChanged(QtProperty *property, int val);
617     void flagNamesChanged(QtProperty *property, const QStringList &names);
618 protected:
619     QString valueText(const QtProperty *property) const;
620     virtual void initializeProperty(QtProperty *property);
621     virtual void uninitializeProperty(QtProperty *property);
622 private:
623     QtFlagPropertyManagerPrivate *d_ptr;
624     Q_DECLARE_PRIVATE(QtFlagPropertyManager)
625     Q_DISABLE_COPY(QtFlagPropertyManager)
626     Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool))
627     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
628 };
629 
630 class QtSizePolicyPropertyManagerPrivate;
631 
632 class QtSizePolicyPropertyManager : public QtAbstractPropertyManager
633 {
634     Q_OBJECT
635 public:
636     QtSizePolicyPropertyManager(QObject *parent = 0);
637     ~QtSizePolicyPropertyManager();
638 
639     QtIntPropertyManager *subIntPropertyManager() const;
640     QtEnumPropertyManager *subEnumPropertyManager() const;
641 
642     QSizePolicy value(const QtProperty *property) const;
643 
644 public Q_SLOTS:
645     void setValue(QtProperty *property, const QSizePolicy &val);
646 Q_SIGNALS:
647     void valueChanged(QtProperty *property, const QSizePolicy &val);
648 protected:
649     QString valueText(const QtProperty *property) const;
650     virtual void initializeProperty(QtProperty *property);
651     virtual void uninitializeProperty(QtProperty *property);
652 private:
653     QtSizePolicyPropertyManagerPrivate *d_ptr;
654     Q_DECLARE_PRIVATE(QtSizePolicyPropertyManager)
655     Q_DISABLE_COPY(QtSizePolicyPropertyManager)
656     Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
657     Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
658     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
659 };
660 
661 class QtFontPropertyManagerPrivate;
662 
663 class QtFontPropertyManager : public QtAbstractPropertyManager
664 {
665     Q_OBJECT
666 public:
667     QtFontPropertyManager(QObject *parent = 0);
668     ~QtFontPropertyManager();
669 
670     QtIntPropertyManager *subIntPropertyManager() const;
671     QtEnumPropertyManager *subEnumPropertyManager() const;
672     QtBoolPropertyManager *subBoolPropertyManager() const;
673 
674     QFont value(const QtProperty *property) const;
675 
676 public Q_SLOTS:
677     void setValue(QtProperty *property, const QFont &val);
678 Q_SIGNALS:
679     void valueChanged(QtProperty *property, const QFont &val);
680 protected:
681     QString valueText(const QtProperty *property) const;
682     QIcon valueIcon(const QtProperty *property) const;
683     virtual void initializeProperty(QtProperty *property);
684     virtual void uninitializeProperty(QtProperty *property);
685 private:
686     QtFontPropertyManagerPrivate *d_ptr;
687     Q_DECLARE_PRIVATE(QtFontPropertyManager)
688     Q_DISABLE_COPY(QtFontPropertyManager)
689     Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
690     Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int))
691     Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool))
692     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
693     Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseChanged())
694     Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseDelayedChange())
695 };
696 
697 class QtColorPropertyManagerPrivate;
698 
699 class QtColorPropertyManager : public QtAbstractPropertyManager
700 {
701     Q_OBJECT
702 public:
703     QtColorPropertyManager(QObject *parent = 0);
704     ~QtColorPropertyManager();
705 
706     QtIntPropertyManager *subIntPropertyManager() const;
707 
708     QColor value(const QtProperty *property) const;
709 
710 public Q_SLOTS:
711     void setValue(QtProperty *property, const QColor &val);
712 Q_SIGNALS:
713     void valueChanged(QtProperty *property, const QColor &val);
714 protected:
715     QString valueText(const QtProperty *property) const;
716     QIcon valueIcon(const QtProperty *property) const;
717     virtual void initializeProperty(QtProperty *property);
718     virtual void uninitializeProperty(QtProperty *property);
719 private:
720     QtColorPropertyManagerPrivate *d_ptr;
721     Q_DECLARE_PRIVATE(QtColorPropertyManager)
722     Q_DISABLE_COPY(QtColorPropertyManager)
723     Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int))
724     Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *))
725 };
726 
727 class QtCursorPropertyManagerPrivate;
728 
729 class QtCursorPropertyManager : public QtAbstractPropertyManager
730 {
731     Q_OBJECT
732 public:
733     QtCursorPropertyManager(QObject *parent = 0);
734     ~QtCursorPropertyManager();
735 
736 #ifndef QT_NO_CURSOR
737     QCursor value(const QtProperty *property) const;
738 #endif
739 
740 public Q_SLOTS:
741     void setValue(QtProperty *property, const QCursor &val);
742 Q_SIGNALS:
743     void valueChanged(QtProperty *property, const QCursor &val);
744 protected:
745     QString valueText(const QtProperty *property) const;
746     QIcon valueIcon(const QtProperty *property) const;
747     virtual void initializeProperty(QtProperty *property);
748     virtual void uninitializeProperty(QtProperty *property);
749 private:
750     QtCursorPropertyManagerPrivate *d_ptr;
751     Q_DECLARE_PRIVATE(QtCursorPropertyManager)
752     Q_DISABLE_COPY(QtCursorPropertyManager)
753 };
754 
755 QT_END_NAMESPACE
756 
757 #endif
758