[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [okteta] kasten/controllers/view/structures/datatypes: structures: refactor DataInformation::valueSt
From:       Alex Richardson <arichardson.kde () googlemail ! com>
Date:       2013-03-12 23:40:12
Message-ID: 20130312234012.396B8A60F1 () git ! kde ! org
[Download RAW message or body]

Git commit 3d838c777b91b72d260987ed54fa6da169bcebca by Alex Richardson.
Committed on 12/03/2013 at 21:27.
Pushed by arichardson into branch 'master'.

structures: refactor DataInformation::valueString()/typeName()

Split the method into an inline non-virtual and a virtual method
This allows changing the behaviour for all classes modifying only one
method.

M  +4    -6    kasten/controllers/view/structures/datatypes/array/arraydatainformation.h
 M  +5    -5    kasten/controllers/view/structures/datatypes/datainformation.cpp
M  +20   -4    kasten/controllers/view/structures/datatypes/datainformation.h
M  +1    -1    kasten/controllers/view/structures/datatypes/dummydatainformation.cpp
M  +2    -2    kasten/controllers/view/structures/datatypes/dummydatainformation.h
M  +0    -7    kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.cpp
 M  +12   -5    kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.h
 M  +1    -0    kasten/controllers/view/structures/datatypes/primitive/bitfield/abstractbitfielddatainformation.h
 M  +1    -1    kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.cpp
 M  +4    -3    kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.h
 M  +1    -1    kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.cpp
 M  +4    -3    kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.h
 M  +1    -1    kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.cpp
 M  +4    -3    kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.h
 M  +2    -2    kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.cpp
 M  +3    -3    kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.h
 M  +2    -2    kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.cpp
 M  +3    -2    kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.h
 M  +2    -2    kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.cpp
 M  +3    -3    kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.h
 M  +2    -2    kasten/controllers/view/structures/datatypes/strings/stringdatainformation.cpp
 M  +3    -4    kasten/controllers/view/structures/datatypes/strings/stringdatainformation.h
 M  +1    -1    kasten/controllers/view/structures/datatypes/structuredatainformation.cpp
 M  +2    -1    kasten/controllers/view/structures/datatypes/structuredatainformation.h
 M  +1    -2    kasten/controllers/view/structures/datatypes/taggeduniondatainformation.cpp
 M  +3    -5    kasten/controllers/view/structures/datatypes/taggeduniondatainformation.h
 M  +1    -1    kasten/controllers/view/structures/datatypes/uniondatainformation.cpp
M  +2    -2    kasten/controllers/view/structures/datatypes/uniondatainformation.h

http://commits.kde.org/okteta/3d838c777b91b72d260987ed54fa6da169bcebca

diff --git a/kasten/controllers/view/structures/datatypes/array/arraydatainformation.h \
b/kasten/controllers/view/structures/datatypes/array/arraydatainformation.h index \
                5046b3f..ba3cd45 100644
--- a/kasten/controllers/view/structures/datatypes/array/arraydatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/array/arraydatainformation.h
@@ -46,7 +46,6 @@ public:
             DataInformation* parent = 0, const QScriptValue& lengthFuntion = \
QScriptValue());  virtual ~ArrayDataInformation();
 public:
-    virtual QString typeName() const;
     uint length() const;
     virtual QWidget* createEditWidget(QWidget* parent) const;
     virtual QVariant dataFromWidget(const QWidget* w) const;
@@ -87,9 +86,10 @@ public:
     void setLengthFunction(QScriptValue newFunc);
     QScriptValue childToScriptValue(uint index, QScriptEngine* engine, \
                ScriptHandlerInfo* handlerInfo) const;
     virtual BitCount64 childPosition(const DataInformation* child, Okteta::Address \
                start) const;
-protected:
+private:
     virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
-protected:
+    virtual QString typeNameImpl() const;
+private:
     QScopedPointer<AbstractArrayData> mData;
     static const uint MAX_LEN = 10000;
 };
@@ -99,11 +99,9 @@ inline uint ArrayDataInformation::length() const
     return mData->length();
 }
 
-inline QString ArrayDataInformation::typeName() const
+inline QString ArrayDataInformation::typeNameImpl() const
 {
     return mData->typeName();
-    //don't show name of child
-    //return i18nc("array type then length", "%1[%2]", data->typeName(), \
childCount()); //TODO  }
 
 inline BitCount32 ArrayDataInformation::size() const
diff --git a/kasten/controllers/view/structures/datatypes/datainformation.cpp \
b/kasten/controllers/view/structures/datatypes/datainformation.cpp index \
                c7017d4..0a0a99c 100644
--- a/kasten/controllers/view/structures/datatypes/datainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/datainformation.cpp
@@ -50,11 +50,6 @@ DataInformation::~DataInformation()
 {
 }
 
-QString DataInformation::valueString() const
-{
-    return QString();
-}
-
 QString DataInformation::sizeString() const
 {
     if (size() % 8 == 0) //no bits remaining
@@ -69,6 +64,11 @@ QString DataInformation::sizeString() const
     }
 }
 
+QString DataInformation::valueStringImpl() const
+{
+    return QString();
+}
+
 BitCount64 DataInformation::positionInFile(Okteta::Address start) const
 {
     Q_CHECK_PTR(mParent);
diff --git a/kasten/controllers/view/structures/datatypes/datainformation.h \
b/kasten/controllers/view/structures/datatypes/datainformation.h index \
                0f9df8b..4f00503 100644
--- a/kasten/controllers/view/structures/datatypes/datainformation.h
+++ b/kasten/controllers/view/structures/datatypes/datainformation.h
@@ -116,9 +116,9 @@ public:
     /** get the necessary data (for the model) */
     virtual QVariant data(int column, int role) const;
 
-    virtual QString typeName() const = 0;
+    QString typeName() const;
     /** by default just returns an empty QString */
-    virtual QString valueString() const;
+    QString valueString() const;
     QString name() const;
     void setName(const QString& newName);
     virtual QString tooltipString() const;
@@ -214,11 +214,14 @@ public:
      */
     virtual int indexOf(const DataInformation* const data) const = 0;
 protected:
-    /** So that this object can be wrapped by the correct javascript object*/
-    virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const = 0;
     static QVariant eofReachedData(int role);
     void setAdditionalFunction(AdditionalData::AdditionalDataType entry, const \
QScriptValue& value, const char* name);  private:
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const = 0;
+    /** So that this object can be wrapped by the correct javascript object*/
+    virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const = 0;
+private:
     void setValidationError(QString errorMessage); //only called by ScriptHandler
     QSysInfo::Endian byteOrderFromSettings() const; //so there is no need to include \
structviewpreferences.h here  protected:
@@ -381,4 +384,17 @@ inline QSysInfo::Endian DataInformation::effectiveByteOrder() \
const  }
 }
 
+inline QString DataInformation::typeName() const
+{
+    //TODO support custom types
+    return typeNameImpl();
+}
+
+inline QString DataInformation::valueString() const
+{
+    return valueStringImpl();
+}
+
+
+
 #endif /* DATAINFORMATION_H_ */
diff --git a/kasten/controllers/view/structures/datatypes/dummydatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/dummydatainformation.cpp index \
                40222d3..a90df6a 100644
--- a/kasten/controllers/view/structures/datatypes/dummydatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/dummydatainformation.cpp
@@ -85,7 +85,7 @@ QWidget* DummyDataInformation::createEditWidget(QWidget* parent) \
const  return parentHelper()->createChildEditWidget(mIndex, parent);
 }
 
-QString DummyDataInformation::typeName() const
+QString DummyDataInformation::typeNameImpl() const
 {
     return parentHelper()->childTypeName(mIndex);
 }
diff --git a/kasten/controllers/view/structures/datatypes/dummydatainformation.h \
b/kasten/controllers/view/structures/datatypes/dummydatainformation.h index \
                be5de85..dcddbc9 100644
--- a/kasten/controllers/view/structures/datatypes/dummydatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/dummydatainformation.h
@@ -45,7 +45,6 @@ public:
     virtual QVariant dataFromWidget(const QWidget* w) const;
     virtual QWidget* createEditWidget(QWidget* parent) const;
     virtual Qt::ItemFlags flags(int column, bool fileLoaded = true) const;
-    virtual QString typeName() const;
     virtual bool isDummy() const;
     virtual QVariant data(int column, int role) const;
 
@@ -60,8 +59,9 @@ public:
     inline void setDummyIndex(uint newIndex) { mIndex = newIndex; }
     inline uint dummyIndex() const { return mIndex; }
 
-protected:
+private:
     virtual QScriptClass* scriptClass(ScriptHandlerInfo*) const { Q_ASSERT(false); \
return 0; } +    virtual QString typeNameImpl() const;
 private:
     uint mIndex;
     DataInformationWithDummyChildren* parentHelper() const;
diff --git a/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.cpp
 index 1a43608..64f90e8 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.cpp
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.cpp
 @@ -46,13 +46,6 @@ inline QScriptClass* BasicPrimitiveDataInformation<T, \
C>::scriptClass(ScriptHand  }
 
 template<typename T, typename C>
-QString BasicPrimitiveDataInformation<T, C>::valueString() const
-{
-    Q_ASSERT(mWasAbleToRead);
-    return C::staticValueString(mValue);
-}
-
-template<typename T, typename C>
 QScriptValue BasicPrimitiveDataInformation<T, C>::valueAsQScriptValue() const
 {
     return C::asScriptValue(mValue, 0, 0);
diff --git a/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.h
 index 1dc9f46..1eb483f 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.h
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/basicprimitivedatainformation.h
 @@ -35,11 +35,9 @@ class BasicPrimitiveDataInformation : public \
PrimitiveDataInformation  public:
     BasicPrimitiveDataInformation(const QString& name, DataInformation* parent = 0);
     virtual ~BasicPrimitiveDataInformation();
-    virtual QString typeName() const;
     virtual PrimitiveDataType type() const;
     virtual AllPrimitiveTypes value() const;
     virtual void setValue(AllPrimitiveTypes newVal);
-    virtual QString valueString() const;
     virtual BasicPrimitiveDataInformation<T, C>* clone() const;
 
     virtual QWidget* createEditWidget(QWidget* parent) const;
@@ -52,10 +50,12 @@ public:
             Okteta::Address address, BitCount64 bitsRemaining, quint8 bitOffset);
     virtual qint64 readData(Okteta::AbstractByteArrayModel *input, Okteta::Address \
address,  BitCount64 bitsRemaining, quint8* bitOffset);
-
 protected:
-    virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
     BasicPrimitiveDataInformation(const BasicPrimitiveDataInformation<T, C>& d);
+private:
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
+    virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
 protected:
     T mValue;
 };
@@ -80,7 +80,7 @@ inline BasicPrimitiveDataInformation<T, \
C>::~BasicPrimitiveDataInformation()  }
 
 template<typename T, typename C>
-inline QString BasicPrimitiveDataInformation<T, C>::typeName() const
+inline QString BasicPrimitiveDataInformation<T, C>::typeNameImpl() const
 {
     return PrimitiveType::typeName(C::staticType());
 }
@@ -134,4 +134,11 @@ inline BasicPrimitiveDataInformation<T, C>* \
BasicPrimitiveDataInformation<T, C>:  return new BasicPrimitiveDataInformation<T, \
C>(*this);  }
 
+template<typename T, typename C>
+QString BasicPrimitiveDataInformation<T, C>::valueStringImpl() const
+{
+    Q_ASSERT(mWasAbleToRead);
+    return C::staticValueString(mValue);
+}
+
 #endif /* BASICPRIMITIVEDATAINFORMATION_H_ */
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/abstractbitfielddatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/abstractbitfielddatainformation.h
 index d4994fa..0fa2ed2 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/abstractbitfielddatainformation.h
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/abstractbitfielddatainformation.h
 @@ -49,6 +49,7 @@ public:
 protected:
     AbstractBitfieldDataInformation(const AbstractBitfieldDataInformation& d);
     virtual AllPrimitiveTypes fromVariant(const QVariant& variant, bool* ok) const;
+private:
     virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
 protected:
     AllPrimitiveTypes mValue;
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.cpp
 index b1e18ea..69313ff 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.cpp
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.cpp
 @@ -28,7 +28,7 @@
 #include "../../../../poddecoder/typeeditors/uintspinbox.h"
 
 
-QString BoolBitfieldDataInformation::valueString() const
+QString BoolBitfieldDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     return BoolDataInformationMethods<quint64>::staticValueString(mValue.value<quint64>());
                
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.h
 index e8b1951..947a74a 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.h
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/boolbitfielddatainformation.h
 @@ -35,15 +35,16 @@ public:
             : AbstractBitfieldDataInformation(name, width, parent) {}
     virtual ~BoolBitfieldDataInformation() {}
 
-    QString typeName() const;
-    virtual QString valueString() const;
     virtual QScriptValue valueAsQScriptValue() const;
     virtual QWidget* createEditWidget(QWidget* parent) const;
     virtual QVariant dataFromWidget(const QWidget* w) const;
     virtual void setWidgetData(QWidget* w) const;
+private:
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
 };
 
-inline QString BoolBitfieldDataInformation::typeName() const
+inline QString BoolBitfieldDataInformation::typeNameImpl() const
 {
     return i18ncp("Data type", "boolean bitfield (%1 bit wide)", "boolean bitfield \
(%1 bits wide)",  width());
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.cpp
 index 07cde53..366e8c4 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.cpp
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.cpp
 @@ -27,7 +27,7 @@
 #include "../sintdatainformation.h"
 
 
-QString SignedBitfieldDataInformation::valueString() const
+QString SignedBitfieldDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     return SIntDataInformationMethods<qint64>::staticValueString(mValue.value<qint64>());
                
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.h
 index daaeb15..41f66b6 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.h
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/signedbitfielddatainformation.h
 @@ -35,17 +35,18 @@ public:
     virtual ~SignedBitfieldDataInformation() {}
     virtual AllPrimitiveTypes fromVariant(const QVariant& variant, bool* ok) const;
 
-    QString typeName() const;
-    virtual QString valueString() const;
     virtual QScriptValue valueAsQScriptValue() const;
     virtual QWidget* createEditWidget(QWidget* parent) const;
     virtual QVariant dataFromWidget(const QWidget* w) const;
     virtual void setWidgetData(QWidget* w) const;
     /** sign extend the value if it is negative, so it can always be treated as a \
plain qint64 */  virtual void setValue(AllPrimitiveTypes newVal);
+private:
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
 };
 
-inline QString SignedBitfieldDataInformation::typeName() const
+inline QString SignedBitfieldDataInformation::typeNameImpl() const
 {
     return i18ncp("Data type", "signed bitfield (%1 bit wide)", "signed bitfield (%1 \
bits wide)",  width());
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.cpp
 index aab9b06..989586a 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.cpp
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.cpp
 @@ -27,7 +27,7 @@
 #include "../poddecoder/typeeditors/uintspinbox.h"
 #include "../uintdatainformation.h"
 
-QString UnsignedBitfieldDataInformation::valueString() const
+QString UnsignedBitfieldDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     return UIntDataInformationMethods<quint64>::staticValueString(mValue.value<quint64>());
                
diff --git a/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.h
 index a380e0b..18d6ba7 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.h
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/bitfield/unsignedbitfielddatainformation.h
 @@ -34,15 +34,16 @@ public:
             : AbstractBitfieldDataInformation(name, width, parent) {}
     virtual ~UnsignedBitfieldDataInformation() {}
 
-    QString typeName() const;
-    virtual QString valueString() const;
     virtual QScriptValue valueAsQScriptValue() const;
     virtual QWidget* createEditWidget(QWidget* parent) const;
     virtual QVariant dataFromWidget(const QWidget* w) const;
     virtual void setWidgetData(QWidget* w) const;
+private:
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
 };
 
-inline QString UnsignedBitfieldDataInformation::typeName() const
+inline QString UnsignedBitfieldDataInformation::typeNameImpl() const
 {
     return i18ncp("Data type", "unsigned bitfield (%1 bit wide)",
             "unsigned bitfield (%1 bits wide)", width());
diff --git a/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.cpp \
                index 4253cdf..f59d9e6 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.cpp
@@ -42,7 +42,7 @@ EnumDataInformation::EnumDataInformation(const QString& name, \
PrimitiveDataInfor  
 EnumDataInformation::~EnumDataInformation() {}
 
-QString EnumDataInformation::valueString() const
+QString EnumDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     QString enumVal = mEnum->value(mValue->value());
@@ -54,7 +54,7 @@ QString EnumDataInformation::valueString() const
         return i18n("%1 (value not in enum)", mValue->valueString());
 }
 
-QString EnumDataInformation::typeName() const
+QString EnumDataInformation::typeNameImpl() const
 {
     return i18nc("Displayed in the type column. first comes the name "
             "of the enum, then the underlying type (e.g. uint32)",
diff --git a/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.h index \
                8177f38..e59a62b 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/primitive/enumdatainformation.h
@@ -35,14 +35,14 @@ public:
             EnumDefinition::Ptr enumDef, DataInformation* parent = 0);
     virtual ~EnumDataInformation();
 
-    virtual QString valueString() const;
-    virtual QString typeName() const;
     virtual bool isEnum() const;
 
     EnumDefinition::Ptr enumValues() const;
     void setEnumValues(QMap<AllPrimitiveTypes, QString> newValues);
-protected:
+private:
     virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
 protected:
     EnumDefinition::Ptr mEnum;
 };
diff --git a/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.cpp \
                index 7bc49a5..8a32a23 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.cpp
@@ -47,7 +47,7 @@ static void removeFromArray(QVarLengthArray<T, len>& array, int \
index) {  array.removeLast();
 }
 
-QString FlagDataInformation::valueString() const
+QString FlagDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     QMapIterator<AllPrimitiveTypes, QString> iter(mEnum->values());
@@ -119,7 +119,7 @@ QString FlagDataInformation::valueString() const
     return result;
 }
 
-QString FlagDataInformation::typeName() const
+QString FlagDataInformation::typeNameImpl() const
 {
     return i18nc("Displayed in the type column. first comes the name "
             "of the enum, then the underlying type (e.g. uint32)",
diff --git a/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.h index \
                214660f..15b740f 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/primitive/flagdatainformation.h
@@ -32,8 +32,9 @@ class FlagDataInformation : public EnumDataInformation
 public:
     FlagDataInformation(const QString& name, PrimitiveDataInformation* type, \
EnumDefinition::Ptr enumDef,  DataInformation* parent = 0);
-    virtual QString valueString() const;
-    virtual QString typeName() const;
+private:
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
 };
 
 #endif // FLAGDATAINFORMATION_H
diff --git a/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.cpp \
                index 7960b90..13bb8c5 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.cpp
                
+++ b/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.cpp
 @@ -120,12 +120,12 @@ void \
                PointerDataInformation::delayedReadData(Okteta::AbstractByteArrayModel \
                *inp
     mPointerTarget->readData(input, newAddress, (input->size() - newAddress) * 8, \
&childBitOffset);  }
 
-QString PointerDataInformation::typeName() const
+QString PointerDataInformation::typeNameImpl() const
 {
     return i18nc("memory pointer with underlying type", "%1 pointer", \
mValue->typeName());  }
 
-QString PointerDataInformation::valueString() const
+QString PointerDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     return mValue->valueString();
diff --git a/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.h \
b/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.h \
                index d5b4a87..b545c2a 100644
--- a/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/primitive/pointerdatainformation.h
@@ -38,8 +38,6 @@ public:
             PrimitiveDataInformation* valueType, DataInformation* parent);
     virtual ~PointerDataInformation();
 
-    virtual QString typeName() const;
-    virtual QString valueString() const;
     virtual bool canHaveChildren() const;
     virtual uint childCount() const;
     virtual DataInformation* childAt(uint index) const;
@@ -65,8 +63,10 @@ public:
      * @return true if type was set, false if not
      */
     bool setPointerType(DataInformation* type);
-protected:
+private:
     virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
+    virtual QString valueStringImpl() const;
+    virtual QString typeNameImpl() const;
 protected:
     QScopedPointer<DataInformation> mPointerTarget;
 };
diff --git a/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.cpp \
                index 419bb4f..239ce59 100644
--- a/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.cpp
@@ -126,7 +126,7 @@ QWidget* StringDataInformation::createEditWidget(QWidget*) const
     return 0;
 }
 
-QString StringDataInformation::typeName() const
+QString StringDataInformation::typeNameImpl() const
 {
     return mData->typeName();
 }
@@ -165,7 +165,7 @@ QVariant StringDataInformation::childData(int row, int column, \
int role) const  return QVariant();
 }
 
-QString StringDataInformation::valueString() const
+QString StringDataInformation::valueStringImpl() const
 {
     Q_ASSERT(mWasAbleToRead);
     return mData->completeString();
diff --git a/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.h \
b/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.h index \
                0f8094d..cf652d6 100644
--- a/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/strings/stringdatainformation.h
@@ -61,7 +61,6 @@ public:
     virtual void setWidgetData(QWidget* w) const;
     virtual QVariant dataFromWidget(const QWidget* w) const;
     virtual QWidget* createEditWidget(QWidget* parent) const;
-    virtual QString typeName() const;
     virtual unsigned int childCount() const;
     virtual Qt::ItemFlags flags(int column, bool fileLoaded = true) const;
     virtual bool isString() const;
@@ -77,8 +76,6 @@ public:
     virtual QScriptValue childToScriptValue(uint index, QScriptEngine* engine, \
                ScriptHandlerInfo* handlerInfo) const;
     virtual BitCount64 childPosition(const DataInformation* child, Okteta::Address \
start) const;  
-    virtual QString valueString() const;
-
     StringType encoding() const;
     void setEncoding(StringType encoding);
     uint terminationCodePoint() const;
@@ -95,8 +92,10 @@ public:
      * @param mode The mode to remove
      */
     void unsetTerminationMode(StringData::TerminationMode mode);
-protected:
+private:
     virtual QScriptClass* scriptClass(ScriptHandlerInfo* handlerInfo) const;
+    virtual QString typeNameImpl() const;
+    virtual QString valueStringImpl() const;
 private:
     QScopedPointer<DummyDataInformation> mDummy;
     QScopedPointer<StringData> mData;
diff --git a/kasten/controllers/view/structures/datatypes/structuredatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/structuredatainformation.cpp index \
                81ed199..74a0d70 100644
--- a/kasten/controllers/view/structures/datatypes/structuredatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/structuredatainformation.cpp
@@ -26,7 +26,7 @@
 #include <KLocalizedString>
 #include <limits>
 
-QString StructureDataInformation::typeName() const
+QString StructureDataInformation::typeNameImpl() const
 {
     return i18nc("data type in C/C++, then name", "struct %1", name());
 }
diff --git a/kasten/controllers/view/structures/datatypes/structuredatainformation.h \
b/kasten/controllers/view/structures/datatypes/structuredatainformation.h index \
                adfde13..e1647a8 100644
--- a/kasten/controllers/view/structures/datatypes/structuredatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/structuredatainformation.h
@@ -37,12 +37,13 @@ public:
             BitCount64 bitsRemaining, quint8* bitOffset);
     virtual bool isStruct() const;
 
-    QString typeName() const;
     virtual BitCount64 childPosition(const DataInformation* child, Okteta::Address \
start) const;  
     static bool readChildren(const QVector<DataInformation*> children, \
                Okteta::AbstractByteArrayModel *input,
             Okteta::Address address, BitCount64 bitsRemaining, quint8* bitOffset, \
qint64* readBitsPtr,  TopLevelDataInformation* top);
+private:
+    virtual QString typeNameImpl() const;
 };
 
 inline bool StructureDataInformation::isStruct() const
diff --git a/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.cpp index \
                0ae61ce..be9790c 100644
--- a/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.cpp
@@ -28,7 +28,7 @@
 
 #include <KLocalizedString>
 
-QString TaggedUnionDataInformation::typeName() const
+QString TaggedUnionDataInformation::typeNameImpl() const
 {
     if (mLastIndex >= 0)
         return i18nc("data type in C/C++, then name", "struct %1", \
mAlternatives.at(mLastIndex).name); @@ -45,7 +45,6 @@ \
TaggedUnionDataInformation::~TaggedUnionDataInformation()  }
 }
 
-
 TaggedUnionDataInformation::TaggedUnionDataInformation(const QString& name, \
                DataInformation* parent)
         : DataInformationWithChildren(name, QVector<DataInformation*>(), parent), \
mLastIndex(-1)  {
diff --git a/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.h \
b/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.h index \
                c04cf63..39564e8 100644
--- a/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/taggeduniondatainformation.h
@@ -53,11 +53,9 @@ public:
     virtual qint64 readData(Okteta::AbstractByteArrayModel *input,
             Okteta::Address address, BitCount64 bitsRemaining, quint8* bitOffset);
     virtual bool isTaggedUnion() const;
-    //implement the DataInformation pure virtual functions
-    QString typeName() const;
+
     virtual BitCount64 childPosition(const DataInformation* child, Okteta::Address \
start) const;  
-    //reimplement these
     virtual BitCount32 size() const;
 
     virtual bool replaceChildAt(unsigned int index, DataInformation* newChild);
@@ -67,8 +65,8 @@ public:
     virtual unsigned int childCount() const;
     void appendDefaultField(DataInformation* field, bool emitSignal);
     void setAlternatives(const QVector<FieldInfo>& alternatives, bool emitSignal);
-
-
+private:
+    virtual QString typeNameImpl() const;
 private:
     const QVector<DataInformation*>& currentChildren() const;
     int determineSelection(TopLevelDataInformation* top);
diff --git a/kasten/controllers/view/structures/datatypes/uniondatainformation.cpp \
b/kasten/controllers/view/structures/datatypes/uniondatainformation.cpp index \
                5cebf55..31ff0b2 100644
--- a/kasten/controllers/view/structures/datatypes/uniondatainformation.cpp
+++ b/kasten/controllers/view/structures/datatypes/uniondatainformation.cpp
@@ -24,7 +24,7 @@
 
 #include <KLocale>
 
-QString UnionDataInformation::typeName() const
+QString UnionDataInformation::typeNameImpl() const
 {
     return i18nc("data type in C/C++, then name", "union %1", name());
 }
diff --git a/kasten/controllers/view/structures/datatypes/uniondatainformation.h \
b/kasten/controllers/view/structures/datatypes/uniondatainformation.h index \
                4865ee8..0a0c403 100644
--- a/kasten/controllers/view/structures/datatypes/uniondatainformation.h
+++ b/kasten/controllers/view/structures/datatypes/uniondatainformation.h
@@ -34,12 +34,12 @@ public:
     virtual ~UnionDataInformation();
 
     virtual bool isUnion() const;
-    //implement the DataInformation pure virtual functions
-    virtual QString typeName() const;
     virtual BitCount32 size() const;
     virtual qint64 readData(Okteta::AbstractByteArrayModel* input, Okteta::Address \
address,  BitCount64 bitsRemaining, quint8* bitOffset);
     virtual BitCount64 childPosition(const DataInformation* child, Okteta::Address \
start) const; +private:
+    virtual QString typeNameImpl() const;
 };
 
 inline bool UnionDataInformation::isUnion() const


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic