3
class ContentViewModel(Qt.QAbstractItemModel):
5
def __init__(self, provider, parent = None):
6
Qt.QAbstractItemModel.__init__(self, parent)
7
self.__root_item = TreeItem(None)
8
self.provider = provider
9
self.__setupContentView()
11
def __setupContentView(self):
12
self.all_tasks = AllTasksItem(None, self.__root_item)
13
self.__root_item.appendChild(self.all_tasks)
15
def data(self, index, role):
16
if not index.isValid():
18
if role != Qt.Qt.DisplayRole:
20
item = index.internalPointer()
23
def flags(self, index):
24
if not index.isValid():
26
return Qt.Qt.ItemIsEnabled | Qt.Qt.ItemIsSelectable
28
def index(self, row, column, parent):
29
if not self.hasIndex(row, column, parent):
30
return Qt.QModelIndex()
31
if not parent.isValid():
32
parent = self.__root_item
33
child = parent.child(row)
35
return self.createIndex(row, column, child)
37
return Qt.QModelIndex()
39
def parent(self, index):
40
if not index.isValid():
41
return Qt.QModelIndex()
42
child = index.internalPointer()
43
parent = child.parent()
44
if parent == self.__root_item:
45
return Qt.QModelIndex()
47
return self.createIndex(parent.row(), 0, parent)
49
def rowCount(self, parent):
50
if parent.column() > 0:
52
if not parent.isValid():
53
return self.__root_item.childCount()
55
return parent.internalPointer().childCount()
57
def columnCount(self, parent):
62
def __init__(self, view, parent = None):
63
self.__parent = parent
71
return self.childs[row]
74
return len(self.childs)
77
raise NotImplementedError
81
return self.parent().childs.index(self)
87
def appendChild(self, child):
88
self.childs.append(child)
90
class AllTasksItem(TreeItem):
92
def __init__(self, view, parent):
93
TreeItem.__init__(self, view, parent)