insilmaril@747: #ifndef BRANCHITEM_H insilmaril@747: #define BRANCHITEM_H insilmaril@747: insilmaril@779: #include "mapitem.h" insilmaril@847: //#include "xlink.h" insilmaril@747: insilmaril@847: #include insilmaril@755: insilmaril@747: class QString; insilmaril@790: class QGraphicsScene; insilmaril@750: class BranchObj; insilmaril@847: class Link; insilmaril@790: class XLinkItem; insilmaril@747: insilmaril@779: class BranchItem:public MapItem insilmaril@747: { insilmaril@747: public: insilmaril@777: BranchItem(const QList &data, TreeItem *parent = 0); insilmaril@756: virtual ~BranchItem(); insilmaril@779: virtual void copy (BranchItem *item); insilmaril@795: virtual BranchItem* parentBranch(); insilmaril@747: insilmaril@779: virtual void insertBranch (int pos,BranchItem *branch); insilmaril@756: insilmaril@847: virtual QString saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset,QList &tmpLinks); insilmaril@747: insilmaril@753: virtual void updateVisibility(); insilmaril@753: insilmaril@758: virtual void setHeadingColor (QColor color); //!Overloaded from TreeItem to update QGraphicsView insilmaril@758: insilmaril@753: protected: insilmaril@753: bool scrolled; // true if all children are scrolled and thus invisible insilmaril@753: bool tmpUnscrolled; // can only be true (temporary) for a scrolled subtree insilmaril@753: public: insilmaril@749: virtual void unScroll(); insilmaril@767: virtual bool toggleScroll(); // scroll or unscroll insilmaril@749: virtual bool isScrolled(); // returns scroll state insilmaril@749: virtual bool hasScrolledParent(BranchItem*); // true, if any of the parents is scrolled insilmaril@796: virtual bool tmpUnscroll(); // unscroll scrolled parents temporary e.g. during "find" process insilmaril@796: virtual bool resetTmpUnscroll(); // scroll all tmp scrolled parents again e.g. when unselecting insilmaril@822: virtual void sortChildren(bool inverse=false); //! Sort children insilmaril@785: insilmaril@785: protected: insilmaril@785: bool includeImagesVer; //! include floatimages in bbox vertically insilmaril@785: bool includeImagesHor; //! include floatimages in bbox horizontally insilmaril@785: public: insilmaril@785: void setIncludeImagesVer(bool); insilmaril@785: bool getIncludeImagesVer(); insilmaril@785: void setIncludeImagesHor(bool); insilmaril@785: bool getIncludeImagesHor(); insilmaril@785: QString getIncludeImageAttr(); insilmaril@785: insilmaril@787: protected: insilmaril@787: int lastSelectedBranchNum; insilmaril@787: int lastSelectedBranchNumAlt; insilmaril@785: public: insilmaril@787: virtual void setLastSelectedBranch(); //! Set myself as last selected in parent insilmaril@787: virtual void setLastSelectedBranch(int i); //! Set last selected branch directly insilmaril@787: virtual BranchItem* getLastSelectedBranch(); //! Returns last selected branch usually insilmaril@787: virtual BranchItem* getLastSelectedBranchAlt(); //! Used to return last selected branch left of a mapcenter insilmaril@785: insilmaril@787: public: insilmaril@758: TreeItem* findMapItem (QPointF p,TreeItem* excludeTI); //! search map for branches or images. Ignore excludeTI, where search is started insilmaril@754: insilmaril@822: virtual void updateStyles (const bool &keepFrame=false); //! update related fonts, parObjects, links, ... insilmaril@760: virtual BranchObj* getBranchObj(); insilmaril@822: virtual BranchObj* createMapObj(QGraphicsScene *scene); //! Create classic object in GraphicsView insilmaril@747: }; insilmaril@747: insilmaril@747: #endif