diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-05-26 21:13:14 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-05-26 21:13:14 +0000 |
commit | 565cd0096393dcd3a33b546d76714c64c2c786e3 (patch) | |
tree | 2b1882d987048bb00cd394a50f1cb24585b08af5 /utils/themeeditor/parsetreenode.cpp | |
parent | 28a7c5d3692e59b5c80a9f713cf931b6453cb1ca (diff) |
Trying to implement QAbstractItemModel for parse trees, haven't got it working yet (current state will spawn an empty treeview window)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26318 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/parsetreenode.cpp')
-rw-r--r-- | utils/themeeditor/parsetreenode.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp new file mode 100644 index 0000000000..97cb559906 --- /dev/null +++ b/utils/themeeditor/parsetreenode.cpp @@ -0,0 +1,56 @@ +#include "parsetreenode.h" + +ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent, + bool stop): + parentLink(parent), element(data) +{ + + if(stop) + return; + for(int i = 0; i < 5; i++) + appendChild(new ParseTreeNode(data, this, true)); +} + +ParseTreeNode::~ParseTreeNode() +{ + qDeleteAll(children); +} + +void ParseTreeNode::appendChild(ParseTreeNode* child) +{ + children.append(child); +} + +ParseTreeNode* ParseTreeNode::child(int row) +{ + return children[row]; +} + +int ParseTreeNode::childCount() const +{ + return children.count(); +} + +int ParseTreeNode::columnCount() const +{ + return 2; +} + +QVariant ParseTreeNode::data(int column) const +{ + if(column == 0) + return element->type; + else + return element->line; +} +int ParseTreeNode::row() const +{ + if(parentLink) + return parentLink->children.indexOf(const_cast<ParseTreeNode*>(this)); + return 0; +} + +ParseTreeNode* ParseTreeNode::parent() +{ + return parentLink; +} |