attributeitem.h
author insilmaril
Mon, 14 Jun 2010 13:59:17 +0000
changeset 848 e265f07f2173
parent 823 0bba81dde1bc
permissions -rw-r--r--
Fixed tmp relink, colored headings in TreeView
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@823
    14
public:
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
	AttributeItem(const QList<QVariant> &data, TreeItem *parent = 0);
insilmaril@795
    25
	virtual ~AttributeItem();
insilmaril@823
    26
	void set (const QString &k, const QString &v, const Type &t);
insilmaril@823
    27
	void get (QString &k, QString &v, Type &t);
insilmaril@795
    28
	void setKey (const QString &k, const Type &t);
insilmaril@795
    29
	QString getKey ();
insilmaril@795
    30
	void setValue (const QString &v);
insilmaril@795
    31
	QVariant getValue ();
insilmaril@795
    32
	void setType (const Type &t);
insilmaril@795
    33
	AttributeItem::Type getAttributeType ();
insilmaril@795
    34
	QString getTypeString ();
insilmaril@823
    35
	void setInternal (bool b);
insilmaril@823
    36
	bool isInternal();
insilmaril@795
    37
	QString getDataXML();
insilmaril@795
    38
protected:
insilmaril@795
    39
	bool internal;			//!< Internal attributes cannot be edited by user
insilmaril@823
    40
	QString key;
insilmaril@823
    41
	QVariant value;
insilmaril@823
    42
	Type attrType;
insilmaril@795
    43
};
insilmaril@795
    44
insilmaril@795
    45
#endif
insilmaril@795
    46