#!/usr/bin/env python

from PyQt4.QtCore import QString

class Item(object): 
    childItems = []
    itemData = []
    parent = None

    def __init__(self, data, parent=0):
        self.parentItem = parent
        self.itemData = data
        
    def child(self, row):
        return self.childItems[row]
    
    def appendChild(self, child):
        self.childItems.append(child)
    
    def childCount(self):
        return len(self.childItems)
        
    def row(self):
        if self.parentItem:
            return self.parentItem.childItems.indexOf(self)

    def columnCount(self):
        return len(self.itemData)
        
    def data(self, column):
        try:
            return QString(self.itemData[column])
        except IndexError:
            raise
            
    def parent(self):
        return self.parentItem
