treeitem.h
author insilmaril
Thu, 26 Mar 2009 07:49:17 +0000
changeset 746 ee6b0f3a4c2f
parent 745 2d4cc445a86a
child 749 9ff332964015
permissions -rw-r--r--
Notes work again (to some degree)
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@727
    34
insilmaril@727
    35
    int row() const;
insilmaril@727
    36
	int column() const;
insilmaril@740
    37
	int depth() ;
insilmaril@727
    38
    TreeItem *parent();
insilmaril@741
    39
	int num();		// object index, e.g. branch number
insilmaril@727
    40
insilmaril@727
    41
	// Accessing data
insilmaril@725
    42
    QVariant data(int column) const;
insilmaril@726
    43
	void setHeading (const QString s);
insilmaril@726
    44
	QString getHeading();
insilmaril@746
    45
insilmaril@746
    46
protected:
insilmaril@746
    47
	NoteObj note;
insilmaril@746
    48
public:	
insilmaril@741
    49
	void setNote(const QString s);
insilmaril@741
    50
	QString getNote();
insilmaril@746
    51
	virtual void setNoteObj(const NoteObj &, bool updateNoteEditor=true);
insilmaril@746
    52
	virtual NoteObj getNoteObj();			
insilmaril@746
    53
	virtual QString getNoteASCII(const QString &indent, const int &width); // returns note	(ASCII)
insilmaril@746
    54
    virtual QString getNoteASCII();			// returns note	(ASCII)
insilmaril@746
    55
    virtual QString getNoteOpenDoc();		// returns note	(OpenDoc)
insilmaril@746
    56
insilmaril@746
    57
insilmaril@746
    58
protected:
insilmaril@746
    59
	Type type;
insilmaril@746
    60
public:	
insilmaril@726
    61
	void setType (const Type t);
insilmaril@726
    62
	Type getType ();
insilmaril@726
    63
	QString getTypeName ();
insilmaril@738
    64
insilmaril@738
    65
	// Navigation and selection
insilmaril@738
    66
	TreeItem* getChildNum(const int &n);
insilmaril@738
    67
	TreeItem* getFirstBranch();
insilmaril@738
    68
	TreeItem* getLastBranch();
insilmaril@738
    69
	TreeItem* getBranchNum(const int &n);
insilmaril@738
    70
	void setLastSelectedBranch();
insilmaril@738
    71
	TreeItem* getLastSelectedBranch();
insilmaril@738
    72
insilmaril@726
    73
	
insilmaril@726
    74
	// Relation to map objects in graphicsscene
insilmaril@726
    75
	LinkableMapObj* getLMO();
insilmaril@726
    76
	void setLMO (LinkableMapObj*);
insilmaril@726
    77
insilmaril@741
    78
protected:
insilmaril@746
    79
	VymModel *model;
insilmaril@746
    80
insilmaril@725
    81
    QList<TreeItem*> childItems;
insilmaril@725
    82
    QList<QVariant> itemData;
insilmaril@725
    83
    TreeItem *parentItem;
insilmaril@726
    84
 
insilmaril@726
    85
	LinkableMapObj *lmo;
insilmaril@738
    86
insilmaril@738
    87
	int branchOffset;
insilmaril@741
    88
	int branchCounter;
insilmaril@738
    89
	int lastSelectedBranchNum;
insilmaril@746
    90
insilmaril@746
    91
	bool hidden;	//! Hidden in export if true
insilmaril@725
    92
};
insilmaril@725
    93
insilmaril@725
    94
#endif