23 class TreeItem:public XMLObj
26 enum Type {Undefined,MapCenter,Branch,Image,Attribute,XLink};
27 enum HideTmpMode {HideNone, HideExport};
30 TreeItem(const QList<QVariant> &data, TreeItem *parent = 0);
34 // General housekeeping
35 virtual void setModel (VymModel *m);
36 virtual VymModel* getModel();
39 /*! Return number of item, as it would be after it would have been appended.
40 This is used to notify view about layout changes before model is modified. */
41 virtual int getRowNumAppend (TreeItem *child);
43 virtual void appendChild (TreeItem *child);
44 virtual void removeChild (int row);
46 virtual TreeItem *child(int row);
47 virtual int childCount() const;
48 virtual int childNumber() const;
49 virtual int columnCount() const;
50 virtual int branchCount() const;
51 virtual int imageCount() const;
52 virtual int xlinkCount() const;
53 virtual int attributeCount() const;
55 virtual int row() const;
57 virtual TreeItem *parent();
59 /*! Return number of item in parent by type,
60 e.g. first branch has number 0 */
61 virtual int childNum(); //! Return number of item in list of all children
62 virtual int num(); //! Return number of item by type
63 virtual int num (TreeItem *item); //! Return number of item by type
68 virtual void setType (const Type t);
69 virtual Type getType ();
70 virtual bool isBranchLikeType() const;
71 virtual QString getTypeName ();
74 virtual QVariant data (int column) const;
80 virtual void setHeading (const QString s);
81 virtual QString getHeading() const;
82 virtual std::string getHeadingStd() const; //! convenience function used for debugging
83 virtual void setHeadingColor(QColor color); //! Set color of heading. In BranchItem overloaded to update QGraphicsView
84 virtual QColor getHeadingColor(); //! Returns color of heading
90 void setURL (const QString &url); //! Set URL
91 QString getURL (); //! Get URL
97 void setVymLink (const QString &url); //! Set URL
98 QString getVymLink (); //! Get URL
104 virtual void setNote(const QString &s);
105 virtual void clearNote();
106 virtual QString getNote();
107 virtual bool hasEmptyNote();
108 virtual void setNoteObj(const NoteObj &); //FIXME-3 setNoteObj is called for every select or so???
110 virtual NoteObj getNoteObj();
111 virtual QString getNoteASCII(const QString &indent, const int &width); // returns note (ASCII)
112 virtual QString getNoteASCII(); // returns note (ASCII)
113 virtual QString getNoteOpenDoc(); // returns note (OpenDoc)
117 FlagRow standardFlags;
120 virtual void activateStandardFlag(const QString &flag);
121 virtual void deactivateStandardFlag(const QString &flag);
122 virtual void deactivateAllStandardFlags();
124 /*! \brief Toggle a Flag
125 If master is not NULL,, only one Flag from FlagRow master may
126 be active simultanously, the others get deactivated.
128 virtual void toggleStandardFlag(const QString &flag, FlagRow *master=NULL);
129 virtual bool isActiveStandardFlag (const QString &flag);
130 virtual QStringList activeStandardFlagNames();
131 virtual FlagRow* getStandardFlagRow ();
133 virtual QStringList activeSystemFlagNames();
135 virtual bool canMoveDown();
136 virtual bool canMoveUp();
139 static uint idLast; // the last used unique ID
142 virtual uint getID ();
144 // Navigation and selection
145 virtual TreeItem* findID (const uint &n);
146 virtual TreeItem* getChildNum(const int &n);
147 virtual BranchItem* getFirstBranch();
148 virtual BranchItem* getLastBranch();
149 virtual ImageItem* getFirstImage();
150 virtual ImageItem* getLastImage();
152 /*! Get next branch after current branch. Return NULL if there is no
154 virtual BranchItem* getNextBranch(BranchItem* currentBranch);
156 virtual BranchItem* getBranchNum(const int &n);
157 virtual BranchObj* getBranchObjNum(const int &n);
159 virtual ImageItem* getImageNum(const int &n);
160 virtual FloatImageObj* getImageObjNum(const int &n);
162 virtual AttributeItem* getAttributeNum(const int &n);
164 virtual XLinkItem* getXLinkNum(const int &n);
165 virtual XLinkObj* getXLinkObjNum(const int &n);
168 bool hideExport; //! Hide this item in export
169 bool hidden; //! Hidden in export if true
171 virtual void setHideTmp (HideTmpMode);
172 virtual bool hasHiddenExportParent ();
173 virtual void setHideInExport(bool); // set export of object (and children)
174 virtual bool hideInExport();
175 virtual bool isHidden ();
176 virtual void updateVisibility(); //! Sets visibility in LinkableMapObj, if existing
178 virtual QString getGeneralAttr();
183 QList<TreeItem*> childItems;
184 QList<QVariant> itemData;
185 TreeItem *parentItem;
187 /*! Set rootItem (does not change, needed for quick check
188 if some branch is mapCenter */
197 int attributeCounter;