Beispiel #1
0
 def parent(self, item):
     if not item.isValid():
         return QtCore.QModelIndex()
     item = item.internalPointer()
     parent_item = item.parent()
     if (parent_item == self.root_item):
         return QtCore.QModelIndex()
     index = self.createIndex(parent_item.row(), 0, parent_item)
     parent_item.index = index
     return index
 def parent(self, index):
     if not index.isValid():
         return QtCore.QModelIndex()
     tp, idx = index.internalPointer()
     if tp == 'group':
         return QtCore.QModelIndex()
     elif tp == 'cluster':
         # Get groupidx from clusteridx (=idx).
         groupidx = self.cluster_groups[idx]
         return self.createIndex(groupidx, 0, ('group', groupidx))
     return QtCore.QModelIndex()
Beispiel #3
0
 def index(self, row, column, parent=None):
     if parent is None:
         parent = self.root_item.index
     if not self.hasIndex(row, column, parent):
         return QtCore.QModelIndex()
     if not parent.isValid():
         parent_item = self.root_item
     else:
         parent_item = parent.internalPointer()
     child_item = parent_item.child(row)
     if child_item:
         index = self.createIndex(row, column, child_item)
         child_item.index = index
         return index
     else:
         return QtCore.QModelIndex()
Beispiel #4
0
 def __init__(self, parent=None, data=None):
     """data is an OrderedDict"""
     self.parent_item = parent
     self.index = QtCore.QModelIndex()
     self.children = []
     # by default: root
     if data is None:
         data = OrderedDict(name='root')
     self.item_data = data
 def index(self, row, column, parent=None):
     if parent is None:
         parent = QtCore.QModelIndex()
     data = parent.internalPointer()
     if data is None:
         return self.createIndex(row, column, ('group', row))
     else:
         tp, idx = data
         assert tp == 'cluster'
         return self.createIndex(row, column, ('cluster', idx))
Beispiel #6
0
 def rowCount(self, parent=None):
     if parent is None:
         parent = QtCore.QModelIndex()
     if parent.column() > 0:
         return 0
     if not parent.isValid():
         parent_item = self.root_item
     else:
         parent_item = parent.internalPointer()
     return parent_item.rowCount()
 def __init__(self, group_sizes={}, cluster_groups=None):
     """
     
     Arguments:
     * group_sizes: a dictionary {groupidx: nclusters} that gives the number
       of clusters in each group.
     * cluster_groups: an object such that cluster_groups[clusteridx]
       returns the groupidx that contains that cluster.
     
     """
     QtCore.QAbstractItemModel.__init__(self)
     self.group_sizes = group_sizes
     self.cluster_groups = cluster_groups
     self.beginInsertRows(QtCore.QModelIndex(), 0, len(self.group_sizes))
     self.endInsertRows()
Beispiel #8
0
 def columnCount(self, parent=None):
     if parent is None:
         parent = QtCore.QModelIndex()
     if not parent.isValid():
         return len(self.headers)
     return parent.internalPointer().columnCount()