treeitem.h
author insilmaril
Wed, 04 Feb 2009 16:33:16 +0000
changeset 740 6dc0a20031f7
parent 738 716a777c1c98
child 741 1b4d1ea6ea8c
permissions -rw-r--r--
started to rewrite first(), next()
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@740
    26
	int depth() ;
insilmaril@727
    27
    TreeItem *parent();
insilmaril@727
    28
insilmaril@727
    29
	// Accessing data
insilmaril@725
    30
    QVariant data(int column) const;
insilmaril@726
    31
	void setHeading (const QString s);
insilmaril@726
    32
	QString getHeading();
insilmaril@726
    33
	void setType (const Type t);
insilmaril@726
    34
	Type getType ();
insilmaril@726
    35
	QString getTypeName ();
insilmaril@738
    36
insilmaril@738
    37
	// Navigation and selection
insilmaril@738
    38
	TreeItem* getChildNum(const int &n);
insilmaril@738
    39
	TreeItem* getFirstBranch();
insilmaril@738
    40
	TreeItem* getLastBranch();
insilmaril@738
    41
	TreeItem* getBranchNum(const int &n);
insilmaril@738
    42
	void setLastSelectedBranch();
insilmaril@738
    43
	TreeItem* getLastSelectedBranch();
insilmaril@738
    44
insilmaril@726
    45
	
insilmaril@726
    46
	// Relation to map objects in graphicsscene
insilmaril@726
    47
	LinkableMapObj* getLMO();
insilmaril@726
    48
	void setLMO (LinkableMapObj*);
insilmaril@726
    49
insilmaril@725
    50
private:
insilmaril@725
    51
    QList<TreeItem*> childItems;
insilmaril@725
    52
    QList<QVariant> itemData;
insilmaril@725
    53
    TreeItem *parentItem;
insilmaril@726
    54
 
insilmaril@726
    55
	Type type;
insilmaril@726
    56
	LinkableMapObj *lmo;
insilmaril@738
    57
insilmaril@738
    58
	int branchOffset;
insilmaril@738
    59
	int branchCount;
insilmaril@738
    60
	int lastSelectedBranchNum;
insilmaril@725
    61
};
insilmaril@725
    62
insilmaril@725
    63
#endif