9 #include "branchitem.h"
12 TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent)
22 lastSelectedBranchNum=-1;
25 // note.setFontHint (textEditor->getFontHintDefault() ); //FIXME-2
26 // isNoteInEditor=false;
31 qDeleteAll(childItems);
34 QString TreeItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset)
36 qWarning ("TreeItem::saveToDir called directly");
42 void TreeItem::copy (OrnamentedObj* other) //FIXME-2
45 note.copy (other->note);
50 void TreeItem::setModel (VymModel *m)
55 VymModel* TreeItem::getModel ()
60 void TreeItem::appendChild(TreeItem *item)
62 childItems.append(item);
63 item->setModel (model);
65 if (item->type == Branch || item->type ==MapCenter)
68 branchOffset=childItems.count()-1;
73 void TreeItem::removeChild(int row)
75 if (row<0 || row > childItems.size()-1)
76 qWarning ("TreeItem::removeChild tried to remove non existing item?!\n");
79 cout << "TI::removeChild this="<<this<<" row="<<row<<endl;
80 delete childItems.takeAt (row);
84 TreeItem *TreeItem::child(int row)
86 return childItems.value(row);
89 int TreeItem::childCount() const
91 return childItems.count();
94 int TreeItem::childNumber() const
97 return parentItem->childItems.indexOf(const_cast<TreeItem*>(this));
102 int TreeItem::columnCount() const
104 return itemData.count();
107 int TreeItem::branchCount() const
109 return branchCounter;
112 int TreeItem::imageCount() const
115 return imageCounter; // FIXME-1 imageCounter needs to be calculated...
118 int TreeItem::xlinkCount() const // FIXME-2 check if xlinks are stored in a different way (global to model?)
121 return xlinkCounter; // FIXME-1 xlinkCounter needs to be calculated...
124 int TreeItem::row() const
127 return parentItem->childItems.indexOf(const_cast<TreeItem*>(this));
132 int TreeItem::column() const
137 int TreeItem::depth()
149 TreeItem *TreeItem::parent()
158 case Undefined: return -1;
159 case MapCenter: return parentItem->childItems.indexOf (this) - branchOffset;
160 case Branch: return parentItem->childItems.indexOf (this) - branchOffset;
161 case Image: return -1; // FIXME-2
166 int TreeItem::num (TreeItem *item)
168 if (!item) return -1;
169 switch (item->getType())
171 case Undefined: return -1;
172 case MapCenter: return childItems.indexOf (this) - branchOffset;
173 case Branch: return childItems.indexOf (this) - branchOffset;
174 case Image: return -1; // FIXME-2
179 QVariant TreeItem::data(int column) const
181 return itemData.value(column);
184 void TreeItem::setHeading (const QString s)
189 QString TreeItem::getHeading ()
191 return itemData[0].toString();
194 void TreeItem::setNote(const QString s)
197 // updateNoteFlag(); FIXME-2 needed?
199 model->emitContentHasChanged (this);
202 void TreeItem::setNoteObj(const NoteObj &n, bool updateNoteEditor)
205 // updateNoteFlag(); FIXME-2 needed?
206 if (model && updateNoteEditor)
207 model->emitContentHasChanged (this);
210 QString TreeItem::getNote()
212 return note.getNote();
215 NoteObj TreeItem::getNoteObj()
220 QString TreeItem::getNoteASCII(const QString &indent, const int &width)
222 return note.getNoteASCII(indent,width);
225 QString TreeItem::getNoteASCII()
227 return note.getNoteASCII();
230 QString TreeItem::getNoteOpenDoc()
232 return note.getNoteOpenDoc();
235 void TreeItem::setType(const Type t)
238 itemData[1]=getTypeName();
241 TreeItem::Type TreeItem::getType()
246 QString TreeItem::getTypeName()
250 case Undefined: return QString ("Undefined");
251 case MapCenter: return QString ("MapCenter");
252 case Branch: return QString ("Branch");
253 case Image: return QString ("Image");
254 default: return QString ("TreeItem::getTypeName no typename defined?!");
258 TreeItem* TreeItem::getChildNum(const int &n)
260 if (n>=0 && n<childItems.count() )
261 return childItems.at(n);
266 BranchItem* TreeItem::getFirstBranch()
269 return getBranchNum (branchOffset);
274 BranchItem* TreeItem::getLastBranch()
277 return getBranchNum (branchOffset + branchCounter-1);
283 BranchItem* TreeItem::getBranchNum(const int &n)
286 return (BranchItem*)getChildNum (branchOffset + n);
291 BranchObj* TreeItem::getBranchObjNum(const int &n)
295 return (BranchObj*)(getChildNum (branchOffset+n)->lmo);
300 void TreeItem::setLastSelectedBranch()
303 parentItem->lastSelectedBranchNum=parentItem->childItems.indexOf(this);
306 TreeItem* TreeItem::getLastSelectedBranch()
308 return getBranchNum (lastSelectedBranchNum);
311 LinkableMapObj* TreeItem::getLMO() // FIXME-3 VM should be unnecessary in the end
316 void TreeItem::setLMO(LinkableMapObj *l)