treeitem.h
author insilmaril
Thu, 19 Mar 2009 11:45:28 +0000
changeset 742 54d44ecd6097
parent 741 1b4d1ea6ea8c
child 745 2d4cc445a86a
permissions -rw-r--r--
ProgressBar during load and more fixes
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@741
    23
	int branchCount() const;
insilmaril@727
    24
insilmaril@727
    25
    int row() const;
insilmaril@727
    26
	int column() const;
insilmaril@740
    27
	int depth() ;
insilmaril@727
    28
    TreeItem *parent();
insilmaril@741
    29
	int num();		// object index, e.g. branch number
insilmaril@727
    30
insilmaril@727
    31
	// Accessing data
insilmaril@725
    32
    QVariant data(int column) const;
insilmaril@726
    33
	void setHeading (const QString s);
insilmaril@726
    34
	QString getHeading();
insilmaril@741
    35
	void setNote(const QString s);
insilmaril@741
    36
	QString getNote();
insilmaril@726
    37
	void setType (const Type t);
insilmaril@726
    38
	Type getType ();
insilmaril@726
    39
	QString getTypeName ();
insilmaril@738
    40
insilmaril@738
    41
	// Navigation and selection
insilmaril@738
    42
	TreeItem* getChildNum(const int &n);
insilmaril@738
    43
	TreeItem* getFirstBranch();
insilmaril@738
    44
	TreeItem* getLastBranch();
insilmaril@738
    45
	TreeItem* getBranchNum(const int &n);
insilmaril@738
    46
	void setLastSelectedBranch();
insilmaril@738
    47
	TreeItem* getLastSelectedBranch();
insilmaril@738
    48
insilmaril@726
    49
	
insilmaril@726
    50
	// Relation to map objects in graphicsscene
insilmaril@726
    51
	LinkableMapObj* getLMO();
insilmaril@726
    52
	void setLMO (LinkableMapObj*);
insilmaril@726
    53
insilmaril@741
    54
protected:
insilmaril@725
    55
    QList<TreeItem*> childItems;
insilmaril@725
    56
    QList<QVariant> itemData;
insilmaril@725
    57
    TreeItem *parentItem;
insilmaril@726
    58
 
insilmaril@726
    59
	Type type;
insilmaril@726
    60
	LinkableMapObj *lmo;
insilmaril@738
    61
insilmaril@738
    62
	int branchOffset;
insilmaril@741
    63
	int branchCounter;
insilmaril@738
    64
	int lastSelectedBranchNum;
insilmaril@725
    65
};
insilmaril@725
    66
insilmaril@725
    67
#endif