branchobj.h
author insilmaril
Tue, 18 Aug 2009 12:39:07 +0000
changeset 788 78ba80b54bc4
parent 785 5987f9f15bac
child 790 133e2ed6b9c5
permissions -rw-r--r--
Fix for segfault when deleting MCO (invalid QModelIndex needs to be returned in index(TreeItem*) )
     1 #ifndef BRANCHOBJ_H
     2 #define BRANCHOBJ_H
     3 
     4 #include "floatimageobj.h"
     5 #include "linkablemapobj.h"
     6 #include "ornamentedobj.h"
     7 #include "xlinkobj.h"
     8 
     9 
    10 bool isAbove(BranchObj*,BranchObj*);
    11 
    12 /*! \brief A branch visible in the map */
    13 
    14 /////////////////////////////////////////////////////////////////////////////
    15 class BranchObj:public OrnamentedObj {
    16 public:
    17 	/*! New branches will get use same color for heading as parent */
    18 	enum BranchModification {NewBranch, MovedBranch};
    19 
    20 
    21     BranchObj ();
    22     BranchObj (QGraphicsScene*);
    23     BranchObj (QGraphicsScene*, LinkableMapObj* parent);
    24     ~BranchObj ();
    25 	bool operator< ( const BranchObj & );
    26 	bool operator== ( const BranchObj & );
    27     virtual void init ();
    28     virtual void copy (BranchObj*);
    29     void clear();
    30 
    31     virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around
    32 	virtual void unsetParObjTmp();			// reuse original ParObj
    33 
    34 	virtual void setVisibility(bool,int);	// set visibility
    35     virtual void setVisibility(bool);	    // set vis. for w
    36 	virtual void setLinkColor();			// set the color of link
    37 
    38 	virtual void updateContentSize();
    39 	virtual void positionContents();
    40     virtual void move (double x,double y);
    41     virtual void move (QPointF);
    42     virtual void moveBy (double x,double y);
    43     virtual void moveBy (QPointF);
    44     virtual void positionBBox();
    45     virtual void calcBBoxSize();
    46 	virtual void setDockPos();
    47     
    48     virtual void updateData();	//! Update represantatio of heading, flags, etc.
    49 
    50 	virtual void addXLink (XLinkObj*);
    51 	virtual void removeXLinkRef (XLinkObj*);// Remove ref in list
    52 	virtual void deleteXLink (XLinkObj*);	// remove references and delete XLinkObj 
    53 	virtual void deleteXLinkAt (int);		// remove references and delete XLinkObj 
    54 	virtual XLinkObj* XLinkAt (int);		// return reference of XLinkObj 
    55 	virtual BranchObj* XLinkTargetAt (int);
    56 
    57 /* FIXME-3
    58 	virtual FloatImageObj* addFloatImage();
    59 	virtual FloatImageObj* addFloatImage(FloatImageObj*);
    60 	virtual void removeFloatImage(FloatImageObj*);
    61     virtual FloatImageObj* getFirstFloatImage();
    62     virtual FloatImageObj* getLastFloatImage();
    63 */	
    64 //FIXME-3	virtual FloatImageObj* getFloatImageNum(const uint &);
    65 protected:	
    66 	virtual void savePosInAngle();					// write pos in angle for resorting			
    67 public:	
    68 	virtual void setDefAttr (BranchModification);	// set default attributes (font, size, ...)
    69 
    70     virtual void sortChildren();
    71     virtual void alignRelativeTo(const QPointF, bool alignSelf=false );
    72 	virtual void reposition();
    73 	virtual void unsetAllRepositionRequests();
    74 
    75 	virtual QPolygonF shape();				//!< Returns arbitrary bounding polygon
    76 	virtual QRectF getTotalBBox();			// return BBox including children			
    77 	virtual QRectF getBBoxSizeWithChildren();	// return size of BBox including children  
    78 	virtual void calcBBoxSizeWithChildren();	// calc size of  BBox including children recursivly
    79 
    80 	virtual QString getSelectString();
    81 	virtual void setAnimation(const AnimPoint &ap);
    82 	virtual bool animate();
    83 
    84 protected:
    85 	//FIXME-3 QList<FloatImageObj*> floatimage;// child images
    86 	QList<XLinkObj*> xlink;			// xlinks to other branches
    87 
    88 	AnimPoint anim;
    89 
    90 public:	
    91 	float angle;					// used in mainbranch to reorder mainbranches
    92 };
    93 
    94 
    95 #endif
    96