insilmaril@616: #ifndef ATTRIBUTE_H insilmaril@616: #define ATTRIBUTE_H insilmaril@616: insilmaril@616: #include insilmaril@616: insilmaril@616: #include "xmlobj.h" insilmaril@616: insilmaril@626: class AttributeTable; insilmaril@616: insilmaril@626: /*! \brief A key and a value insilmaril@616: */ insilmaril@616: insilmaril@616: class Attribute:public XMLObj { insilmaril@616: public: insilmaril@616: Attribute(); insilmaril@626: void setKey (const QString &k); insilmaril@626: QString getKey (); insilmaril@626: void setValue (const QString &v); insilmaril@626: QString getValue(); insilmaril@626: void setTable (AttributeTable *at); insilmaril@626: AttributeTable* getTable(); insilmaril@626: QString getDataXML(); insilmaril@616: protected: insilmaril@616: QString key; insilmaril@616: QString value; insilmaril@626: AttributeTable *table; insilmaril@616: }; insilmaril@616: insilmaril@616: /*! \brief A table containing a list of keys and each of these keys has insilmaril@616: a list of default values. The keys and the values for each key are insilmaril@616: unique. insilmaril@616: */ insilmaril@616: class AttributeTable:public XMLObj{ insilmaril@616: public: insilmaril@616: AttributeTable(); insilmaril@626: ~AttributeTable(); insilmaril@626: void clear(); insilmaril@626: void addKey (const QString &k); //!< Adds a key to the table insilmaril@626: void removeKey (const QString &k); //!< Removes key and its default values insilmaril@626: int countKeys(); //!< Return number of keys insilmaril@626: void addValue (const QString &k, const QString &v); //!< Adds key and value insilmaril@626: QStringList getKeys (); insilmaril@626: QStringList getValues(const QString &k); insilmaril@626: QString getDataXML(); insilmaril@616: insilmaril@616: protected: insilmaril@616: QStringList keys; insilmaril@616: QList values; insilmaril@616: }; insilmaril@616: insilmaril@616: insilmaril@616: insilmaril@616: #endif insilmaril@616: