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