• 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
dummydatainformation.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 #ifndef DUMMYDATAINFORMATION_H
24 #define DUMMYDATAINFORMATION_H
25 
26 #include "datainformation.h"
27 
28 class DataInformationWithDummyChildren;
29 
30 class DummyDataInformation : public DataInformation
31 {
32  DATAINFORMATION_CLONE(DummyDataInformation, DataInformation), mIndex(d.mIndex) {}
33 public:
34  DummyDataInformation(DataInformationBase* parent, const QString& name = QString());
35  virtual ~DummyDataInformation() {}
36  virtual QScriptValue toScriptValue(QScriptEngine* engine, ScriptHandlerInfo* handlerInfo);
37 
38  virtual qint64 readData(Okteta::AbstractByteArrayModel* input, Okteta::Address address,
39  BitCount64 bitsRemaining, quint8* bitOffset);
40  virtual bool setData(const QVariant& value, Okteta::AbstractByteArrayModel* out,
41  Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset);
42 
43  virtual BitCount32 size() const;
44  virtual void setWidgetData(QWidget* w) const;
45  virtual QVariant dataFromWidget(const QWidget* w) const;
46  virtual QWidget* createEditWidget(QWidget* parent) const;
47  virtual Qt::ItemFlags flags(int column, bool fileLoaded = true) const;
48  virtual bool isDummy() const;
49  virtual QVariant data(int column, int role) const;
50 
51 
52  virtual bool canHaveChildren() const { return false; }
53  virtual unsigned int childCount() const { return 0; }
54  virtual DataInformation* childAt(unsigned int) const { Q_ASSERT(false); return 0; }
55  virtual BitCount64 childPosition(const DataInformation*, Okteta::Address) const { Q_ASSERT(false); return 0; }
56  virtual int indexOf(const DataInformation* const) const { Q_ASSERT(false); return -1; }
57 
58 
59  inline void setDummyIndex(uint newIndex) { mIndex = newIndex; }
60  inline uint dummyIndex() const { return mIndex; }
61 
62 private:
63  virtual QScriptClass* scriptClass(ScriptHandlerInfo*) const { Q_ASSERT(false); return 0; }
64  virtual QString typeNameImpl() const;
65 private:
66  uint mIndex;
67  DataInformationWithDummyChildren* parentHelper() const;
68 };
69 
73 class DataInformationWithDummyChildren : public DataInformation
74 {
75 protected:
76  DataInformationWithDummyChildren(const DataInformationWithDummyChildren& d) : DataInformation(d) {}
77 public:
78  explicit DataInformationWithDummyChildren(const QString& name, DataInformationBase* parent = 0)
79  : DataInformation(name, parent) {}
80  virtual ~DataInformationWithDummyChildren() {}
81 
83  virtual QVariant childData(int row, int column, int role) const = 0;
84  virtual Qt::ItemFlags childFlags(int row, int column, bool fileLoaded = true) const = 0;
85  virtual BitCount32 childSize(uint index) const = 0;
87  virtual QWidget* createChildEditWidget(uint index, QWidget* parent) const = 0;
89  virtual QVariant dataFromChildWidget(uint index, const QWidget* w) const = 0;
91  virtual void setChildWidgetData(uint index, QWidget* w) const = 0;
92  virtual QString childTypeName(uint index) const = 0;
93  virtual bool setChildData(uint row, const QVariant& value, Okteta::AbstractByteArrayModel* out,
94  Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset) = 0;
95  virtual QScriptValue childToScriptValue(uint index, QScriptEngine* engine, ScriptHandlerInfo* handlerInfo) const = 0;
96  virtual int indexOf(const DataInformation* const data) const;
97 };
98 
99 
100 inline int DataInformationWithDummyChildren::indexOf(const DataInformation* const data) const
101 {
102  Q_ASSERT(data->isDummy());
103  Q_ASSERT(data->parent() == this);
104  return data->asDummy()->dummyIndex();
105 }
106 
107 inline bool DummyDataInformation::isDummy() const
108 {
109  return true;
110 }
111 
112 #endif // DUMMYDATAINFORMATION_H
DummyDataInformation::dummyIndex
uint dummyIndex() const
Definition: dummydatainformation.h:60
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
DataInformationWithDummyChildren
This class declares all methods that are needed if there can be dummy children.
Definition: dummydatainformation.h:73
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
DummyDataInformation
Definition: dummydatainformation.h:30
QScriptClass
datainformation.h
BitCount64
quint64 BitCount64
Definition: datainformationbase.h:42
DummyDataInformation::indexOf
virtual int indexOf(const DataInformation *const) const
Find the index of a DataInformation in this object, needed to calculate the row.
Definition: dummydatainformation.h:56
DataInformationWithDummyChildren::dataFromChildWidget
virtual QVariant dataFromChildWidget(uint index, const QWidget *w) const =0
get the needed data from the widget
DummyDataInformation::DummyDataInformation
DummyDataInformation(DataInformationBase *parent, const QString &name=QString())
Definition: dummydatainformation.cpp:28
QWidget
DataInformationWithDummyChildren::DataInformationWithDummyChildren
DataInformationWithDummyChildren(const QString &name, DataInformationBase *parent=0)
Definition: dummydatainformation.h:78
BitCount32
quint32 BitCount32
Definition: datainformationbase.h:37
DummyDataInformation::~DummyDataInformation
virtual ~DummyDataInformation()
Definition: dummydatainformation.h:35
DummyDataInformation::data
virtual QVariant data(int column, int role) const
get the necessary data (for the model)
Definition: dummydatainformation.cpp:40
DummyDataInformation::canHaveChildren
virtual bool canHaveChildren() const
true for unions and structs and arrays
Definition: dummydatainformation.h:52
DummyDataInformation::childAt
virtual DataInformation * childAt(unsigned int) const
Definition: dummydatainformation.h:54
DummyDataInformation::createEditWidget
virtual QWidget * createEditWidget(QWidget *parent) const
create a QWidget for the QItemDelegate
Definition: dummydatainformation.cpp:83
DummyDataInformation::setWidgetData
virtual void setWidgetData(QWidget *w) const
initialize the delegate widget with the correct data
Definition: dummydatainformation.cpp:73
DataInformationWithDummyChildren::setChildWidgetData
virtual void setChildWidgetData(uint index, QWidget *w) const =0
initialize the delegate widget with the correct data
DummyDataInformation::setDummyIndex
void setDummyIndex(uint newIndex)
Definition: dummydatainformation.h:59
DataInformationWithDummyChildren::setChildData
virtual bool setChildData(uint row, const QVariant &value, Okteta::AbstractByteArrayModel *out, Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset)=0
DummyDataInformation::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: dummydatainformation.cpp:61
DummyDataInformation::toScriptValue
virtual QScriptValue toScriptValue(QScriptEngine *engine, ScriptHandlerInfo *handlerInfo)
This method is virtual since DummyDataInformation has to override it.
Definition: dummydatainformation.cpp:50
DataInformationWithDummyChildren::DataInformationWithDummyChildren
DataInformationWithDummyChildren(const DataInformationWithDummyChildren &d)
Definition: dummydatainformation.h:76
DataInformationWithDummyChildren::indexOf
virtual int indexOf(const DataInformation *const data) const
Find the index of a DataInformation in this object, needed to calculate the row.
Definition: dummydatainformation.h:100
DataInformationWithDummyChildren::childFlags
virtual Qt::ItemFlags childFlags(int row, int column, bool fileLoaded=true) const =0
DataInformation::data
virtual QVariant data(int column, int role) const
get the necessary data (for the model)
Definition: datainformation.cpp:156
DataInformationBase::asDummy
DummyDataInformation * asDummy()
DummyDataInformation::childCount
virtual unsigned int childCount() const
Definition: dummydatainformation.h:53
DataInformationWithDummyChildren::childToScriptValue
virtual QScriptValue childToScriptValue(uint index, QScriptEngine *engine, ScriptHandlerInfo *handlerInfo) const =0
ScriptHandlerInfo
Definition: scripthandlerinfo.h:39
DummyDataInformation::childPosition
virtual BitCount64 childPosition(const DataInformation *, Okteta::Address) const
Definition: dummydatainformation.h:55
DummyDataInformation::size
virtual BitCount32 size() const
the size in bits of this element
Definition: dummydatainformation.cpp:68
DataInformationWithDummyChildren::childSize
virtual BitCount32 childSize(uint index) const =0
DataInformationWithDummyChildren::childTypeName
virtual QString childTypeName(uint index) const =0
DataInformation::parent
DataInformationBase * parent() const
Definition: datainformation.h:309
DummyDataInformation::dataFromWidget
virtual QVariant dataFromWidget(const QWidget *w) const
get the needed data from the widget
Definition: dummydatainformation.cpp:78
DataInformationBase::isDummy
virtual bool isDummy() const
Definition: datainformationbase.cpp:40
DataInformationBase
Definition: datainformationbase.h:44
DataInformationWithDummyChildren::createChildEditWidget
virtual QWidget * createChildEditWidget(uint index, QWidget *parent) const =0
create a QWidget for the QItemDelegate
DataInformationWithDummyChildren::~DataInformationWithDummyChildren
virtual ~DataInformationWithDummyChildren()
Definition: dummydatainformation.h:80
DataInformation::row
int row() const
Definition: datainformation.cpp:249
DummyDataInformation::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: dummydatainformation.cpp:55
DummyDataInformation::isDummy
virtual bool isDummy() const
Definition: dummydatainformation.h:107
DataInformationWithDummyChildren::childData
virtual QVariant childData(int row, int column, int role) const =0
the data of child at index row.
DummyDataInformation::flags
virtual Qt::ItemFlags flags(int column, bool fileLoaded=true) const
Definition: dummydatainformation.cpp:45
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:08 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