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