xlinkitem.h
author insilmaril
Thu, 18 Mar 2010 11:55:59 +0000
changeset 840 c13937960f1d
parent 814 31de6677aa96
child 847 43268373032d
permissions -rw-r--r--
Added missing return values
insilmaril@795
     1
#ifndef XLINKITEM_H
insilmaril@795
     2
#define XLINKITEM_H
insilmaril@795
     3
insilmaril@795
     4
class BranchItem;
insilmaril@795
     5
class XLinkObj;
insilmaril@795
     6
class QGraphicsScene;
insilmaril@795
     7
insilmaril@795
     8
#include "mapitem.h"
insilmaril@795
     9
insilmaril@795
    10
/*! \brief xlinks are used to draw arbitrary connections between branches (BranchObj) in the map. */
insilmaril@795
    11
insilmaril@795
    12
/////////////////////////////////////////////////////////////////////////////
insilmaril@795
    13
class XLinkItem:public MapItem {
insilmaril@795
    14
public:
insilmaril@795
    15
	enum XLinkState {undefinedXLink,initXLink,activeXLink,deleteXLink};	
insilmaril@795
    16
insilmaril@795
    17
	XLinkItem (const QList<QVariant> &data, TreeItem *parent=NULL);
insilmaril@795
    18
    virtual ~XLinkItem ();
insilmaril@795
    19
    virtual void init ();
insilmaril@795
    20
	void setBegin (BranchItem*);
insilmaril@795
    21
	BranchItem* getBegin();
insilmaril@795
    22
	void setEnd   (BranchItem*);
insilmaril@795
    23
	void setEnd   (QPointF);
insilmaril@795
    24
	BranchItem* getEnd();
insilmaril@795
    25
	void setColor(QColor);
insilmaril@795
    26
	QColor getColor();
insilmaril@795
    27
	void setWidth (int);
insilmaril@795
    28
	int getWidth ();
insilmaril@795
    29
	bool activate ();			//! Creates a 2nd XLink (without a XLinkObj attached) 
insilmaril@795
    30
	bool isBegin();		//! true, if this is master xLink, which may have an XLinkObj attached
insilmaril@795
    31
	void updateXLink();
insilmaril@795
    32
	virtual void updateVisibility();	// FIXME-3 not really needed atm...
insilmaril@795
    33
	BranchItem* getPartnerBranch ();
insilmaril@814
    34
	BranchItem* getOtherBranch (TreeItem *ti);
insilmaril@795
    35
	XLinkItem *getPartnerXLink();	//! Partner XLink
insilmaril@795
    36
	QString saveToDir ();
insilmaril@795
    37
	virtual XLinkObj* createMapObj(QGraphicsScene *scene);
insilmaril@795
    38
insilmaril@795
    39
private:
insilmaril@795
    40
	XLinkState xLinkState;	// init during drawing or active
insilmaril@795
    41
	QColor color;
insilmaril@795
    42
	int width;
insilmaril@795
    43
	BranchItem *beginBranch;
insilmaril@795
    44
	BranchItem *endBranch;
insilmaril@795
    45
	XLinkItem *partnerXLink;
insilmaril@795
    46
	bool isBeginXLink;
insilmaril@795
    47
};
insilmaril@795
    48
insilmaril@795
    49
#endif