summaryrefslogtreecommitdiffstats
path: root/smtreeitem.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-06-03 21:06:30 +0200
committerArno <am@disconnect.de>2010-06-03 21:06:30 +0200
commit4d78abefd76d7d828a4ac078b80e8891ddb975e6 (patch)
tree77168d0a74272b0be7e8d78cf3c9322f6c9aed55 /smtreeitem.cpp
parentdaa5c2eb9148b9175302228a6bae257e84881846 (diff)
downloadSheMov-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.cpp71
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;
+}