QXRD  0.11.16
qcepproperty.h
Go to the documentation of this file.
1 #ifndef QCEPPROPERTY_H
2 #define QCEPPROPERTY_H
3 
4 #include "qcepmacros.h"
5 
6 #include <QObject>
7 #include <QVariant>
8 #include <QMutex>
9 #include <QVector>
10 #include <QList>
11 #include <QString>
12 #include <QDateTime>
13 #include <QVector>
14 #include <QStringList>
15 #include <QDateTime>
16 #include "qcepsettingssaver-ptr.h"
17 #include <QSpinBox>
18 #include <QComboBox>
19 #include <QLineEdit>
20 #include <QDoubleSpinBox>
21 #include <QLabel>
22 #include <QAbstractButton>
23 #include <QSettings>
24 #include <QProgressBar>
25 #include <QLCDNumber>
26 #include <QTextEdit>
27 
28 typedef void (CustomSettingsSaver)(const QVariant &val, QSettings *settings, QString name);
29 
30 class QcepProperty : public QObject {
31  Q_OBJECT
32 public:
33  QcepProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QString toolTip);
34 
35  virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime());
36 
37  QString name() const;
38  void setName(QString name);
39 
40  QString parentName() const;
41  QString toolTip() const;
42  void setToolTip(QString tip);
43  QString expandedToolTip() const;
44 
45  void setWidgetToolTip(QWidget *widget);
46 
47  int index();
48  int incIndex(int step);
49 
50  static void registerMetaTypes();
51 
52  int debug() const;
53  void setDebug(int dbg);
54 
55  void setSaver(QcepSettingsSaverWPtr saver);
56 
57  static void setSettingsValue(QSettings *settings, QString name, QVariant value);
58  static void writeSettings(QObject *object, QSettings *settings, QString section);
59  static void readSettings(QObject *object, QSettings *settings, QString section);
60  static void writeSettings(QObject *object, const QMetaObject *meta, QString groupName, QSettings *settings, bool includeDynamic = false);
61  static void readSettings(QObject *object, const QMetaObject *meta, QString groupName, QSettings *settings, bool includeDynamic = false);
62  static void writeSettings(QObject *object, QString groupName, QSettings *settings, bool includeDynamic = false);
63  static void readSettings(QObject *object, QString groupName, QSettings *settings, bool includeDynamic = false);
64 // static void dumpMetaData(const QMetaObject *meta);
65 
66  static void registerCustomSaver(QString typeName, CustomSettingsSaver *saver);
67 
68 protected:
69  mutable QMutex m_Mutex;
71 
72 private:
73  int m_Debug;
75  QString m_Name;
76  QAtomicInt m_Index;
77  QObject *m_Parent;
78  QString m_ToolTip;
79 
80  static QMap<QString, CustomSettingsSaver*> m_CustomSavers;
81 };
82 
84  Q_OBJECT
85 public:
86  QcepDoubleProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, double value, QString toolTip);
87 
88  double value() const;
89  double defaultValue() const;
90 
91  void linkTo(QDoubleSpinBox *spinBox);
92  void linkTo(QLabel *label);
93  void linkTo(QProgressBar *progress);
94  void linkTo(QLCDNumber *number);
95 
96 public slots:
97  void setValue(double val, int index);
98  void setValue(double val);
99  void incValue(double step);
100  void setDefaultValue(double val);
101  void resetValue();
102 
103 signals:
104  void valueChanged(double val, int index);
105  void stringValueChanged(QString val);
106 
107 private:
108  double m_Default;
109  double m_Value;
110 };
111 
113  Q_OBJECT
114 
115 public:
116  QcepDoublePropertyDoubleSpinBoxHelper(QDoubleSpinBox *spinBox, QcepDoubleProperty *property);
117  void connect();
118 
119 public slots:
120  void setValue(double value, int index);
121  void setValue(double value);
122 
123 signals:
124  void valueChanged(double value, int index);
125 
126 private:
127  QDoubleSpinBox *m_DoubleSpinBox;
129 };
130 
132  Q_OBJECT
133 public:
134  QcepIntProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, int value, QString toolTip);
135 
136  int value() const;
137  int defaultValue() const;
138 
139  void linkTo(QSpinBox *spinBox);
140  void linkTo(QComboBox *comboBox);
141  void linkTo(QLabel *label);
142  void linkTo(QProgressBar *progress);
143  void linkTo(QLCDNumber *number);
144 
145 public slots:
146  void setValue(int val, int index);
147  void setValue(int val);
148  void incValue(int step);
149  void setDefaultValue(int val);
150  void resetValue();
151 
152 signals:
153  void valueChanged(int val, int index);
154  void stringValueChanged(QString val);
155 
156 private:
157  QAtomicInt m_Default;
158  QAtomicInt m_Value;
159 };
160 
161 class QcepIntPropertySpinBoxHelper : public QObject {
162  Q_OBJECT
163 
164 public:
165  QcepIntPropertySpinBoxHelper(QSpinBox *spinBox, QcepIntProperty *property);
166  void connect();
167 
168 public slots:
169  void setValue(int value, int index);
170  void setValue(int value);
171 
172 signals:
173  void valueChanged(int value, int index);
174 
175 private:
176  QSpinBox *m_SpinBox;
178 };
179 
180 class QcepIntPropertyComboBoxHelper : public QObject {
181  Q_OBJECT
182 
183 public:
184  QcepIntPropertyComboBoxHelper(QComboBox *comboBox, QcepIntProperty *property);
185  void connect();
186 
187 public slots:
188  void setCurrentIndex(int value, int index);
189  void setCurrentIndex(int value);
190 
191 signals:
192  void currentIndexChanged(int value, int index);
193 
194 private:
195  QComboBox *m_ComboBox;
197 };
198 
200  Q_OBJECT
201 public:
202  QcepBoolProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, bool value, QString toolTip);
203 
204  bool value() const;
205  bool defaultValue() const;
206 
207  void linkTo(QAbstractButton *button);
208 
209 public slots:
210  void setValue(bool val, int index);
211  void setValue(bool val);
212  void setDefaultValue(bool val);
213  void resetValue();
214  void toggle();
215 
216 signals:
217  void valueChanged(bool val, int index);
218 
219 private:
220  QAtomicInt m_Default;
221  QAtomicInt m_Value;
222 };
223 
224 class QcepBoolPropertyButtonHelper : public QObject {
225  Q_OBJECT
226 
227 public:
228  QcepBoolPropertyButtonHelper(QAbstractButton *button, QcepBoolProperty *property);
229  void connect();
230 
231 public slots:
232  void setChecked(bool value, int index);
233  void setChecked(bool value);
234 
235 signals:
236  void toggled(bool value, int index);
237 
238 private:
239  QAbstractButton *m_Button;
241 };
242 
244  Q_OBJECT
245 public:
246  QcepStringProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QString value, QString toolTip);
247 
248  QString value() const;
249  QString defaultValue() const;
250 
251  void linkTo(QComboBox *comboBox);
252  void linkTo(QLineEdit *lineEdit);
253  void linkTo(QLabel *label);
254  void linkTo(QLCDNumber *number);
255  void linkTo(QTextEdit *number);
256 
257 public slots:
258  void setValue(QString val, int index);
259  void setValue(QString val);
260  void setDefaultValue(QString val);
261  void resetValue();
262 
263 signals:
264  void valueChanged(QString val, int index);
265 
266 private:
267  QString m_Default;
268  QString m_Value;
269 };
270 
271 class QcepStringPropertyComboBoxHelper : public QObject {
272  Q_OBJECT
273 
274 public:
275  QcepStringPropertyComboBoxHelper(QComboBox *comboBox, QcepStringProperty *property);
276  void connect();
277 
278 public slots:
279  void setValue(QString value, int index);
280  void setCurrentIndex(int current);
281 
282 signals:
283  void valueChanged(QString value, int index);
284 
285 private:
286  QComboBox *m_ComboBox;
288 };
289 
290 class QcepStringPropertyLineEditHelper : public QObject {
291  Q_OBJECT
292 
293 public:
294  QcepStringPropertyLineEditHelper(QLineEdit *lineEdit, QcepStringProperty *property);
295  void connect();
296 
297 public slots:
298  void setText(QString value, int index);
299  void setText(QString value);
300 
301 signals:
302  void textEdited(QString value, int index);
303 
304 private:
305  QLineEdit *m_LineEdit;
307 };
308 
309 class QcepStringPropertyTextEditHelper : public QObject {
310  Q_OBJECT
311 
312 public:
313  QcepStringPropertyTextEditHelper(QTextEdit *textEdit, QcepStringProperty *property);
314  void connect();
315 
316 public slots:
317  void setText(QString value, int index);
318  void setText();
319 
320 signals:
321  void textEdited(QString value, int index);
322 
323 private:
324  QTextEdit *m_TextEdit;
326 };
327 
329  Q_OBJECT
330 public:
331  QcepDateTimeProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QDateTime value, QString toolTip);
332 
333  QDateTime value() const;
334  QDateTime defaultValue() const;
335 
336 public slots:
337  void setValue(QDateTime val, int index);
338  void setValue(QDateTime val);
339  void setDefaultValue(QDateTime val);
340  void resetValue();
341 
342 signals:
343  void valueChanged(QDateTime val, int index);
344 
345 private:
346  QDateTime m_Default;
347  QDateTime m_Value;
348 };
349 
350 
352  Q_OBJECT
353 public:
354  QcepDoubleListProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepDoubleList value, QString toolTip);
355 
356  QcepDoubleList value() const;
358  QString toString(const QcepDoubleList &list);
359 
360 public slots:
361  void setValue(QcepDoubleList val, int index);
362  void setValue(QcepDoubleList val);
363  void incValue(QcepDoubleList step);
365  void resetValue();
366  void clear();
367  void appendValue(double val);
368 
369 signals:
370  void valueChanged(QcepDoubleList val, int index);
371 
372 private:
375 };
376 
378  Q_OBJECT
379 public:
380  QcepDoubleVectorProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepDoubleVector value, QString toolTip);
381 
382  QcepDoubleVector value() const;
384  QString toString(const QcepDoubleVector &list);
385 
386 public slots:
387  void setValue(QcepDoubleVector val, int index);
388  void setValue(QcepDoubleVector val);
389  void incValue(QcepDoubleVector step);
391  void resetValue();
392  void clear();
393  void appendValue(double val);
394 
395 signals:
396  void valueChanged(QcepDoubleVector val, int index);
397 
398 private:
401 };
402 
404  Q_OBJECT
405 public:
406  QcepIntListProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepIntList value, QString toolTip);
407 
408  QcepIntList value() const;
409  QcepIntList defaultValue() const;
410  QString toString(const QcepIntList &list);
411 
412 public slots:
413  void setValue(QcepIntList val, int index);
414  void setValue(QcepIntList val);
415  void incValue(QcepIntList step);
416  void setDefaultValue(QcepIntList val);
417  void resetValue();
418  void clear();
419  void appendValue(int val);
420 
421 signals:
422  void valueChanged(QcepIntList val, int index);
423 
424 private:
427 };
428 
430  Q_OBJECT
431 public:
432  QcepIntVectorProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepIntVector value, QString toolTip);
433 
434  QcepIntVector value() const;
435  QcepIntVector defaultValue() const;
436  QString toString(const QcepIntVector &list);
437 
438 public slots:
439  void setValue(QcepIntVector val, int index);
440  void setValue(QcepIntVector val);
441  void incValue(QcepIntVector step);
442  void setDefaultValue(QcepIntVector val);
443  void resetValue();
444  void clear();
445  void appendValue(int val);
446 
447 signals:
448  void valueChanged(QcepIntVector val, int index);
449 
450 private:
453 };
454 
456  Q_OBJECT
457 public:
458  QcepStringListProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QStringList value, QString toolTip);
459 
460  QStringList value() const;
461  QStringList defaultValue() const;
462  QString toString(const QStringList &list);
463 
464 public slots:
465  void setValue(QStringList val, int index);
466  void setValue(QStringList val);
467  void setDefaultValue(QStringList val);
468  void resetValue();
469  void clear();
470  void appendValue(QString val);
471 
472 signals:
473  void valueChanged(QStringList val, int index);
474 
475 private:
476  QStringList m_Default;
477  QStringList m_Value;
478 };
479 
481  Q_OBJECT
482 public:
483  QcepByteArrayProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QByteArray value, QString toolTip);
484 
485  QByteArray value() const;
486  QByteArray defaultValue() const;
487  QString toString(const QByteArray &list);
488 
489 public slots:
490  void setValue(QByteArray val, int index);
491  void setValue(QByteArray val);
492  void setDefaultValue(QByteArray val);
493  void resetValue();
494  void clear();
495 
496 signals:
497  void valueChanged(QByteArray val, int index);
498 
499 private:
500  QByteArray m_Default;
501  QByteArray m_Value;
502 };
503 
505  Q_OBJECT
506 public:
507  QcepDoublePointProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QPointF value, QString toolTip);
508 
509  QPointF value() const;
510  QPointF defaultValue() const;
511  double subValue(int axis) const;
512 
513  void linkTo(QDoubleSpinBox *xSpinBox, QDoubleSpinBox *ySpinBox);
514  void linkTo(int axis, QDoubleSpinBox *spinBox);
515 
516 public slots:
517  void setValue(QPointF val, int index);
518  void setValue(QPointF val);
519  void setDefaultValue(QPointF val);
520  void resetValue();
521  void setSubValue(int axis, double value, int index);
522  void setSubValue(int axis, double value);
523 
524 signals:
525  void valueChanged(QPointF val, int index);
526  void subValueChanged(int axis, double val, int index);
527 
528 private:
529  QPointF m_Default;
530  QPointF m_Value;
531 };
532 
534  Q_OBJECT
535 
536 public:
537  QcepDoublePointPropertyDoubleSpinBoxHelper(QDoubleSpinBox *spinBox, QcepDoublePointProperty *property, int axis);
538  void connect();
539 
540 public slots:
541  void setSubValue(int axis, double value, int index);
542  void setValue(double value);
543 
544 signals:
545  void subValueChanged(int axis, double value, int index);
546 
547 private:
548  QDoubleSpinBox *m_DoubleSpinBox;
550  int m_Axis;
551 };
552 
554  Q_OBJECT
555 public:
556  QcepDoubleRectProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QRectF value, QString toolTip);
557 
558  QRectF value() const;
559  QRectF defaultValue() const;
560 
561 public slots:
562  void setValue(QRectF val, int index);
563  void setValue(QRectF val);
564  void setDefaultValue(QRectF val);
565  void resetValue();
566 
567 signals:
568  void valueChanged(QRectF val, int index);
569 
570 private:
571  QRectF m_Default;
572  QRectF m_Value;
573 };
574 
576  Q_OBJECT
577 public:
578  QcepPolygonProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepPolygon value, QString toolTip);
579 
580  QcepPolygon value() const;
581  QcepPolygon defaultValue() const;
582 
583 public slots:
584  void setValue(QcepPolygon val, int index);
585  void setValue(QcepPolygon val);
586  void setDefaultValue(QcepPolygon val);
587  void resetValue();
588  void appendValue(QPointF pt);
589  void clear();
590 
591 signals:
592  void valueChanged(QcepPolygon val, int index);
593 
594 private:
597 };
598 
600  Q_OBJECT
601 public:
602  QcepInt64Property(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, qint64 value, QString toolTip);
603 
604  qint64 value() const;
605  qint64 defaultValue() const;
606 
607 // void linkTo(QSpinBox *spinBox);
608 // void linkTo(QComboBox *comboBox);
609 // void linkTo(QLabel *label);
610 // void linkTo(QProgressBar *progress);
611 // void linkTo(QLCDNumber *number);
612 
613 public slots:
614  void setValue(qint64 val, int index);
615  void setValue(qint64 val);
616  void incValue(qint64 step);
617  void setDefaultValue(qint64 val);
618  void resetValue();
619 
620 signals:
621  void valueChanged(qint64 val, int index);
622  void stringValueChanged(QString val);
623 
624 private:
625  qint64 m_Default;
626  qint64 m_Value;
627 };
628 
629 #define QCEP_DOUBLE_PROPERTY(propname) \
630 public: \
631 double get_##propname() const \
632 { \
633  return m_##propname.value(); \
634 } \
635 \
636 void set_##propname(double val) \
637 { \
638  m_##propname.setValue(val); \
639 } \
640 \
641 double def_##propname() const \
642 { \
643  return m_##propname.defaultValue(); \
644 } \
645 \
646 void setdef_##propname(double val) \
647 { \
648  m_##propname.setDefaultValue(val); \
649 } \
650 \
651 void reset_##propname() \
652 { \
653  m_##propname.resetValue(); \
654 } \
655 \
656 QcepDoubleProperty *prop_##propname() { \
657  return &m_##propname; \
658 } \
659 \
660 private: \
661 QcepDoubleProperty m_##propname;
662 
663 
664 #define QCEP_STRING_PROPERTY(propname) \
665 public: \
666 QString get_##propname() const \
667 { \
668  return m_##propname.value(); \
669 } \
670 \
671 void set_##propname(QString val) \
672 { \
673  m_##propname.setValue(val); \
674 } \
675 \
676 QString def_##propname() const \
677 { \
678  return m_##propname.defaultValue(); \
679 } \
680 \
681 void setdef_##propname(QString val) \
682 { \
683  m_##propname.setDefaultValue(val); \
684 } \
685 \
686 void reset_##propname() \
687 { \
688  m_##propname.resetValue(); \
689 } \
690 \
691 QcepStringProperty *prop_##propname() { \
692  return &m_##propname; \
693 } \
694 \
695 private: \
696 QcepStringProperty m_##propname;
697 
698 #define QCEP_INTEGER_PROPERTY(propname) \
699 public: \
700 int get_##propname() const \
701 { \
702  return m_##propname.value(); \
703 } \
704 \
705 void set_##propname(int val) \
706 { \
707  m_##propname.setValue(val); \
708 } \
709 \
710 int def_##propname() const \
711 { \
712  return m_##propname.defaultValue(); \
713 } \
714 \
715 void setdef_##propname(int val) \
716 { \
717  m_##propname.setDefaultValue(val); \
718 } \
719 \
720 void reset_##propname() \
721 { \
722  m_##propname.resetValue(); \
723 } \
724 \
725 QcepIntProperty *prop_##propname() { \
726  return &m_##propname; \
727 } \
728 \
729 private: \
730 QcepIntProperty m_##propname;
731 
732 #define QCEP_BOOLEAN_PROPERTY(propname) \
733 public: \
734 bool get_##propname() const \
735 { \
736  return m_##propname.value(); \
737 } \
738 \
739 void set_##propname(bool val) \
740 { \
741  m_##propname.setValue(val); \
742 } \
743 \
744 bool def_##propname() const \
745 { \
746  return m_##propname.defaultValue(); \
747 } \
748 \
749 void setdef_##propname(bool val) \
750 { \
751  m_##propname.setDefaultValue(val); \
752 } \
753 \
754 void reset_##propname() \
755 { \
756  m_##propname.resetValue(); \
757 } \
758 \
759 void toggle_##propname() \
760 { \
761  m_##propname.toggle(); \
762 } \
763 \
764 QcepBoolProperty *prop_##propname() { \
765  return &m_##propname; \
766 } \
767 \
768 private: \
769 QcepBoolProperty m_##propname;
770 
771 #define QCEP_DATETIME_PROPERTY(propname) \
772 public: \
773 QDateTime get_##propname() const \
774 { \
775  return m_##propname.value(); \
776 } \
777 \
778 void set_##propname(QDateTime val) \
779 { \
780  m_##propname.setValue(val); \
781 } \
782 \
783 QDateTime def_##propname() const \
784 { \
785  return m_##propname.defaultValue(); \
786 } \
787 \
788 void setdef_##propname(QDateTime val) \
789 { \
790  m_##propname.setDefaultValue(val); \
791 } \
792 \
793 void reset_##propname() \
794 { \
795  m_##propname.resetValue(); \
796 } \
797 \
798 QcepDateTimeProperty *prop_##propname() { \
799  return &m_##propname; \
800 } \
801 \
802 private: \
803 QcepDateTimeProperty m_##propname;
804 
805 #define QCEP_DOUBLE_LIST_PROPERTY(propname) \
806 public: \
807 QcepDoubleList get_##propname() const \
808 { \
809  return m_##propname.value(); \
810 } \
811 \
812 void set_##propname(QcepDoubleList val) \
813 { \
814  m_##propname.setValue(val); \
815 } \
816 \
817 QcepDoubleList def_##propname() const \
818 { \
819  return m_##propname.defaultValue(); \
820 } \
821 \
822 void setdef_##propname(QcepDoubleList val) \
823 { \
824  m_##propname.setDefaultValue(val); \
825 } \
826 \
827 void reset_##propname() \
828 { \
829  m_##propname.resetValue(); \
830 } \
831 \
832 QcepDoubleListProperty *prop_##propname() { \
833  return &m_##propname; \
834 } \
835 \
836 private: \
837 QcepDoubleListProperty m_##propname;
838 
839 #define QCEP_DOUBLE_VECTOR_PROPERTY(propname) \
840 public: \
841 QcepDoubleVector get_##propname() const \
842 { \
843  return m_##propname.value(); \
844 } \
845 \
846 void set_##propname(QcepDoubleVector val) \
847 { \
848  m_##propname.setValue(val); \
849 } \
850 \
851 QcepDoubleVector def_##propname() const \
852 { \
853  return m_##propname.defaultValue(); \
854 } \
855 \
856 void setdef_##propname(QcepDoubleVector val) \
857 { \
858  m_##propname.setDefaultValue(val); \
859 } \
860 \
861 void reset_##propname() \
862 { \
863  m_##propname.resetValue(); \
864 } \
865 \
866 QcepDoubleVectorProperty *prop_##propname() { \
867  return &m_##propname; \
868 } \
869 \
870 private: \
871 QcepDoubleVectorProperty m_##propname;
872 
873 #define QCEP_INTEGER_LIST_PROPERTY(propname) \
874 public: \
875 QcepIntList get_##propname() const \
876 { \
877  return m_##propname.value(); \
878 } \
879 \
880 void set_##propname(QcepIntList val) \
881 { \
882  m_##propname.setValue(val); \
883 } \
884 \
885 QcepIntList def_##propname() const \
886 { \
887  return m_##propname.defaultValue(); \
888 } \
889 \
890 void setdef_##propname(QcepIntList val) \
891 { \
892  m_##propname.setDefaultValue(val); \
893 } \
894 \
895 void reset_##propname() \
896 { \
897  m_##propname.resetValue(); \
898 } \
899 \
900 QcepIntListProperty *prop_##propname() { \
901  return &m_##propname; \
902 } \
903 \
904 private: \
905 QcepIntListProperty m_##propname;
906 
907 #define QCEP_INTEGER_VECTOR_PROPERTY(propname) \
908 public: \
909 QcepIntVector get_##propname() const \
910 { \
911  return m_##propname.value(); \
912 } \
913 \
914 void set_##propname(QcepIntVector val) \
915 { \
916  m_##propname.setValue(val); \
917 } \
918 \
919 QcepIntVector def_##propname() const \
920 { \
921  return m_##propname.defaultValue(); \
922 } \
923 \
924 void setdef_##propname(QcepIntVector val) \
925 { \
926  m_##propname.setDefaultValue(val); \
927 } \
928 \
929 void reset_##propname() \
930 { \
931  m_##propname.resetValue(); \
932 } \
933 \
934 QcepIntVectorProperty *prop_##propname() { \
935  return &m_##propname; \
936 } \
937 \
938 private: \
939 QcepIntVectorProperty m_##propname;
940 
941 #define QCEP_STRING_LIST_PROPERTY(propname) \
942 public: \
943 QStringList get_##propname() const \
944 { \
945  return m_##propname.value(); \
946 } \
947 \
948 void set_##propname(QStringList val) \
949 { \
950  m_##propname.setValue(val); \
951 } \
952 \
953 QcepStringList def_##propname() const \
954 { \
955  return m_##propname.defaultValue(); \
956 } \
957 \
958 void setdef_##propname(QStringList val) \
959 { \
960  m_##propname.setDefaultValue(val); \
961 } \
962 \
963 void reset_##propname() \
964 { \
965  m_##propname.resetValue(); \
966 } \
967 \
968 QcepStringListProperty *prop_##propname() { \
969  return &m_##propname; \
970 } \
971 \
972 private: \
973 QcepStringListProperty m_##propname;
974 
975 #define QCEP_BYTE_ARRAY_PROPERTY(propname) \
976 public: \
977 QByteArray get_##propname() const \
978 { \
979  return m_##propname.value(); \
980 } \
981 \
982 void set_##propname(QByteArray val) \
983 { \
984  m_##propname.setValue(val); \
985 } \
986 \
987 QByteArray def_##propname() const \
988 { \
989  return m_##propname.defaultValue(); \
990 } \
991 \
992 void setdef_##propname(QByteArray val) \
993 { \
994  m_##propname.setDefaultValue(val); \
995 } \
996 \
997 void reset_##propname() \
998 { \
999  m_##propname.resetValue(); \
1000 } \
1001 \
1002 QcepByteArrayProperty *prop_##propname() { \
1003  return &m_##propname; \
1004 } \
1005 \
1006 private: \
1007 QcepByteArrayProperty m_##propname;
1008 
1009 #define QCEP_DOUBLE_POINT_PROPERTY(propname) \
1010 public: \
1011 QPointF get_##propname() const \
1012 { \
1013  return m_##propname.value(); \
1014 } \
1015 \
1016 void set_##propname(QPointF val) \
1017 { \
1018  m_##propname.setValue(val); \
1019 } \
1020 \
1021 QPointF def_##propname() const \
1022 { \
1023  return m_##propname.defaultValue(); \
1024 } \
1025 \
1026 void setdef_##propname(QPointF val) \
1027 { \
1028  m_##propname.setDefaultValue(val); \
1029 } \
1030 \
1031 void reset_##propname() \
1032 { \
1033  m_##propname.resetValue(); \
1034 } \
1035 \
1036 QcepDoublePointProperty *prop_##propname() { \
1037  return &m_##propname; \
1038 } \
1039 \
1040 private: \
1041 QcepDoublePointProperty m_##propname;
1042 
1043 #define QCEP_DOUBLE_RECT_PROPERTY(propname) \
1044 public: \
1045 QRectF get_##propname() const \
1046 { \
1047  return m_##propname.value(); \
1048 } \
1049 \
1050 void set_##propname(QRectF val) \
1051 { \
1052  m_##propname.setValue(val); \
1053 } \
1054 \
1055 QRectF def_##propname() const \
1056 { \
1057  return m_##propname.defaultValue(); \
1058 } \
1059 \
1060 void setdef_##propname(QRectF val) \
1061 { \
1062  m_##propname.setDefaultValue(val); \
1063 } \
1064 \
1065 void reset_##propname() \
1066 { \
1067  m_##propname.resetValue(); \
1068 } \
1069 \
1070 QcepDoubleRectProperty *prop_##propname() { \
1071  return &m_##propname; \
1072 } \
1073 \
1074 private: \
1075 QcepDoubleRectProperty m_##propname;
1076 
1077 #define QCEP_POLYGON_PROPERTY(propname) \
1078 public: \
1079 QcepPolygon get_##propname() const \
1080 { \
1081  return m_##propname.value(); \
1082 } \
1083 \
1084 void set_##propname(QcepPolygon val) \
1085 { \
1086  m_##propname.setValue(val); \
1087 } \
1088 \
1089 QcepPolygon def_##propname() const \
1090 { \
1091  return m_##propname.defaultValue(); \
1092 } \
1093 \
1094 void setdef_##propname(QcepPolygon val) \
1095 { \
1096  m_##propname.setDefaultValue(val); \
1097 } \
1098 \
1099 void reset_##propname() \
1100 { \
1101  m_##propname.resetValue(); \
1102 } \
1103 \
1104 QcepPolygonProperty *prop_##propname() { \
1105  return &m_##propname; \
1106 } \
1107 \
1108 private: \
1109 QcepPolygonProperty m_##propname;
1110 
1111 #define QCEP_INTEGER64_PROPERTY(propname) \
1112 public: \
1113 qint64 get_##propname() const \
1114 { \
1115  return m_##propname.value(); \
1116 } \
1117 \
1118 void set_##propname(qint64 val) \
1119 { \
1120  m_##propname.setValue(val); \
1121 } \
1122 \
1123 qint64 def_##propname() const \
1124 { \
1125  return m_##propname.defaultValue(); \
1126 } \
1127 \
1128 void setdef_##propname(qint64 val) \
1129 { \
1130  m_##propname.setDefaultValue(val); \
1131 } \
1132 \
1133 void reset_##propname() \
1134 { \
1135  m_##propname.resetValue(); \
1136 } \
1137 \
1138 QcepInt64Property *prop_##propname() { \
1139  return &m_##propname; \
1140 } \
1141 \
1142 private: \
1143 QcepInt64Property m_##propname;
1144 
1145 #endif // QCEPPROPERTY_H
void setName(QString name)
QVector< int > QcepIntVector
Definition: qcepmacros.h:23
void setSubValue(int axis, double value, int index)
QcepDoubleList m_Default
Definition: qcepproperty.h:373
double defaultValue() const
void currentIndexChanged(int value, int index)
void setDefaultValue(qint64 val)
void setValue(QcepIntVector val, int index)
void stringValueChanged(QString val)
QcepPolygon defaultValue() const
QcepIntList defaultValue() const
QRectF defaultValue() const
void appendValue(QPointF pt)
static void readSettings(QObject *object, QSettings *settings, QString section)
QcepStringPropertyLineEditHelper(QLineEdit *lineEdit, QcepStringProperty *property)
void setValue(int val, int index)
QcepIntList value() const
void valueChanged(QString val, int index)
void setWidgetToolTip(QWidget *widget)
QcepBoolProperty * m_Property
Definition: qcepproperty.h:240
void setDefaultValue(QcepIntList val)
QcepStringPropertyTextEditHelper(QTextEdit *textEdit, QcepStringProperty *property)
void linkTo(QAbstractButton *button)
QcepPolygon m_Default
Definition: qcepproperty.h:595
QcepPolygon m_Value
Definition: qcepproperty.h:596
QObject * m_Parent
Definition: qcepproperty.h:77
void setDefaultValue(int val)
void setValue(QString value, int index)
void textEdited(QString value, int index)
void valueChanged(QDateTime val, int index)
QcepDoubleVector defaultValue() const
double value() const
void linkTo(QDoubleSpinBox *spinBox)
void setDefaultValue(QRectF val)
QAtomicInt m_Default
Definition: qcepproperty.h:220
QByteArray defaultValue() const
void incValue(QcepIntVector step)
QcepIntVector m_Value
Definition: qcepproperty.h:452
void setDefaultValue(QPointF val)
QPointF defaultValue() const
void setValue(QcepIntList val, int index)
QMutex m_Mutex
Definition: qcepproperty.h:69
QcepIntVectorProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepIntVector value, QString toolTip)
QcepDoubleListProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepDoubleList value, QString toolTip)
static void registerMetaTypes()
void incValue(QcepDoubleVector step)
void setValue(double val, int index)
void incValue(int step)
void linkTo(QDoubleSpinBox *xSpinBox, QDoubleSpinBox *ySpinBox)
QcepIntList m_Default
Definition: qcepproperty.h:425
int incIndex(int step)
void setValue(QRectF val, int index)
QcepDoublePropertyDoubleSpinBoxHelper(QDoubleSpinBox *spinBox, QcepDoubleProperty *property)
QString m_Name
Definition: qcepproperty.h:75
int defaultValue() const
QcepDoubleVectorProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepDoubleVector value, QString toolTip)
QcepPolygon value() const
void setValue(QDateTime val, int index)
QcepInt64Property(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, qint64 value, QString toolTip)
void incValue(QcepDoubleList step)
void setSaver(QcepSettingsSaverWPtr saver)
void setValue(QStringList val, int index)
void setText(QString value, int index)
void setDefaultValue(QString val)
void valueChanged(QcepDoubleList val, int index)
void setDefaultValue(bool val)
QcepIntVector m_Default
Definition: qcepproperty.h:451
void setDefaultValue(QDateTime val)
QcepBoolProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, bool value, QString toolTip)
QcepDoubleList m_Value
Definition: qcepproperty.h:374
QcepStringListProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QStringList value, QString toolTip)
void appendValue(double val)
void setValue(QcepPolygon val, int index)
void setValue(QcepDoubleVector val, int index)
void toggled(bool value, int index)
void appendValue(double val)
QcepDoublePointProperty * m_Property
Definition: qcepproperty.h:549
QString parentName() const
QDateTime defaultValue() const
QVector< double > QcepDoubleVector
Definition: qcepmacros.h:19
void setSubValue(int axis, double value, int index)
QcepDoubleProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, double value, QString toolTip)
QString toString(const QcepDoubleList &list)
void valueChanged(QByteArray val, int index)
void setDefaultValue(double val)
QcepDateTimeProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QDateTime value, QString toolTip)
QPointF value() const
QcepStringPropertyComboBoxHelper(QComboBox *comboBox, QcepStringProperty *property)
void setValue(QcepDoubleList val, int index)
qint64 defaultValue() const
QcepDoubleVector m_Default
Definition: qcepproperty.h:399
QcepDoubleVector value() const
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime())
static void writeSettings(QObject *object, QSettings *settings, QString section)
QAtomicInt m_Value
Definition: qcepproperty.h:158
void valueChanged(QStringList val, int index)
void subValueChanged(int axis, double value, int index)
void setValue(bool val, int index)
QcepIntList m_Value
Definition: qcepproperty.h:426
QAtomicInt m_Value
Definition: qcepproperty.h:221
void incValue(qint64 step)
QcepDoubleList defaultValue() const
void incValue(double step)
void textEdited(QString value, int index)
void linkTo(QComboBox *comboBox)
void setDefaultValue(QStringList val)
QcepStringProperty * m_Property
Definition: qcepproperty.h:306
void valueChanged(QcepIntList val, int index)
int value() const
QcepIntListProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepIntList value, QString toolTip)
QcepDoubleList value() const
void valueChanged(int value, int index)
void setDefaultValue(QByteArray val)
QcepIntProperty * m_Property
Definition: qcepproperty.h:177
void setDefaultValue(QcepPolygon val)
QList< double > QcepDoubleList
Definition: qcepmacros.h:28
QcepIntVector defaultValue() const
void linkTo(QSpinBox *spinBox)
QAtomicInt m_Index
Definition: qcepproperty.h:76
QList< int > QcepIntList
Definition: qcepmacros.h:32
QString toString(const QByteArray &list)
qint64 value() const
void valueChanged(QRectF val, int index)
QcepIntPropertySpinBoxHelper(QSpinBox *spinBox, QcepIntProperty *property)
void subValueChanged(int axis, double val, int index)
QString name() const
QcepDoublePointPropertyDoubleSpinBoxHelper(QDoubleSpinBox *spinBox, QcepDoublePointProperty *property, int axis)
QString toString(const QcepIntList &list)
void setValue(qint64 val, int index)
QcepProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QString toolTip)
QcepIntPropertyComboBoxHelper(QComboBox *comboBox, QcepIntProperty *property)
void valueChanged(QString value, int index)
void setDefaultValue(QcepDoubleList val)
void setCurrentIndex(int value, int index)
QcepByteArrayProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QByteArray value, QString toolTip)
void valueChanged(qint64 val, int index)
QcepStringProperty * m_Property
Definition: qcepproperty.h:325
QString toString(const QcepIntVector &list)
QcepIntVector value() const
QcepStringProperty * m_Property
Definition: qcepproperty.h:287
QDateTime value() const
QString toString(const QStringList &list)
QString m_ToolTip
Definition: qcepproperty.h:78
QcepDoubleRectProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QRectF value, QString toolTip)
QStringList defaultValue() const
double subValue(int axis) const
QString value() const
void stringValueChanged(QString val)
QByteArray value() const
int debug() const
void appendValue(QString val)
void valueChanged(QcepDoubleVector val, int index)
QVector< QPointF > QcepPolygon
Definition: qcepmacros.h:37
static void setSettingsValue(QSettings *settings, QString name, QVariant value)
void setDebug(int dbg)
QcepBoolPropertyButtonHelper(QAbstractButton *button, QcepBoolProperty *property)
void valueChanged(double value, int index)
QAtomicInt m_Default
Definition: qcepproperty.h:157
void setDefaultValue(QcepDoubleVector val)
void setValue(QPointF val, int index)
QString toolTip() const
QcepDoublePointProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QPointF value, QString toolTip)
static QMap< QString, CustomSettingsSaver * > m_CustomSavers
Definition: qcepproperty.h:80
QString toString(const QcepDoubleVector &list)
void setChecked(bool value, int index)
void setValue(int value, int index)
void valueChanged(double val, int index)
void valueChanged(QcepIntVector val, int index)
QStringList value() const
void incValue(QcepIntList step)
void appendValue(int val)
void appendValue(int val)
QString defaultValue() const
bool defaultValue() const
QcepStringProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QString value, QString toolTip)
void valueChanged(QPointF val, int index)
void valueChanged(int val, int index)
QString expandedToolTip() const
QcepDoubleVector m_Value
Definition: qcepproperty.h:400
static void registerCustomSaver(QString typeName, CustomSettingsSaver *saver)
void stringValueChanged(QString val)
QcepIntProperty * m_Property
Definition: qcepproperty.h:196
void setDefaultValue(QcepIntVector val)
void( CustomSettingsSaver)(const QVariant &val, QSettings *settings, QString name)
Definition: qcepproperty.h:28
bool value() const
QcepIntProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, int value, QString toolTip)
QAbstractButton * m_Button
Definition: qcepproperty.h:239
void setValue(QByteArray val, int index)
void valueChanged(bool val, int index)
QcepPolygonProperty(QcepSettingsSaverWPtr saver, QObject *parent, const char *name, QcepPolygon value, QString toolTip)
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
QcepSettingsSaverWPtr m_Saver
Definition: qcepproperty.h:70
void setValue(QString val, int index)
void setToolTip(QString tip)
void valueChanged(QcepPolygon val, int index)
void setValue(double value, int index)