/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #include "smtreeitem.h" SmTreeItem::SmTreeItem(const QList &data, SmTreeItem *parent) : mData(data), mParent(parent) {} SmTreeItem::SmTreeItem(int rows, SmTreeItem *parent) : mParent(parent){ for(int i = 0; i < rows; ++i){ mData << QVariant(); } } SmTreeItem::SmTreeItem(const SmTreeItem &other){ mData = other.mData; if(other.mParent){ mParent = new SmTreeItem(*mParent); }else{ mParent = 0; } foreach(SmTreeItem *child, other.mChildren){ mChildren << new SmTreeItem(*child); } } SmTreeItem::~SmTreeItem(){ qDeleteAll(mChildren); } void SmTreeItem::appendChild(SmTreeItem *child){ mChildren.append(child); } SmTreeItem *SmTreeItem::child(int row) const{ if(row > -1 && row < mChildren.count()){ return mChildren.at(row); } return 0; } int SmTreeItem::childCount() const{ return mChildren.count(); } int SmTreeItem::columnCount() const{ return mData.count(); } int SmTreeItem::row() const{ if(mParent){ return mParent->mChildren.indexOf(const_cast(this)); } return 0; } SmTreeItem *SmTreeItem::parent() const{ return mParent; } void SmTreeItem::setParent(SmTreeItem *parent){ mParent = parent; } QVariant SmTreeItem::data(int column) const{ return mData.at(column); } void SmTreeItem::setData(int column, const QVariant &data){ mData[column] = data; } QVariant SmTreeItem::foregroundColor() const{ return mForegroundColor; } void SmTreeItem::setForegroundColor(const QVariant &data){ mForegroundColor = data; } bool SmTreeItem::insertChild(int where, SmTreeItem *child){ if((where < 0) || (where > mChildren.count())){ return false; } mChildren.insert(where, child); return true; } bool SmTreeItem::removeChild(int where, bool deleteChild){ if((where < 0) || (where >= mChildren.count())){ return false; } SmTreeItem *child = mChildren.takeAt(where); if(deleteChild){ delete child; } return true; }