def showContextMenu(self, pt): """Context menu for nodes.""" # get selected nodes idxs = self.selectionModel().selection().indexes() nodes = [ self.model.objFromIndex(i) for i in idxs if i.column() == 0 ] # unique list of types of nodes types = utils.unique([ type(n) for n in nodes ]) menu = qt4.QMenu() # put contexts onto submenus if multiple types selected if DatasetNode in types: thismenu = menu if len(types) > 1: thismenu = menu.addMenu(_("Datasets")) self.datasetContextMenu( [n for n in nodes if isinstance(n, DatasetNode)], thismenu) elif FilenameNode in types: thismenu = menu if len(types) > 1: thismenu = menu.addMenu(_("Files")) self.filenameContextMenu( [n for n in nodes if isinstance(n, FilenameNode)], thismenu) def _paste(): """Paste dataset(s).""" if document.isDataMime(): mime = qt4.QApplication.clipboard().mimeData() self.doc.applyOperation(document.OperationDataPaste(mime)) # if there is data to paste, add menu item if document.isDataMime(): menu.addAction(_("Paste"), _paste) if len( menu.actions() ) != 0: menu.exec_(self.mapToGlobal(pt))
def showContextMenu(self, pt): """Context menu for nodes.""" # get selected nodes idxs = self.selectionModel().selection().indexes() nodes = [self.model.objFromIndex(i) for i in idxs if i.column() == 0] # unique list of types of nodes types = utils.unique([type(n) for n in nodes]) menu = qt4.QMenu() # put contexts onto submenus if multiple types selected if DatasetNode in types: thismenu = menu if len(types) > 1: thismenu = menu.addMenu(_("Datasets")) self.datasetContextMenu( [n for n in nodes if isinstance(n, DatasetNode)], thismenu) elif FilenameNode in types: thismenu = menu if len(types) > 1: thismenu = menu.addMenu(_("Files")) self.filenameContextMenu( [n for n in nodes if isinstance(n, FilenameNode)], thismenu) def _paste(): """Paste dataset(s).""" if document.isDataMime(): mime = qt4.QApplication.clipboard().mimeData() self.doc.applyOperation(document.OperationDataPaste(mime)) # if there is data to paste, add menu item if document.isDataMime(): menu.addAction(_("Paste"), _paste) if len(menu.actions()) != 0: menu.exec_(self.mapToGlobal(pt))
def _paste(): """Paste dataset(s).""" if document.isDataMime(): mime = qt4.QApplication.clipboard().mimeData() self.doc.applyOperation(document.OperationDataPaste(mime))