def __index(self, row, column, parent=qt.QModelIndex()): return qt.QSortFilterProxyModel.index(self, row, column, parent)
def columnCount(self, parent=qt.QModelIndex()): return len(self.__header)
def rowCount(self, parent=qt.QModelIndex()): item = self.__getItem(parent) return item.childCount()
def getItemName(self, model, row): index = model.index(row, hdf5.Hdf5TreeModel.NAME_COLUMN, qt.QModelIndex()) return model.data(index, qt.Qt.DisplayRole)
def invalidateData(self): self.dataChanged.emit(qt.QModelIndex(), qt.QModelIndex()) self.needReplot.emit()
def __invalidateItem(self, index): index1 = self.index(index, 0, qt.QModelIndex()) index2 = self.index(index, self.columnCount() - 1, qt.QModelIndex()) self.dataChanged.emit(index1, index2)
def columnCount(self, parent=qt.QModelIndex()): return 4
def index(self, row, column, parent=qt.QModelIndex()): if row < 0 or column < 0: return qt.QModelIndex() if row >= self.rowCount() or column >= self.columnCount(): return qt.QModelIndex() return self.createIndex(row, column)
def rowCount(self, parent=qt.QModelIndex()): return len(self.__historyModel)
def indexFromItem(self, item): if item == self.rootItem: return qt.QModelIndex() else: return self.createIndex(item.childPosition(), 0, item)
def parent(self, index): return qt.QModelIndex()
def rowCount(self, parent=qt.QModelIndex()): item = self.itemFromIndex(parent) return item.childCount()
def hasChildren(self, parent=qt.QModelIndex()): node = self.nodeFromIndex(parent) if node is None: return False return node.isGroupObj()
def rowCount(self, parent=qt.QModelIndex()): parentItem = parent.internalPointer() if parent.isValid() else\ self.rootItem return parentItem.child_count()
def rowCount(self, parent=qt.QModelIndex()): return 3
def columnCount(self, parent=Qt.QModelIndex(), **kwargs): return len(self.RootNode.ColumnNames)
def testDropNewDataset(self): dataset = commonh5.Dataset("foo", numpy.array([1, 2, 3, 4])) mimedata = Hdf5DatasetMimeData(dataset=dataset) self.model.dropMimeData(mimedata, qt.Qt.CopyAction, -1, -1, qt.QModelIndex()) self.assertEqual(self.model.rowCount(qt.QModelIndex()), 2)
def setShowUniqueGroup(self, show): self.__showUniqueGroup = show self.__openPersistentEditors(Qt.QModelIndex(), openEditor=False) self.__updateUniqueGroupVisibility() self.__openPersistentEditors(Qt.QModelIndex(), openEditor=True)
def rowCount(self, parent=qt.QModelIndex()): return len(self.__peakSelectionModel)
def rowCount(self, parent=qt.QModelIndex()): if len(self.dataCollection) == 0: return 0 return len(self.dataCollection['base'])
def testInsertObject(self): h5 = commonh5.File("/foo/bar/1.mock", "w") model = hdf5.Hdf5TreeModel() self.assertEquals(model.rowCount(qt.QModelIndex()), 0) model.insertH5pyObject(h5) self.assertEquals(model.rowCount(qt.QModelIndex()), 1)
def __indexFromCode(self, model, code): for i in range(model.rowCount()): index = model.index(i, 0) if index.data(self.CodeRole) == code: return index return qt.QModelIndex()
def __openPersistantViewOnModelReset(self): model = self.model() index = qt.QModelIndex() row = model.rowCount(index) self.__onRowInserted(index, 0, row)
def dropMimeData(self, mimedata, action, row, column, parent): if mimedata.hasFormat(cco.MIME_TYPE_DATA): toItem = parent.internalPointer() if toItem is None: toItem = csi.dataRootItem newParentItem, newRow = toItem, toItem.child_count() parents = [] else: newParentItem, newRow = toItem.parentItem, toItem.row() parents = [toItem.parentItem] rowss = pickle.loads(mimedata.data(cco.MIME_TYPE_DATA)) dropedItems = [] for rows in rowss: parentItem = self.rootItem for r in reversed(rows): item = parentItem.child(r) parentItem = item dropedItems.append(item) if item.parentItem not in parents: parents.append(item.parentItem) for item in dropedItems: if item.is_ancestor_of(toItem): msg = qt.QMessageBox() msg.setIcon(qt.QMessageBox.Warning) msg.setText("Cannot drop a group onto its child. Ignored") msg.setWindowTitle("Illegal drop") msg.setStandardButtons(qt.QMessageBox.Close) msg.exec_() return False self.beginResetModel() if toItem is csi.dataRootItem: rdropedItems = dropedItems else: rdropedItems = reversed(dropedItems) for item in rdropedItems: oldParentItem, oldRow = item.parentItem, item.row() if newParentItem is oldParentItem: sibl = newParentItem.childItems sibl.insert(newRow, sibl.pop(oldRow)) else: newParentItem.childItems.insert(newRow, item) item.parentItem = newParentItem del oldParentItem.childItems[oldRow] if oldParentItem.child_count() == 0: oldParentItem.delete() self.endResetModel() for parent in parents: parent.init_colors() self.dataChanged.emit(qt.QModelIndex(), qt.QModelIndex()) self.needReplot.emit() return True elif mimedata.hasFormat(cco.MIME_TYPE_TEXT) or \ mimedata.hasFormat(cco.MIME_TYPE_HDF5): toItem = parent.internalPointer() if mimedata.hasFormat(cco.MIME_TYPE_TEXT): urls = [url.toLocalFile() for url in reversed(mimedata.urls())] else: urls = pickle.loads(mimedata.data(cco.MIME_TYPE_HDF5))[::-1] if toItem is None: toItem = csi.dataRootItem urls = urls[::-1] if toItem.child_count() > 0: # is a group parentItem, insertAt = toItem, None else: parentItem, insertAt = toItem.parentItem, toItem.row() if csi.currentNode is None: return False node = csi.currentNode if hasattr(node, 'widget'): items = node.widget.loadFiles(urls, parentItem, insertAt) # if DEBUG > 0: # if items is not None: # for item in items: # item.colorTag = 3 return True else: return False