insilmaril@725: #include insilmaril@725: insilmaril@741: #include "branchobj.h" insilmaril@725: #include "treeitem.h" insilmaril@725: insilmaril@725: TreeItem::TreeItem(const QList &data, TreeItem *parent) insilmaril@725: { insilmaril@725: parentItem = parent; insilmaril@725: itemData = data; insilmaril@726: lmo=NULL; insilmaril@738: insilmaril@738: branchOffset=0; insilmaril@741: branchCounter=0; insilmaril@738: lastSelectedBranchNum=-1; insilmaril@725: } insilmaril@725: insilmaril@725: TreeItem::~TreeItem() insilmaril@725: { insilmaril@725: qDeleteAll(childItems); insilmaril@725: } insilmaril@725: insilmaril@741: insilmaril@725: void TreeItem::appendChild(TreeItem *item) insilmaril@725: { insilmaril@725: childItems.append(item); insilmaril@741: insilmaril@741: if (item->type == Branch || item->type ==MapCenter) insilmaril@738: { insilmaril@741: if (branchCounter==0) insilmaril@738: branchOffset=childItems.count()-1; insilmaril@741: branchCounter++; insilmaril@738: } insilmaril@725: } insilmaril@725: insilmaril@745: #include insilmaril@745: using namespace std; insilmaril@727: void TreeItem::removeChild(int row) insilmaril@727: { insilmaril@745: if (row<0 || row > childItems.size()-1) insilmaril@745: qWarning ("TreeItem::removeChild tried to remove non existing item?!\n"); insilmaril@745: else insilmaril@727: { insilmaril@745: cout << "TI::removeChild this="<=0 && n0) insilmaril@738: return getBranchNum (branchOffset); insilmaril@738: else insilmaril@738: return NULL; insilmaril@738: } insilmaril@738: insilmaril@738: TreeItem* TreeItem::getLastBranch() insilmaril@738: { insilmaril@741: if (branchCounter>0) insilmaril@741: return getBranchNum (branchOffset + branchCounter-1); insilmaril@738: else insilmaril@738: return NULL; insilmaril@738: } insilmaril@738: insilmaril@738: insilmaril@738: TreeItem* TreeItem::getBranchNum(const int &n) insilmaril@738: { insilmaril@741: if (branchCounter>0) insilmaril@738: return getChildNum (branchOffset + n); insilmaril@738: else insilmaril@738: return NULL; insilmaril@738: } insilmaril@738: insilmaril@738: void TreeItem::setLastSelectedBranch() insilmaril@738: { insilmaril@738: if (parentItem) insilmaril@738: parentItem->lastSelectedBranchNum=parentItem->childItems.indexOf(this); insilmaril@738: } insilmaril@738: insilmaril@738: TreeItem* TreeItem::getLastSelectedBranch() insilmaril@738: { insilmaril@738: return getBranchNum (lastSelectedBranchNum); insilmaril@738: } insilmaril@738: insilmaril@727: LinkableMapObj* TreeItem::getLMO() // FIXME VM should be unnecessary in the end insilmaril@726: { insilmaril@726: return lmo; insilmaril@726: } insilmaril@726: insilmaril@726: void TreeItem::setLMO(LinkableMapObj *l) insilmaril@726: { insilmaril@726: lmo=l; insilmaril@726: } insilmaril@726: