treeitem.h
author insilmaril
Tue, 20 Jan 2009 15:23:16 +0000
changeset 735 84ae10f6e3a3
parent 727 96402b172173
child 738 716a777c1c98
permissions -rw-r--r--
More work on removing Selection class
insilmaril@725
     1
#ifndef TREEITEM_H
insilmaril@725
     2
#define TREEITEM_H
insilmaril@725
     3
insilmaril@725
     4
#include <QList>
insilmaril@725
     5
#include <QVariant>
insilmaril@725
     6
insilmaril@726
     7
class LinkableMapObj;
insilmaril@726
     8
insilmaril@725
     9
class TreeItem
insilmaril@725
    10
{
insilmaril@725
    11
public:
insilmaril@735
    12
	enum Type {Undefined,MapCenter,Branch,Image};
insilmaril@725
    13
    TreeItem(const QList<QVariant> &data, TreeItem *parent = 0);
insilmaril@725
    14
    ~TreeItem();
insilmaril@725
    15
insilmaril@727
    16
	// General housekeeping
insilmaril@727
    17
    void appendChild (TreeItem *child);
insilmaril@727
    18
	void removeChild (int row);
insilmaril@725
    19
insilmaril@725
    20
    TreeItem *child(int row);
insilmaril@725
    21
    int childCount() const;
insilmaril@725
    22
    int columnCount() const;
insilmaril@727
    23
insilmaril@727
    24
    int row() const;
insilmaril@727
    25
	int column() const;
insilmaril@727
    26
    TreeItem *parent();
insilmaril@727
    27
insilmaril@727
    28
	// Accessing data
insilmaril@725
    29
    QVariant data(int column) const;
insilmaril@726
    30
	void setHeading (const QString s);
insilmaril@726
    31
	QString getHeading();
insilmaril@726
    32
	void setType (const Type t);
insilmaril@726
    33
	Type getType ();
insilmaril@726
    34
	QString getTypeName ();
insilmaril@726
    35
	
insilmaril@726
    36
	// Relation to map objects in graphicsscene
insilmaril@726
    37
	LinkableMapObj* getLMO();
insilmaril@726
    38
	void setLMO (LinkableMapObj*);
insilmaril@726
    39
insilmaril@725
    40
private:
insilmaril@725
    41
    QList<TreeItem*> childItems;
insilmaril@725
    42
    QList<QVariant> itemData;
insilmaril@725
    43
    TreeItem *parentItem;
insilmaril@726
    44
 
insilmaril@726
    45
	Type type;
insilmaril@726
    46
	LinkableMapObj *lmo;
insilmaril@725
    47
};
insilmaril@725
    48
insilmaril@725
    49
#endif