diff -r 7a96bd401351 -r 326e3336e9b0 branchobj.h --- a/branchobj.h Sun Jan 30 12:58:47 2005 +0000 +++ b/branchobj.h Thu Aug 07 10:56:52 2008 +0000 @@ -4,18 +4,27 @@ #include "floatimageobj.h" #include "linkablemapobj.h" #include "ornamentedobj.h" +#include "xlinkobj.h" -class BranchObjPtrList : public QPtrList -{ - virtual int compareItems (QPtrCollection::Item i, QPtrCollection::Item j); -}; + +bool isAbove(BranchObj*,BranchObj*); + +/*! \brief A branch visible in the map */ + +/*! If HideExport is used, this branch and its childs will be hidden in export */ +enum HideTmpMode {HideNone, HideExport}; + ///////////////////////////////////////////////////////////////////////////// class BranchObj:public OrnamentedObj { public: + /*! New branches will get use same color for heading as parent */ + enum BranchModification {NewBranch, MovedBranch}; + + BranchObj (); - BranchObj (QCanvas*); - BranchObj (QCanvas*, LinkableMapObj* parent); + BranchObj (QGraphicsScene*); + BranchObj (QGraphicsScene*, LinkableMapObj* parent); ~BranchObj (); bool operator< ( const BranchObj & ); bool operator== ( const BranchObj & ); @@ -27,7 +36,8 @@ virtual int getFloatImageNum(FloatImageObj*); virtual int countBranches(); virtual int countFloatImages(); - virtual void setParObjTmp (LinkableMapObj*,QPoint,int);// Only for moving Obj around + virtual int countXLinks(); + virtual void setParObjTmp (LinkableMapObj*,QPointF,int);// Only for moving Obj around virtual void unsetParObjTmp(); // reuse original ParObj virtual void unScroll(); @@ -40,72 +50,105 @@ virtual void setVisibility(bool,int); // set visibility virtual void setVisibility(bool); // set vis. for w virtual void setLinkColor(); // set the color of link - virtual void setColor(QColor,bool); // set the color of heading - + virtual void setColorSubtree(QColor); // set the color of heading BranchObj* first (); // set Iterator to first LMO BranchObj* next (); // find next LMO after given one BranchObj* getLastIterator(); // to interrupt and resume next iteration void setLastIterator (BranchObj*); // needed by next() + virtual void positionContents(); virtual void move (double x,double y); - virtual void move (QPoint); + virtual void move (QPointF); virtual void moveBy (double x,double y); - virtual void moveBy (QPoint); + virtual void moveBy (QPointF); virtual void positionBBox(); virtual void calcBBoxSize(); - virtual LinkableMapObj* findMapObj(QPoint,LinkableMapObj*); // find MapObj + virtual void setDockPos(); + virtual LinkableMapObj* findMapObj(QPointF,LinkableMapObj*); // find MapObj + virtual LinkableMapObj* findID (QString sid); // find Obj by ID string virtual void setHeading (QString); - virtual void setURL (QString); - virtual QString getURL (); - virtual void setVymLink (QString); - virtual QString getVymLink (); - virtual QString saveToDir (const QString&,const QString&, const QPoint&);// Save data recursivly to tempdir - virtual LinkableMapObj* addFloatImage(); - virtual LinkableMapObj* addFloatImage(FloatImageObj*); + + virtual void setHideTmp (HideTmpMode); + virtual bool hasHiddenExportParent (); + + virtual QString saveToDir (const QString&,const QString&, const QPointF&);// Save data recursivly to tempdir + virtual void addXLink (XLinkObj*); + virtual void removeXLinkRef (XLinkObj*);// Remove ref in list + virtual void deleteXLink (XLinkObj*); // remove references and delete XLinkObj + virtual void deleteXLinkAt (int); // remove references and delete XLinkObj + virtual XLinkObj* XLinkAt (int); // return reference of XLinkObj + virtual int countXLink (); + virtual BranchObj* XLinkTargetAt (int); + void setIncludeImagesVer(bool); + bool getIncludeImagesVer(); + void setIncludeImagesHor(bool); + bool getIncludeImagesHor(); + QString getIncludeImageAttr(); + virtual FloatImageObj* addFloatImage(); + virtual FloatImageObj* addFloatImage(FloatImageObj*); virtual void removeFloatImage(FloatImageObj*); virtual FloatImageObj* getFirstFloatImage(); virtual FloatImageObj* getLastFloatImage(); virtual FloatImageObj* getFloatImageNum(const uint &); protected: - virtual void savePosInAngle(); // write pos in angle for resorting + virtual void savePosInAngle(); // write pos in angle for resorting + virtual void setDefAttr (BranchModification); // set default attributes (font, size, ...) public: virtual BranchObj* addBranch(); virtual BranchObj* addBranch(BranchObj*); // makes deep copy of BranchObj + virtual BranchObj* addBranchPtr(BranchObj*); // just adds pointer virtual BranchObj* insertBranch(int); virtual BranchObj* insertBranch(BranchObj*,int); + virtual BranchObj* insertBranchPtr (BranchObj*,int); + virtual void removeBranchHere(BranchObj*); + virtual void removeChilds(); virtual void removeBranch(BranchObj*); + virtual void removeBranchPtr (BranchObj*); virtual void setLastSelectedBranch(BranchObj*); virtual BranchObj* getLastSelectedBranch(); virtual BranchObj* getFirstBranch(); virtual BranchObj* getLastBranch(); - virtual BranchObj* getBranchNum(const uint &); + virtual BranchObj* getBranchNum(int); + virtual bool canMoveBranchUp(); virtual BranchObj* moveBranchUp(BranchObj*); + virtual bool canMoveBranchDown(); virtual BranchObj* moveBranchDown(BranchObj*); + virtual void sortChildren(); + virtual BranchObj* linkTo (BranchObj*, int); + virtual void alignRelativeTo(const QPointF ref, bool alignSelf=false ); + virtual void reposition(); + virtual void unsetAllRepositionRequests(); - virtual void alignRelativeTo(const QPoint ); - virtual void reposition(); - - virtual QRect getTotalBBox(); // return BBox including childs - virtual QRect getBBoxSizeWithChilds(); // return size of BBox including childs + virtual QPolygonF shape(); //!< Returns arbitrary bounding polygon + virtual QRectF getTotalBBox(); // return BBox including childs + virtual QRectF getBBoxSizeWithChilds(); // return size of BBox including childs virtual void calcBBoxSizeWithChilds(); // calc size of BBox including childs recursivly virtual void select(); virtual void unselect(); virtual QString getSelectString(); + virtual void setAnimation(const AnimPoint &ap); + virtual bool animate(); protected: static BranchObj* itLast; // iterator for first(), next() - BranchObjPtrList branch; // all child branches - QPtrList floatimage; // child images + static BranchObj* itFirst; // first iterator for first(), next() + QList branch; // all child branches + QList floatimage;// child images + QList xlink; // xlinks to other branches + + AnimPoint anim; + public: float angle; // used in mainbranch to reorder mainbranches protected: int lastSelectedBranch; // for going deeper into tree bool scrolled; // true if all childs are scrolled and thus invisible bool tmpUnscrolled; // can only be true (temporary) for a scrolled subtree - QString url; // url to external doc - QString vymLink; // path to another map + bool includeImagesVer; // include floatimages in bbox vertically + bool includeImagesHor; // include floatimages in bbox horizontally + };