• 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
  • strings
stringdatainformation.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 2011 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 
23 
24 
25 #ifndef STRINGDATAINFORMATION_H
26 #define STRINGDATAINFORMATION_H
27 
28 #include "../datainformation.h"
29 #include "../dummydatainformation.h"
30 #include "stringdata.h"
31 
32 class DummyDataInformation;
33 
34 const QLatin1String stringEncodings[] = {
35  QLatin1String("ascii"), QLatin1String("latin1"), QLatin1String("utf-8"), QLatin1String("utf-16le"),
36  QLatin1String("utf-16-be"), QLatin1String("utf32-le"), QLatin1String("utf32-be")
37 };
38 
39 class StringDataInformation : public DataInformationWithDummyChildren
40 {
41  DATAINFORMATION_CLONE_DECL(StringDataInformation, DataInformationWithDummyChildren);
42 public:
43  enum StringType {
44  InvalidEncoding = -1, ASCII = 0, Latin1, UTF8, UTF16_LE, UTF16_BE, UTF32_LE, UTF32_BE
45  };
46 
47  StringDataInformation(const QString& name, StringType encoding, DataInformationBase* parent = 0);
48  virtual ~StringDataInformation();
49 
50  virtual bool canHaveChildren() const;
51  virtual DataInformation* childAt(unsigned int) const;
52 
53  virtual bool setData(const QVariant& value, Okteta::AbstractByteArrayModel* input,
54  Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset);
55  virtual bool setChildData(uint row, const QVariant& value, Okteta::AbstractByteArrayModel* out,
56  Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset);
57  virtual qint64 readData(Okteta::AbstractByteArrayModel* input, Okteta::Address address,
58  BitCount64 bitsRemaining, quint8* bitOffset);
59 
60  virtual BitCount32 size() const;
61  virtual void setWidgetData(QWidget* w) const;
62  virtual QVariant dataFromWidget(const QWidget* w) const;
63  virtual QWidget* createEditWidget(QWidget* parent) const;
64  virtual unsigned int childCount() const;
65  virtual Qt::ItemFlags flags(int column, bool fileLoaded = true) const;
66  virtual bool isString() const;
67 
68  virtual QVariant data(int column, int role) const;
69  virtual QVariant childData(int row, int column, int role) const;
70  virtual Qt::ItemFlags childFlags(int row, int column, bool fileLoaded = true) const;
71  virtual BitCount32 childSize(uint index) const;
72  virtual QString childTypeName(uint index) const;
73  virtual void setChildWidgetData(uint index, QWidget* w) const;
74  virtual QVariant dataFromChildWidget(uint index, const QWidget* w) const;
75  virtual QWidget* createChildEditWidget(uint index, QWidget* parent) const;
76  virtual QScriptValue childToScriptValue(uint index, QScriptEngine* engine, ScriptHandlerInfo* handlerInfo) const;
77  virtual BitCount64 childPosition(const DataInformation* child, Okteta::Address start) const;
78 
79  StringType encoding() const;
80  void setEncoding(StringType encoding);
81  uint terminationCodePoint() const;
82  void setTerminationCodePoint(uint term);
83  uint maxCharCount() const;
84  void setMaxCharCount(uint count);
85  uint maxByteCount() const;
86  void setMaxByteCount(uint count);
87  int stringLength() const;
88  int stringByteLength() const;
89  uint terminationMode() const;
90  QString valueAt(int index) const;
94  void unsetTerminationMode(StringData::TerminationMode mode);
95 private:
96  virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
97  virtual QString typeNameImpl() const;
98  virtual QString valueStringImpl() const;
99 private:
100  QScopedPointer<DummyDataInformation> mDummy;
101  QScopedPointer<StringData> mData;
102  StringType mEncoding;
103 };
104 
105 inline bool StringDataInformation::canHaveChildren() const
106 {
107  return true;
108 }
109 
110 inline StringDataInformation::StringType StringDataInformation::encoding() const
111 {
112  return mEncoding;
113 }
114 
115 inline uint StringDataInformation::maxByteCount() const
116 {
117  return mData->maxByteCount();
118 }
119 
120 inline void StringDataInformation::setMaxByteCount(uint count)
121 {
122  mData->setMaxByteCount(count);
123 }
124 
125 inline uint StringDataInformation::maxCharCount() const
126 {
127  return mData->terminationCodePoint();
128 }
129 
130 inline void StringDataInformation::setMaxCharCount(uint count)
131 {
132  mData->setMaxCharCount(count);
133 }
134 
135 inline uint StringDataInformation::terminationCodePoint() const
136 {
137  return mData->terminationCodePoint();
138 }
139 
140 inline void StringDataInformation::setTerminationCodePoint(uint term)
141 {
142  mData->setTerminationCodePoint(term);
143 }
144 
145 inline int StringDataInformation::stringLength() const
146 {
147  return mData->count();
148 }
149 
150 inline int StringDataInformation::stringByteLength() const
151 {
152  return mData->size() / 8;
153 }
154 
155 inline uint StringDataInformation::terminationMode() const
156 {
157  return mData->terminationMode();
158 }
159 
160 inline QString StringDataInformation::valueAt(int index) const
161 {
162  Q_ASSERT((uint)index < mData->count());
163  return mData->stringValue(index);
164 }
165 
166 #endif // STRINGDATAINFORMATION_H
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
StringDataInformation::UTF8
Definition: stringdatainformation.h:44
StringDataInformation::size
virtual BitCount32 size() const
the size in bits of this element
Definition: stringdatainformation.cpp:105
DataInformationWithDummyChildren
This class declares all methods that are needed if there can be dummy children.
Definition: dummydatainformation.h:73
StringDataInformation::childData
virtual QVariant childData(int row, int column, int role) const
the data of child at index row.
Definition: stringdatainformation.cpp:144
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
StringDataInformation::~StringDataInformation
virtual ~StringDataInformation()
Definition: stringdatainformation.cpp:56
StringDataInformation::UTF16_BE
Definition: stringdatainformation.h:44
StringDataInformation::childPosition
virtual BitCount64 childPosition(const DataInformation *child, Okteta::Address start) const
Definition: stringdatainformation.cpp:280
StringDataInformation::isString
virtual bool isString() const
Definition: stringdatainformation.cpp:309
StringDataInformation::terminationCodePoint
uint terminationCodePoint() const
Definition: stringdatainformation.h:135
DummyDataInformation
Definition: dummydatainformation.h:30
QScriptClass
StringDataInformation::setTerminationCodePoint
void setTerminationCodePoint(uint term)
Definition: stringdatainformation.h:140
BitCount64
quint64 BitCount64
Definition: datainformationbase.h:42
StringDataInformation::setWidgetData
virtual void setWidgetData(QWidget *w) const
initialize the delegate widget with the correct data
Definition: stringdatainformation.cpp:110
QWidget
StringDataInformation::childToScriptValue
virtual QScriptValue childToScriptValue(uint index, QScriptEngine *engine, ScriptHandlerInfo *handlerInfo) const
Definition: stringdatainformation.cpp:274
StringDataInformation::flags
virtual Qt::ItemFlags flags(int column, bool fileLoaded=true) const
Definition: stringdatainformation.cpp:139
StringDataInformation::canHaveChildren
virtual bool canHaveChildren() const
true for unions and structs and arrays
Definition: stringdatainformation.h:105
StringDataInformation::setChildWidgetData
virtual void setChildWidgetData(uint index, QWidget *w) const
initialize the delegate widget with the correct data
Definition: stringdatainformation.cpp:249
StringDataInformation::Latin1
Definition: stringdatainformation.h:44
BitCount32
quint32 BitCount32
Definition: datainformationbase.h:37
StringDataInformation::createChildEditWidget
virtual QWidget * createChildEditWidget(uint index, QWidget *parent) const
create a QWidget for the QItemDelegate
Definition: stringdatainformation.cpp:266
StringDataInformation::ASCII
Definition: stringdatainformation.h:44
StringDataInformation::data
virtual QVariant data(int column, int role) const
get the necessary data (for the model)
Definition: stringdatainformation.cpp:297
StringDataInformation::setMaxCharCount
void setMaxCharCount(uint count)
Definition: stringdatainformation.h:130
StringDataInformation::unsetTerminationMode
void unsetTerminationMode(StringData::TerminationMode mode)
Removes this mode from the termination modes.
Definition: stringdatainformation.cpp:314
stringEncodings
const QLatin1String stringEncodings[]
Definition: stringdatainformation.h:34
StringDataInformation::InvalidEncoding
Definition: stringdatainformation.h:44
StringDataInformation::StringDataInformation
StringDataInformation(const QString &name, StringType encoding, DataInformationBase *parent=0)
Definition: stringdatainformation.cpp:43
StringDataInformation::childTypeName
virtual QString childTypeName(uint index) const
Definition: stringdatainformation.cpp:243
StringDataInformation::childCount
virtual unsigned int childCount() const
Definition: stringdatainformation.cpp:134
StringDataInformation::dataFromWidget
virtual QVariant dataFromWidget(const QWidget *w) const
get the needed data from the widget
Definition: stringdatainformation.cpp:115
StringDataInformation::setData
virtual bool setData(const QVariant &value, Okteta::AbstractByteArrayModel *input, Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset)
Writes the current data contained in this object to out.
Definition: stringdatainformation.cpp:67
StringDataInformation::setEncoding
void setEncoding(StringType encoding)
Definition: stringdatainformation.cpp:183
DataInformation::child
virtual DataInformation * child(const QString &name) const
Looks for a child of this object with given name.
Definition: datainformation.cpp:228
StringDataInformation::childSize
virtual BitCount32 childSize(uint index) const
Definition: stringdatainformation.cpp:238
StringDataInformation::StringType
StringType
Definition: stringdatainformation.h:43
StringDataInformation::dataFromChildWidget
virtual QVariant dataFromChildWidget(uint index, const QWidget *w) const
get the needed data from the widget
Definition: stringdatainformation.cpp:257
StringDataInformation::setChildData
virtual bool setChildData(uint row, const QVariant &value, Okteta::AbstractByteArrayModel *out, Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset)
Definition: stringdatainformation.cpp:74
StringDataInformation::childAt
virtual DataInformation * childAt(unsigned int) const
Definition: stringdatainformation.cpp:60
StringDataInformation::encoding
StringType encoding() const
Definition: stringdatainformation.h:110
StringDataInformation::maxByteCount
uint maxByteCount() const
Definition: stringdatainformation.h:115
StringDataInformation::stringLength
int stringLength() const
Definition: stringdatainformation.h:145
ScriptHandlerInfo
Definition: scripthandlerinfo.h:39
stringdata.h
DataInformation::parent
DataInformationBase * parent() const
Definition: datainformation.h:309
StringDataInformation::childFlags
virtual Qt::ItemFlags childFlags(int row, int column, bool fileLoaded=true) const
Definition: stringdatainformation.cpp:174
DataInformationBase
Definition: datainformationbase.h:44
StringDataInformation::UTF32_LE
Definition: stringdatainformation.h:44
StringDataInformation::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: stringdatainformation.cpp:87
StringDataInformation::createEditWidget
virtual QWidget * createEditWidget(QWidget *parent) const
create a QWidget for the QItemDelegate
Definition: stringdatainformation.cpp:122
StringDataInformation::UTF32_BE
Definition: stringdatainformation.h:44
StringDataInformation::valueAt
QString valueAt(int index) const
Definition: stringdatainformation.h:160
StringDataInformation::maxCharCount
uint maxCharCount() const
Definition: stringdatainformation.h:125
StringDataInformation::setMaxByteCount
void setMaxByteCount(uint count)
Definition: stringdatainformation.h:120
DataInformation::row
int row() const
Definition: datainformation.cpp:249
StringDataInformation
Definition: stringdatainformation.h:39
StringDataInformation::terminationMode
uint terminationMode() const
Definition: stringdatainformation.h:155
StringDataInformation::UTF16_LE
Definition: stringdatainformation.h:44
StringDataInformation::stringByteLength
int stringByteLength() const
Definition: stringdatainformation.h:150
StringData::TerminationMode
TerminationMode
Definition: stringdata.h:41
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 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