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