diff options
author | Arno <am@disconnect.de> | 2010-06-03 21:06:30 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-06-03 21:06:30 +0200 |
commit | 4d78abefd76d7d828a4ac078b80e8891ddb975e6 (patch) | |
tree | 77168d0a74272b0be7e8d78cf3c9322f6c9aed55 /smtreeitem.cpp | |
parent | daa5c2eb9148b9175302228a6bae257e84881846 (diff) | |
download | SheMov-4d78abefd76d7d828a4ac078b80e8891ddb975e6.tar.gz SheMov-4d78abefd76d7d828a4ac078b80e8891ddb975e6.tar.bz2 SheMov-4d78abefd76d7d828a4ac078b80e8891ddb975e6.zip |
Started Treemodel for Archive
Implemented generic SmTreeItem, started on generic SmTreeModel.
Diffstat (limited to 'smtreeitem.cpp')
-rw-r--r-- | smtreeitem.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/smtreeitem.cpp b/smtreeitem.cpp new file mode 100644 index 0000000..43998c3 --- /dev/null +++ b/smtreeitem.cpp @@ -0,0 +1,71 @@ +/* + 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<QVariant> &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(){ + qDeleteAll(mChildren); +} + +void SmTreeItem::appendChild(SmTreeItem *child){ + mChildren.append(child); +} + +SmTreeItem *SmTreeItem::child(int row){ + return mChildren.at(row); +} + +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<SmTreeItem*>(this)); + } + return 0; +} + +SmTreeItem *SmTreeItem::parent(){ + return mParent; +} + +QVariant SmTreeItem::data(int column) const{ + return mData.at(column); +} + +void SmTreeItem::setData(int column, QVariant &data){ + mData[column] = 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){ + if((where < 0) || (where >= mChildren.count())){ + return false; + } + delete mChildren.takeAt(where); + return true; +} |