treeitem.h
author insilmaril
Thu, 02 Apr 2009 09:46:29 +0000
changeset 750 ff3b01ce0960
parent 749 9ff332964015
child 753 25a77484ec72
permissions -rw-r--r--
More moving from BranchObj to BranchItem
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@746
     7
#include "noteobj.h"
insilmaril@746
     8
#include "xmlobj.h"
insilmaril@746
     9
insilmaril@726
    10
class LinkableMapObj;
insilmaril@750
    11
class BranchObj;
insilmaril@750
    12
class BranchItem;
insilmaril@746
    13
class VymModel;
insilmaril@726
    14
insilmaril@746
    15
class TreeItem:public XMLObj
insilmaril@725
    16
{
insilmaril@725
    17
public:
insilmaril@735
    18
	enum Type {Undefined,MapCenter,Branch,Image};
insilmaril@725
    19
    TreeItem(const QList<QVariant> &data, TreeItem *parent = 0);
insilmaril@725
    20
    ~TreeItem();
insilmaril@746
    21
	QString saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset);
insilmaril@746
    22
insilmaril@725
    23
insilmaril@727
    24
	// General housekeeping
insilmaril@746
    25
	void setModel (VymModel *m);
insilmaril@746
    26
	VymModel* getModel();
insilmaril@746
    27
insilmaril@727
    28
    void appendChild (TreeItem *child);
insilmaril@727
    29
	void removeChild (int row);
insilmaril@725
    30
insilmaril@725
    31
    TreeItem *child(int row);
insilmaril@725
    32
    int childCount() const;
insilmaril@745
    33
    int childNumber() const;
insilmaril@725
    34
    int columnCount() const;
insilmaril@741
    35
	int branchCount() const;
insilmaril@749
    36
	int imageCount() const;
insilmaril@749
    37
	int xlinkCount() const;
insilmaril@727
    38
insilmaril@727
    39
    int row() const;
insilmaril@727
    40
	int column() const;
insilmaril@740
    41
	int depth() ;
insilmaril@727
    42
    TreeItem *parent();
insilmaril@749
    43
insilmaril@749
    44
	/*! Return number of item in parent by type, 
insilmaril@749
    45
	    e.g. first branch has number 0           */
insilmaril@749
    46
	int num();		
insilmaril@749
    47
	int num (TreeItem *item);	//! Return number of item by type
insilmaril@727
    48
insilmaril@727
    49
	// Accessing data
insilmaril@725
    50
    QVariant data(int column) const;
insilmaril@726
    51
	void setHeading (const QString s);
insilmaril@726
    52
	QString getHeading();
insilmaril@746
    53
insilmaril@746
    54
protected:
insilmaril@746
    55
	NoteObj note;
insilmaril@746
    56
public:	
insilmaril@741
    57
	void setNote(const QString s);
insilmaril@741
    58
	QString getNote();
insilmaril@746
    59
	virtual void setNoteObj(const NoteObj &, bool updateNoteEditor=true);
insilmaril@746
    60
	virtual NoteObj getNoteObj();			
insilmaril@746
    61
	virtual QString getNoteASCII(const QString &indent, const int &width); // returns note	(ASCII)
insilmaril@746
    62
    virtual QString getNoteASCII();			// returns note	(ASCII)
insilmaril@746
    63
    virtual QString getNoteOpenDoc();		// returns note	(OpenDoc)
insilmaril@746
    64
insilmaril@746
    65
insilmaril@746
    66
protected:
insilmaril@746
    67
	Type type;
insilmaril@746
    68
public:	
insilmaril@726
    69
	void setType (const Type t);
insilmaril@726
    70
	Type getType ();
insilmaril@726
    71
	QString getTypeName ();
insilmaril@738
    72
insilmaril@738
    73
	// Navigation and selection
insilmaril@738
    74
	TreeItem* getChildNum(const int &n);
insilmaril@750
    75
	BranchItem* getFirstBranch();
insilmaril@750
    76
	BranchItem* getLastBranch();
insilmaril@750
    77
	BranchItem* getBranchNum(const int &n);
insilmaril@750
    78
	BranchObj* getBranchObjNum(const int &n);
insilmaril@738
    79
	void setLastSelectedBranch();
insilmaril@738
    80
	TreeItem* getLastSelectedBranch();
insilmaril@738
    81
insilmaril@726
    82
	
insilmaril@726
    83
	// Relation to map objects in graphicsscene
insilmaril@726
    84
	LinkableMapObj* getLMO();
insilmaril@726
    85
	void setLMO (LinkableMapObj*);
insilmaril@726
    86
insilmaril@741
    87
protected:
insilmaril@746
    88
	VymModel *model;
insilmaril@746
    89
insilmaril@725
    90
    QList<TreeItem*> childItems;
insilmaril@725
    91
    QList<QVariant> itemData;
insilmaril@725
    92
    TreeItem *parentItem;
insilmaril@726
    93
 
insilmaril@726
    94
	LinkableMapObj *lmo;
insilmaril@738
    95
insilmaril@738
    96
	int branchOffset;
insilmaril@741
    97
	int branchCounter;
insilmaril@738
    98
	int lastSelectedBranchNum;
insilmaril@746
    99
insilmaril@746
   100
	bool hidden;	//! Hidden in export if true
insilmaril@725
   101
};
insilmaril@725
   102
insilmaril@725
   103
#endif