def deleteNode(self, ytNode, caller): yl.debug('treeview delete node') index = self.getIndexFromNode(ytNode) selection = QtCore.QItemSelection(self._parent.selectionModel().selection()) yl.debug('store selection indexes: %s' % str([a.row() for a in selection.indexes()])) yl.debug('before remove node selection indexes: %s' % str([a.row() for a in self._parent.selectionModel().selection().indexes()])) self.beginRemoveRows(index.parent(), index.row(), index.row()) if index.isValid(): self.removeRow(index.row(), self.parent(index)) self.endRemoveRows() self._parent.selectionModel().selection().merge(selection, QtCore.QItemSelectionModel.Select) yl.debug('after remove node selection indexes: %s' % str([a.row() for a in self._parent.selectionModel().selection().indexes()]))
def createNode(self, ytNode, caller): yl.debug('create node in treeview') parent = ytNode.getParent() if parent is not None: yl.debug('parent is %s' % parent.getName()) parentIndex = self.getIndexFromNode(parent) i = ytNode.getIndex() selection = QtCore.QItemSelection(self._parent.selectionModel().selection()) yl.debug('store selection indexes: %s' % str([a.row() for a in selection.indexes()])) yl.debug('before insert node selection indexes: %s' % str([a.row() for a in self._parent.selectionModel().selection().indexes()])) self.beginInsertRows(parentIndex, i, i) if parentIndex.isValid(): self.insertRow(i, parentIndex) else: self.insertRow(i, QtCore.QModelIndex()) yl.debug('insert item %s in parent: %s at row %d' % (ytNode.getName(), parent.getName(), i)) yl.debug('between insert node selection indexes: %s' % str([a.row() for a in self._parent.selectionModel().selection().indexes()])) self.endInsertRows() self._parent.selectionModel().selection().merge(selection, QtCore.QItemSelectionModel.Select) yl.debug('after insert node selection indexes: %s' % str([a.row() for a in self._parent.selectionModel().selection().indexes()]))