CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkBooleanMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Library: CTK
4 
5  Copyright (c) Kitware Inc.
6 
7  Licensed under the Apache License, Version 2.0 (the "License");
8  you may not use this file except in compliance with the License.
9  You may obtain a copy of the License at
10 
11  http://www.apache.org/licenses/LICENSE-2.0.txt
12 
13  Unless required by applicable law or agreed to in writing, software
14  distributed under the License is distributed on an "AS IS" BASIS,
15  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  See the License for the specific language governing permissions and
17  limitations under the License.
18 
19 =========================================================================*/
20 
21 #ifndef __ctkBooleanMapper_h
22 #define __ctkBooleanMapper_h
23 
24 // Qt includes
25 #include <QObject>
26 #include <QVariant>
27 
28 // CTK includes
29 #include "ctkCoreExport.h"
30 class ctkBooleanMapperPrivate;
31 
32 //---------------------------------------------------------------------------
41 class CTK_CORE_EXPORT ctkBooleanMapper : public QObject
42 {
43  Q_OBJECT
45  Q_PROPERTY(QByteArray propertyName READ propertyName)
46 
47 
48  Q_PROPERTY(bool value READ value WRITE setValue NOTIFY complementChanged STORED false);
50 
53  Q_PROPERTY(bool complement READ complement WRITE setComplement NOTIFY complementChanged STORED false)
54 
55  Q_PROPERTY(int valueAsInt READ valueAsInt WRITE setValueAsInt NOTIFY valueAsIntChanged STORED false )
56  Q_PROPERTY(QString valueAsString READ valueAsString WRITE setValueAsString NOTIFY valueAsStringChanged STORED false )
57 
59  Q_PROPERTY(QVariant trueValue READ trueValue WRITE setTrueValue )
60 
62  Q_PROPERTY(QVariant falseValue READ falseValue WRITE setFalseValue )
63 public:
69  ctkBooleanMapper(QObject* targetObject, const QByteArray& propertyName, const char* signal);
70  virtual ~ctkBooleanMapper();
71 
72  QByteArray propertyName()const;
73 
75  QObject* targetObject()const;
76 
77  bool value()const;
78  bool complement()const;
79  int valueAsInt()const;
80  QString valueAsString()const;
81 
82  QVariant trueValue()const;
83  QVariant falseValue()const;
84 
85  void setTrueValue(const QVariant& value);
86  void setFalseValue(const QVariant& value);
87 
88 public Q_SLOTS:
89  void setValue(bool value);
90  void setComplement(bool complement);
91  void setValueAsInt(int value);
92  void setValueAsString(const QString& value);
93 
94  void toggle();
95 
96 Q_SIGNALS:
97  void valueChanged(bool value);
98  void complementChanged(bool complement);
99  void valueAsIntChanged(int value);
100  void valueAsStringChanged(const QString& value);
101 
102 protected Q_SLOTS:
103  void emitValueChanged();
104  void emitValueAsChanged();
105 
106 protected:
107  QScopedPointer<ctkBooleanMapperPrivate> d_ptr;
108 
109 private:
110  Q_DECLARE_PRIVATE(ctkBooleanMapper);
111  Q_DISABLE_COPY(ctkBooleanMapper);
112 };
113 
114 #endif
115