From 4d78abefd76d7d828a4ac078b80e8891ddb975e6 Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 3 Jun 2010 21:06:30 +0200 Subject: Started Treemodel for Archive Implemented generic SmTreeItem, started on generic SmTreeModel. --- smtreeitem.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 smtreeitem.cpp (limited to 'smtreeitem.cpp') 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 &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(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; +} -- cgit v1.2.3-70-g09d2