Developer documentation | Axl-2.5.1

axlInteger.cpp
Go to the documentation of this file.
1 /* axlInteger.cpp ---
2  *
3  * Author: Anais Ducoffe
4  * Copyright (C) 2013 - Anais Ducoffe, Inria.
5  */
6 
7 /* Commentary:
8  *
9  */
10 
11 /* Change log:
12  *
13  */
14 
15 #include "axlInteger.h"
16 
17 #include "axlPoint.h"
18 
19 #include <dtkCoreSupport/dtkGlobal.h>
20 
21 // /////////////////////////////////////////////////////////////////
22 // axlIntegerPrivate
23 // /////////////////////////////////////////////////////////////////
24 
25 class axlIntegerPrivate
26 {
27 public:
28  int value;
29 };
30 
31 // /////////////////////////////////////////////////////////////////
32 // axlInteger implementation
33 // /////////////////////////////////////////////////////////////////
34 
35 axlInteger::axlInteger(QObject *parent) : axlAbstractData(), d(new axlIntegerPrivate)
36 {
37  d->value = 0;
38 }
39 
40 
41 axlInteger::axlInteger(int value, QObject *parent) : axlAbstractData(), d(new axlIntegerPrivate)
42 {
43  d->value = value;
44 }
45 
46 
47 
49 
52 axlInteger::axlInteger(const axlInteger& other) : axlAbstractData(), d(new axlIntegerPrivate)
53 {
54  this->setParent(other.parent());
55  d->value = other.value();
56 }
57 
59 
63 {
64  delete d;
65  d = NULL;
66 }
67 
69 
73 {
74  d->value= other.value();
75  return (*this);
76 }
77 
79 
82 int axlInteger::value(void) const{
83  return d->value;
84 }
85 
87 
90 void axlInteger::setValue(int newValue)
91 {
92  d->value = newValue;
93  this->touchGeometry();
94 }
95 
96 
97 // /////////////////////////////////////////////////////////////////
98 // Debug operators
99 // /////////////////////////////////////////////////////////////////
100 
101 QDebug operator<<(QDebug dbg, axlInteger value)
102 {
103  dbg.nospace() << value.description();
104 
105  return dbg.space();
106 }
107 
108 QDebug operator<<(QDebug dbg, axlInteger& value)
109 {
110  dbg.nospace() << value.description();
111 
112  return dbg.space();
113 }
114 
115 QDebug operator<<(QDebug dbg, axlInteger *value)
116 {
117  dbg.nospace() << value->description();
118 
119  return dbg.space();
120 }
121 
122 QString axlInteger::description(void) const
123 {
124  QString result = "axlInteger";
125  result.append("\n value : "+QString::number(d->value) );
126  return result;
127 }
128 
129 QString axlInteger::identifier(void) const
130 {
131  return "axlInteger";
132 }
133 
134 QVariantList axlInteger::convertDataToQVariant(void) const{
135  QVariantList list;
136  QVariant id = QVariant::fromValue(identifier());
137  list.append(id);
138  QVariant value = QVariant::fromValue(d->value);
139  list.append(value);
140  return list;
141 
142 }
143 
144 int axlInteger::convertQVariantToData(const QVariantList &data){
145 
146  d->value = data.last().toInt();
147  return 1;
148 }
149 
150 // /////////////////////////////////////////////////////////////////
151 // Type instanciation
152 // /////////////////////////////////////////////////////////////////
153 
154 dtkAbstractData *createaxlInteger(void)
155 {
156  return new axlInteger();
157 
158 }
159 
160 
161 // /////////////////////////////////////////////////////////////////
162 // axlInteger documentation
163 // /////////////////////////////////////////////////////////////////
164 
void touchGeometry(void)
virtual QString description(void) const
Definition: axlInteger.cpp:122
QDebug operator<<(QDebug dbg, axlInteger value)
Definition: axlInteger.cpp:101
axlInteger(QObject *parent=0)
Definition: axlInteger.cpp:35
axlInteger & operator=(const axlInteger &other)
Assigns other to this integer and returns a reference to this integer.
Definition: axlInteger.cpp:72
int convertQVariantToData(const QVariantList &data)
Definition: axlInteger.cpp:144
Class axlInteger defines an integer.
Definition: axlInteger.h:28
QVariantList convertDataToQVariant(void) const
Definition: axlInteger.cpp:134
virtual QString identifier(void) const
Definition: axlInteger.cpp:129
void setValue(int newValue)
Assigns a new value to the axlInteger.
Definition: axlInteger.cpp:90
int value(void) const
Return the value of the axlInteger.
Definition: axlInteger.cpp:82
~axlInteger(void)
Destroys the axel integer.
Definition: axlInteger.cpp:62
dtkAbstractData * createaxlInteger(void)
Definition: axlInteger.cpp:154
Class axlAbstractData defines an API for all type of axel data.