X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fbranchitem.h;fp=src%2Fbranchitem.h;h=c545aa14425f3d70743fb58ed716f95f22ccdbc0;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/branchitem.h b/src/branchitem.h new file mode 100644 index 0000000..c545aa1 --- /dev/null +++ b/src/branchitem.h @@ -0,0 +1,110 @@ +#ifndef BRANCHITEM_H +#define BRANCHITEM_H + +#include "mapitem.h" +#include "task.h" + +#include + +class QString; +class QGraphicsScene; +class BranchObj; +class Link; +class XLinkItem; + +class BranchItem : public MapItem { + public: + enum LayoutHint { AutoPositioning, FreePositioning }; + + BranchItem(TreeItem *parent = nullptr); + virtual ~BranchItem(); + virtual void clear(); + virtual void copy(BranchItem *item); + virtual BranchItem *parentBranch(); + + virtual void insertBranch(int pos, BranchItem *branch); + + virtual QString saveToDir(const QString &tmpdir, const QString &prefix, + const QPointF &offset, QList &tmpLinks); + + virtual void updateVisibility(); + + virtual void setHeadingColor( + QColor color); //! Overloaded from TreeItem to update QGraphicsView + + protected: + bool scrolled; // true if all children are scrolled and thus invisible + bool tmpUnscrolled; // can only be true (temporary) for a scrolled subtree + + public: + void updateTaskFlag(); + void setTask(Task *t); + Task *getTask(); + + private: + Task *task; + + public: + virtual void scroll(); + virtual void unScroll(); + virtual bool toggleScroll(); // scroll or unscroll + virtual bool isScrolled(); // returns scroll state + virtual bool hasScrolledParent( + BranchItem *start = NULL); // true, if any of the parents is scrolled + virtual bool tmpUnscroll( + BranchItem *start = NULL); // unscroll scrolled parents temporary e.g. + // during "find" process + virtual bool resetTmpUnscroll(); // scroll all tmp scrolled parents again + // e.g. when unselecting + virtual void sortChildren(bool inverse = false); //! Sort children + virtual void setChildrenLayout(BranchItem::LayoutHint layoutHint); + virtual BranchItem::LayoutHint getChildrenLayout(); + + protected: + bool includeImagesVer; //! include floatimages in bbox vertically + bool includeImagesHor; //! include floatimages in bbox horizontally + bool includeChildren; //! include children in frame + LayoutHint childrenLayout; //! should children be positioned freely? + + public: + void setIncludeImagesVer(bool); + bool getIncludeImagesVer(); + void setIncludeImagesHor(bool); + bool getIncludeImagesHor(); + QString getIncludeImageAttr(); + BranchItem *getFramedParentBranch(BranchItem *start); + void setFrameIncludeChildren(bool); + bool getFrameIncludeChildren(); + + QColor getBackgroundColor(BranchItem *start, bool checkInnerFrame = true); + + protected: + int lastSelectedBranchNum; + int lastSelectedBranchNumAlt; + + public: + virtual void + setLastSelectedBranch(); //! Set myself as last selected in parent + virtual void + setLastSelectedBranch(int i); //! Set last selected branch directly + virtual BranchItem * + getLastSelectedBranch(); //! Returns last selected branch usually + virtual BranchItem * + getLastSelectedBranchAlt(); //! Used to return last selected branch left of + //! a mapcenter + + public: + TreeItem *findMapItem( + QPointF p, + TreeItem *excludeTI); //! search map for branches or images. Ignore + //! excludeTI, where search is started + + virtual void + updateStyles(const bool &keepFrame = + false); //! update related fonts, parObjects, links, ... + virtual BranchObj *getBranchObj(); + virtual BranchObj *createMapObj( + QGraphicsScene *scene); //! Create classic object in GraphicsView +}; + +#endif