branchobj.h
branchrelease-1-12-maintained
changeset 58 89dd2219982f
parent 0 7a96bd401351
     1.1 --- a/branchobj.h	Sun Jan 30 12:58:47 2005 +0000
     1.2 +++ b/branchobj.h	Thu Mar 05 09:33:30 2009 +0000
     1.3 @@ -4,18 +4,27 @@
     1.4  #include "floatimageobj.h"
     1.5  #include "linkablemapobj.h"
     1.6  #include "ornamentedobj.h"
     1.7 +#include "xlinkobj.h"
     1.8  
     1.9 -class BranchObjPtrList : public QPtrList<BranchObj>
    1.10 -{
    1.11 -	virtual int compareItems (QPtrCollection::Item i, QPtrCollection::Item j);
    1.12 -};
    1.13 +
    1.14 +bool isAbove(BranchObj*,BranchObj*);
    1.15 +
    1.16 +/*! \brief A branch visible in the map */
    1.17 +
    1.18 +/*! If HideExport is used, this branch and its childs will be hidden in export */
    1.19 +enum HideTmpMode {HideNone, HideExport};
    1.20 +
    1.21  
    1.22  /////////////////////////////////////////////////////////////////////////////
    1.23  class BranchObj:public OrnamentedObj {
    1.24  public:
    1.25 +	/*! New branches will get use same color for heading as parent */
    1.26 +	enum BranchModification {NewBranch, MovedBranch};
    1.27 +
    1.28 +
    1.29      BranchObj ();
    1.30 -    BranchObj (QCanvas*);
    1.31 -    BranchObj (QCanvas*, LinkableMapObj* parent);
    1.32 +    BranchObj (QGraphicsScene*);
    1.33 +    BranchObj (QGraphicsScene*, LinkableMapObj* parent);
    1.34      ~BranchObj ();
    1.35  	bool operator< ( const BranchObj & );
    1.36  	bool operator== ( const BranchObj & );
    1.37 @@ -27,7 +36,8 @@
    1.38  	virtual int getFloatImageNum(FloatImageObj*);		
    1.39  	virtual int countBranches();		
    1.40  	virtual int countFloatImages();		
    1.41 -    virtual void setParObjTmp (LinkableMapObj*,QPoint,int);// Only for moving Obj around
    1.42 +	virtual int countXLinks();		
    1.43 +    virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around
    1.44  	virtual void unsetParObjTmp();			// reuse original ParObj
    1.45  
    1.46  	virtual void unScroll();				
    1.47 @@ -40,72 +50,105 @@
    1.48  	virtual void setVisibility(bool,int);	// set visibility
    1.49      virtual void setVisibility(bool);	    // set vis. for w
    1.50  	virtual void setLinkColor();			// set the color of link
    1.51 -	virtual void setColor(QColor,bool);		// set the color of heading
    1.52 -
    1.53 +	virtual void setColorSubtree(QColor);	// set the color of heading
    1.54  
    1.55  	BranchObj* first ();				// set Iterator to first LMO
    1.56  	BranchObj* next ();					// find next LMO after given one
    1.57  	BranchObj* getLastIterator();		// to interrupt and resume next iteration
    1.58  	void setLastIterator (BranchObj*);	// needed by next() 
    1.59  
    1.60 +	virtual void positionContents();
    1.61      virtual void move (double x,double y);
    1.62 -    virtual void move (QPoint);
    1.63 +    virtual void move (QPointF);
    1.64      virtual void moveBy (double x,double y);
    1.65 -    virtual void moveBy (QPoint);
    1.66 +    virtual void moveBy (QPointF);
    1.67      virtual void positionBBox();
    1.68      virtual void calcBBoxSize();
    1.69 -    virtual LinkableMapObj* findMapObj(QPoint,LinkableMapObj*);	// find MapObj 
    1.70 +	virtual void setDockPos();
    1.71 +    virtual LinkableMapObj* findMapObj(QPointF,LinkableMapObj*);	// find MapObj 
    1.72 +    virtual LinkableMapObj* findID (QString sid);	// find Obj by ID string
    1.73      virtual void setHeading (QString);
    1.74 -    virtual void setURL (QString);
    1.75 -    virtual QString getURL ();
    1.76 -    virtual void setVymLink (QString);
    1.77 -    virtual QString getVymLink ();
    1.78 -	virtual QString saveToDir (const QString&,const QString&, const QPoint&);// Save data recursivly to tempdir
    1.79 -	virtual LinkableMapObj* addFloatImage();
    1.80 -	virtual LinkableMapObj* addFloatImage(FloatImageObj*);
    1.81 +
    1.82 +	virtual void setHideTmp (HideTmpMode);
    1.83 +	virtual bool hasHiddenExportParent ();
    1.84 +
    1.85 +	virtual QString saveToDir (const QString&,const QString&, const QPointF&);// Save data recursivly to tempdir
    1.86 +	virtual void addXLink (XLinkObj*);
    1.87 +	virtual void removeXLinkRef (XLinkObj*);// Remove ref in list
    1.88 +	virtual void deleteXLink (XLinkObj*);	// remove references and delete XLinkObj 
    1.89 +	virtual void deleteXLinkAt (int);		// remove references and delete XLinkObj 
    1.90 +	virtual XLinkObj* XLinkAt (int);		// return reference of XLinkObj 
    1.91 +	virtual int countXLink ();
    1.92 +	virtual BranchObj* XLinkTargetAt (int);
    1.93 +	void setIncludeImagesVer(bool);
    1.94 +	bool getIncludeImagesVer();
    1.95 +	void setIncludeImagesHor(bool);
    1.96 +	bool getIncludeImagesHor();
    1.97 +	QString getIncludeImageAttr();
    1.98 +	virtual FloatImageObj* addFloatImage();
    1.99 +	virtual FloatImageObj* addFloatImage(FloatImageObj*);
   1.100  	virtual void removeFloatImage(FloatImageObj*);
   1.101      virtual FloatImageObj* getFirstFloatImage();
   1.102      virtual FloatImageObj* getLastFloatImage();
   1.103  	virtual FloatImageObj* getFloatImageNum(const uint &);
   1.104  protected:	
   1.105 -	virtual void savePosInAngle();			// write pos in angle for resorting			
   1.106 +	virtual void savePosInAngle();					// write pos in angle for resorting			
   1.107 +	virtual void setDefAttr (BranchModification);	// set default attributes (font, size, ...)
   1.108  public:	
   1.109      virtual BranchObj* addBranch();
   1.110      virtual BranchObj* addBranch(BranchObj*);		// makes deep copy of BranchObj
   1.111 +    virtual BranchObj* addBranchPtr(BranchObj*);	// just adds pointer
   1.112      virtual BranchObj* insertBranch(int);
   1.113      virtual BranchObj* insertBranch(BranchObj*,int);
   1.114 +    virtual BranchObj* insertBranchPtr (BranchObj*,int);
   1.115 +    virtual void removeBranchHere(BranchObj*);  
   1.116 +    virtual void removeChilds();  
   1.117      virtual void removeBranch(BranchObj*);  
   1.118 +    virtual void removeBranchPtr (BranchObj*);  
   1.119      virtual void setLastSelectedBranch(BranchObj*);
   1.120      virtual BranchObj* getLastSelectedBranch();
   1.121      virtual BranchObj* getFirstBranch();
   1.122      virtual BranchObj* getLastBranch();
   1.123 -	virtual BranchObj* getBranchNum(const uint &);
   1.124 +	virtual BranchObj* getBranchNum(int);
   1.125 +    virtual bool canMoveBranchUp();
   1.126      virtual BranchObj* moveBranchUp(BranchObj*);
   1.127 +    virtual bool canMoveBranchDown();
   1.128      virtual BranchObj* moveBranchDown(BranchObj*);
   1.129 +    virtual void sortChildren();
   1.130 +    virtual BranchObj* linkTo (BranchObj*, int);
   1.131 +    virtual void alignRelativeTo(const QPointF ref, bool alignSelf=false );
   1.132 +	virtual void reposition();
   1.133 +	virtual void unsetAllRepositionRequests();
   1.134  
   1.135 -    virtual void alignRelativeTo(const QPoint );
   1.136 -	virtual void reposition();
   1.137 -
   1.138 -	virtual QRect getTotalBBox();			// return BBox including childs			
   1.139 -	virtual QRect getBBoxSizeWithChilds();	// return size of BBox including childs  
   1.140 +	virtual QPolygonF shape();				//!< Returns arbitrary bounding polygon
   1.141 +	virtual QRectF getTotalBBox();			// return BBox including childs			
   1.142 +	virtual QRectF getBBoxSizeWithChilds();	// return size of BBox including childs  
   1.143  	virtual void calcBBoxSizeWithChilds();	// calc size of  BBox including childs recursivly
   1.144  
   1.145      virtual void select();
   1.146      virtual void unselect();
   1.147  	virtual QString getSelectString();
   1.148 +	virtual void setAnimation(const AnimPoint &ap);
   1.149 +	virtual bool animate();
   1.150  
   1.151  protected:
   1.152  	static BranchObj* itLast;		// iterator for first(), next()
   1.153 -    BranchObjPtrList branch;		// all child branches
   1.154 -	QPtrList<FloatImageObj> floatimage;	// child images
   1.155 +	static BranchObj* itFirst;		// first iterator for first(), next()
   1.156 +    QList<BranchObj*> branch;		// all child branches
   1.157 +	QList<FloatImageObj*> floatimage;// child images
   1.158 +	QList<XLinkObj*> xlink;			// xlinks to other branches
   1.159 +
   1.160 +	AnimPoint anim;
   1.161 +
   1.162  public:	
   1.163  	float angle;					// used in mainbranch to reorder mainbranches
   1.164  protected:	
   1.165      int lastSelectedBranch;			// for going deeper into tree
   1.166  	bool scrolled;					// true if all childs are scrolled and thus invisible
   1.167  	bool tmpUnscrolled;				// can only be true (temporary) for a scrolled subtree
   1.168 -	QString url;					// url to external doc
   1.169 -	QString vymLink;				// path to another map
   1.170 +	bool includeImagesVer;			// include floatimages in bbox vertically
   1.171 +	bool includeImagesHor;			// include floatimages in bbox horizontally
   1.172 +
   1.173  };
   1.174  
   1.175