• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
  • datatypes
  • primitive
basicprimitivedatainformation.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2012 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 #ifndef BASICPRIMITIVEDATAINFORMATION_H_
23 #define BASICPRIMITIVEDATAINFORMATION_H_
24 
25 #include "primitivedatainformation.h"
26 #include "../../allprimitivetypes.h"
27 
28 
32 template<typename T, class C>
33 class BasicPrimitiveDataInformation : public PrimitiveDataInformation
34 {
35 public:
36  BasicPrimitiveDataInformation(const QString& name, DataInformation* parent = 0);
37  virtual ~BasicPrimitiveDataInformation();
38  virtual PrimitiveDataType type() const;
39  virtual AllPrimitiveTypes value() const;
40  virtual void setValue(AllPrimitiveTypes newVal);
41  virtual BasicPrimitiveDataInformation<T, C>* clone() const;
42 
43  virtual QWidget* createEditWidget(QWidget* parent) const;
44  virtual QVariant dataFromWidget(const QWidget* w) const;
45  virtual void setWidgetData(QWidget* w) const;
46 
47  virtual QScriptValue valueAsQScriptValue() const;
48  virtual BitCount32 size() const; //TODO declare final with c++11 so it can be inlined
49  virtual bool setData(const QVariant& value, Okteta::AbstractByteArrayModel* out,
50  Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset);
51  virtual qint64 readData(Okteta::AbstractByteArrayModel *input, Okteta::Address address,
52  BitCount64 bitsRemaining, quint8* bitOffset);
53 protected:
54  BasicPrimitiveDataInformation(const BasicPrimitiveDataInformation<T, C>& d);
55 private:
56  virtual QString valueStringImpl() const;
57  virtual QString typeNameImpl() const;
58  virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
59 protected:
60  T mValue;
61 };
62 
63 template<typename T, typename C>
64 inline BasicPrimitiveDataInformation<T, C>::BasicPrimitiveDataInformation(const QString& name,
65  DataInformation* parent)
66  : PrimitiveDataInformation(name, parent), mValue(0)
67 {
68 }
69 
70 template<typename T, typename C>
71 inline BasicPrimitiveDataInformation<T, C>::BasicPrimitiveDataInformation(
72  const BasicPrimitiveDataInformation<T, C>& d)
73  : PrimitiveDataInformation(d), mValue(d.mValue)
74 {
75 }
76 
77 template<typename T, typename C>
78 inline BasicPrimitiveDataInformation<T, C>::~BasicPrimitiveDataInformation()
79 {
80 }
81 
82 template<typename T, typename C>
83 inline QString BasicPrimitiveDataInformation<T, C>::typeNameImpl() const
84 {
85  return PrimitiveType::typeName(C::staticType());
86 }
87 
88 template<typename T, typename C>
89 inline AllPrimitiveTypes BasicPrimitiveDataInformation<T, C>::value() const
90 {
91  return AllPrimitiveTypes(mValue);
92 }
93 
94 template<typename T, typename C>
95 inline void BasicPrimitiveDataInformation<T, C>::setValue(AllPrimitiveTypes newVal)
96 {
97  mValue = newVal.value<T>();
98 
99 }
100 
101 template<typename T, typename C>
102 inline BitCount32 BasicPrimitiveDataInformation<T, C>::size() const
103 {
104  return sizeof(T) * 8;
105 }
106 
107 template<typename T, typename C>
108 inline QVariant BasicPrimitiveDataInformation<T, C>::dataFromWidget(const QWidget* w) const
109 {
110  return C::staticDataFromWidget(w);
111 }
112 
113 template<typename T, typename C>
114 inline QWidget* BasicPrimitiveDataInformation<T, C>::createEditWidget(QWidget* parent) const
115 {
116  return C::staticCreateEditWidget(parent);
117 }
118 
119 template<typename T, typename C>
120 inline void BasicPrimitiveDataInformation<T, C>::setWidgetData(QWidget* w) const
121 {
122  C::staticSetWidgetData(mValue, w);
123 }
124 
125 template<typename T, typename C>
126 inline PrimitiveDataType BasicPrimitiveDataInformation<T, C>::type() const
127 {
128  return C::staticType();
129 }
130 
131 template<typename T, typename C>
132 inline BasicPrimitiveDataInformation<T, C>* BasicPrimitiveDataInformation<T, C>::clone() const
133 {
134  return new BasicPrimitiveDataInformation<T, C>(*this);
135 }
136 
137 template<typename T, typename C>
138 QString BasicPrimitiveDataInformation<T, C>::valueStringImpl() const
139 {
140  Q_ASSERT(mWasAbleToRead);
141  return C::staticValueString(mValue);
142 }
143 
144 #endif /* BASICPRIMITIVEDATAINFORMATION_H_ */
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
BasicPrimitiveDataInformation::createEditWidget
virtual QWidget * createEditWidget(QWidget *parent) const
create a QWidget for the QItemDelegate
Definition: basicprimitivedatainformation.h:114
Okteta::Address
qint32 Address
Definition: address.h:34
Okteta::AbstractByteArrayModel
could it be useful to hide the data access behind an iterator? * class KDataBufferIterator { public: ...
Definition: abstractbytearraymodel.h:79
DataInformation::name
QString name() const
Definition: datainformation.h:258
BasicPrimitiveDataInformation::type
virtual PrimitiveDataType type() const
Definition: basicprimitivedatainformation.h:126
QScriptClass
PrimitiveType::typeName
QString typeName(PrimitiveDataType type)
Definition: primitivedatatype.cpp:68
BitCount64
quint64 BitCount64
Definition: datainformationbase.h:42
BasicPrimitiveDataInformation::value
virtual AllPrimitiveTypes value() const
Definition: basicprimitivedatainformation.h:89
QWidget
BasicPrimitiveDataInformation::setWidgetData
virtual void setWidgetData(QWidget *w) const
initialize the delegate widget with the correct data
Definition: basicprimitivedatainformation.h:120
BitCount32
quint32 BitCount32
Definition: datainformationbase.h:37
BasicPrimitiveDataInformation::readData
virtual qint64 readData(Okteta::AbstractByteArrayModel *input, Okteta::Address address, BitCount64 bitsRemaining, quint8 *bitOffset)
Reads the necessary data from input and returns the number of bytes read.
Definition: basicprimitivedatainformation.cpp:75
PrimitiveDataType
Definition: primitivedatatype.h:54
BasicPrimitiveDataInformation::clone
virtual BasicPrimitiveDataInformation< T, C > * clone() const
Definition: basicprimitivedatainformation.h:132
BasicPrimitiveDataInformation::setValue
virtual void setValue(AllPrimitiveTypes newVal)
Definition: basicprimitivedatainformation.h:95
BasicPrimitiveDataInformation::valueAsQScriptValue
virtual QScriptValue valueAsQScriptValue() const
Definition: basicprimitivedatainformation.cpp:49
AllPrimitiveTypes::value
T value() const
BasicPrimitiveDataInformation::BasicPrimitiveDataInformation
BasicPrimitiveDataInformation(const QString &name, DataInformation *parent=0)
Definition: basicprimitivedatainformation.h:64
ScriptHandlerInfo
Definition: scripthandlerinfo.h:39
BasicPrimitiveDataInformation::~BasicPrimitiveDataInformation
virtual ~BasicPrimitiveDataInformation()
Definition: basicprimitivedatainformation.h:78
BasicPrimitiveDataInformation::dataFromWidget
virtual QVariant dataFromWidget(const QWidget *w) const
get the needed data from the widget
Definition: basicprimitivedatainformation.h:108
DataInformation::parent
DataInformationBase * parent() const
Definition: datainformation.h:309
AllPrimitiveTypes
This union holds the value of one primitive datatype.
Definition: allprimitivetypes.h:70
BasicPrimitiveDataInformation::size
virtual BitCount32 size() const
the size in bits of this element
Definition: basicprimitivedatainformation.h:102
BasicPrimitiveDataInformation::setData
virtual bool setData(const QVariant &value, Okteta::AbstractByteArrayModel *out, Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset)
Writes the current data contained in this object to out.
Definition: basicprimitivedatainformation.cpp:55
BasicPrimitiveDataInformation
A basic implementation for all primitive types.
Definition: basicprimitivedatainformation.h:33
BasicPrimitiveDataInformation::mValue
T mValue
Definition: basicprimitivedatainformation.h:60
PrimitiveDataInformation
A base class for all primitive data elements (e.g.
Definition: primitivedatainformation.h:34
primitivedatainformation.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:06 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal