attributeitem.h
author insilmaril
Wed, 10 Feb 2010 13:48:42 +0000
changeset 822 c2ce9944148c
parent 795 6b0a5f4923d3
child 823 0bba81dde1bc
permissions -rw-r--r--
More fixes and sorting lexically backwards
insilmaril@795
     1
#ifndef ATTRIBUTEITEM_H
insilmaril@795
     2
#define ATTRIBUTEITEM_H
insilmaril@795
     3
insilmaril@795
     4
#include <QStringList>
insilmaril@795
     5
#include <QVariant>
insilmaril@795
     6
insilmaril@822
     7
#include "branchitem.h"
insilmaril@795
     8
insilmaril@795
     9
/*! \brief A key and a value 
insilmaril@795
    10
    The data itself is stored in Attribute Definitions (AttributeDef). 
insilmaril@795
    11
	A list of these tables AttributeTable is maintained for every MapEditor.
insilmaril@795
    12
*/
insilmaril@822
    13
class AttributeItem:public BranchItem {
insilmaril@795
    14
insilmaril@795
    15
enum Type {
insilmaril@795
    16
	Undefined,	//!< Undefined type
insilmaril@795
    17
	IntList,	//!< Free integer
insilmaril@795
    18
	FreeInt,	//!< Free integer
insilmaril@795
    19
	StringList, //!< List of strings, one can be attribute value
insilmaril@795
    20
	FreeString,	//!< Any string can be attribute value, not unique
insilmaril@795
    21
	UniqueString//!< UniqueString, e.g. for IDs
insilmaril@795
    22
};
insilmaril@795
    23
insilmaril@795
    24
public:
insilmaril@795
    25
	AttributeItem(const QList<QVariant> &data, TreeItem *parent = 0);
insilmaril@795
    26
	virtual ~AttributeItem();
insilmaril@795
    27
	void setKey (const QString &k, const Type &t);
insilmaril@795
    28
	QString getKey ();
insilmaril@795
    29
	void setValue (const QString &v);
insilmaril@795
    30
	QVariant getValue ();
insilmaril@795
    31
	void setType (const Type &t);
insilmaril@795
    32
	AttributeItem::Type getAttributeType ();
insilmaril@795
    33
	QString getTypeString ();
insilmaril@795
    34
	QString getDataXML();
insilmaril@795
    35
protected:
insilmaril@795
    36
	QString freeString;		//!< String value for type FreeString
insilmaril@795
    37
	bool internal;			//!< Internal attributes cannot be edited by user
insilmaril@795
    38
};
insilmaril@795
    39
insilmaril@795
    40
#endif
insilmaril@795
    41