18 class TreeItem:public MapItem
21 enum Type {Undefined,MapCenter,Branch,Image};
22 enum HideTmpMode {HideNone, HideExport};
24 TreeItem(const QList<QVariant> &data, TreeItem *parent = 0);
28 virtual QString saveToDir (const QString &tmpdir=QString(),const
29 QString &prefix=QString(), const QPointF& offset=QPointF());
32 // General housekeeping
33 virtual void setModel (VymModel *m);
34 virtual VymModel* getModel();
36 virtual void appendChild (TreeItem *child);
37 virtual void removeChild (int row);
39 virtual TreeItem *child(int row);
40 virtual int childCount() const;
41 virtual int childNumber() const;
42 virtual int columnCount() const;
43 virtual int branchCount() const;
44 virtual int imageCount() const;
45 virtual int xlinkCount() const;
47 virtual int row() const;
48 virtual int column() const;
50 virtual TreeItem *parent();
52 /*! Return number of item in parent by type,
53 e.g. first branch has number 0 */
54 virtual int childNum(); //! Return number of item in list of all children
55 virtual int num(); //! Return number of item by type
56 virtual int num (TreeItem *item); //! Return number of item by type
61 virtual void setType (const Type t);
62 virtual Type getType ();
63 virtual bool isBranchLikeType() const;
64 virtual QString getTypeName ();
67 virtual QVariant data(int column) const;
73 virtual void setHeading (const QString s);
74 virtual QString getHeading() const;
75 virtual std::string getHeadingStd() const; //! convenience function used for debugging
76 virtual void setHeadingColor(QColor color); //! Set color of heading. In BranchItem overloaded to update QGraphicsView
77 virtual QColor getHeadingColor(); //! Returns color of heading
83 void setURL (const QString &url); //! Set URL
84 QString getURL (); //! Get URL
90 void setVymLink (const QString &url); //! Set URL
91 QString getVymLink (); //! Get URL
97 virtual void setNote(const QString &s);
98 virtual void clearNote();
99 virtual QString getNote();
100 virtual bool hasEmptyNote();
101 virtual void setNoteObj(const NoteObj &, bool updateNoteEditor=true);
102 virtual NoteObj getNoteObj();
103 virtual QString getNoteASCII(const QString &indent, const int &width); // returns note (ASCII)
104 virtual QString getNoteASCII(); // returns note (ASCII)
105 virtual QString getNoteOpenDoc(); // returns note (OpenDoc)
109 FlagRow standardFlags;
112 virtual void activateStandardFlag(const QString &flag);
113 virtual void deactivateStandardFlag(const QString &flag);
114 virtual void deactivateAllStandardFlags();
116 /*! \brief Toggle a Flag
117 If master is not NULL,, only one Flag from FlagRow master may
118 be active simultanously, the others get deactivated.
120 virtual void toggleStandardFlag(const QString &flag, FlagRow *master=NULL);
121 virtual bool isActiveStandardFlag (const QString &flag);
122 virtual QStringList activeStandardFlagNames();
123 virtual FlagRow* getStandardFlagRow ();
124 //virtual void updateToolBar();
126 virtual QStringList activeSystemFlagNames();
129 virtual bool canMoveDown();
130 virtual bool canMoveUp();
133 QString objID; //! id set during load/save currently used for xLinks
135 virtual void setID (const QString &s);
136 virtual QString getID ();
138 // Navigation and selection
139 virtual TreeItem* getChildNum(const int &n);
140 virtual BranchItem* getFirstBranch();
141 virtual BranchItem* getLastBranch();
143 /*! Get next branch after current branch. Return NULL if there is no
145 virtual BranchItem* getNextBranch(BranchItem* currentBranch);
147 virtual BranchItem* getBranchNum(const int &n);
148 virtual BranchObj* getBranchObjNum(const int &n);
149 virtual void setLastSelectedBranch(); //! Set myself as last selected in parent
150 virtual void setLastSelectedBranch(int i); //! Set last selected branch directly
151 virtual TreeItem* getLastSelectedBranch();
154 bool hideExport; //! Hide this item in export
156 virtual void setHideTmp (HideTmpMode);
157 virtual bool hasHiddenExportParent ();
158 virtual void setHideInExport(bool); // set export of object (and children)
159 virtual bool hideInExport();
160 virtual bool isHidden ();
166 QList<TreeItem*> childItems;
167 QList<QVariant> itemData;
168 TreeItem *parentItem;
172 int lastSelectedBranchNum;
177 bool hidden; //! Hidden in export if true