def keyPressEvent(self, event): """ keyPressEvent(event: QKeyEvent) -> None Capture 'Del', 'Backspace' for pruning versions when not editing a tag """ selectedItems = self.selectedItems() versions = [ item.id for item in selectedItems if isinstance(item, QGraphicsVersionItem) and not item.text.hasFocus() ] if (self.controller and len(versions) > 0 and event.key() in [QtCore.Qt.Key_Backspace, QtCore.Qt.Key_Delete]): event.accept() versions = [item.id for item in selectedItems] res = vistrails.gui.utils.show_question( "VisTrails", "Are you sure that you want to " "prune the selected version(s)?", [ vistrails.gui.utils.YES_BUTTON, vistrails.gui.utils.NO_BUTTON ], vistrails.gui.utils.NO_BUTTON) if res == vistrails.gui.utils.YES_BUTTON: self.controller.prune_versions(versions) else: qt_super(QVersionTreeScene, self).keyPressEvent(event)
def mouseDoubleClickEvent(self, e): """ mouseDoubleClickEvent(self, e: QMouseEvent) -> None Try to avoid unselect if double-click on the background """ if not self.canSelectBackground: return else: qt_super(QInteractiveGraphicsView, self).mouseDoubleClickEvent(e)
def moveEvent(self,e): """ moveEvent(e: QEvent) -> None Echo the move event into vtkRenderWindow """ qt_super(QVTKWidget, self).moveEvent(e) if not self.mRenWin: return self.mRenWin.SetPosition(self.x(),self.y())
def mouseReleaseEvent(self, event): """ mouseReleaseEvent(event: QMouseEvent) -> None """ qt_super(QGraphicsLinkItem, self).mouseReleaseEvent(event) if self.expand: self.scene().controller.expand_versions(self.startVersion, self.endVersion) elif self.collapse: self.scene().controller.collapse_versions(self.endVersion) self.setSelected(False)
def moveEvent(self, e): """ moveEvent(e: QEvent) -> None Echo the move event into vtkRenderWindow """ qt_super(QVTKWidget, self).moveEvent(e) if not self.mRenWin: return self.mRenWin.SetPosition(self.x(), self.y())
def resizeEvent(self, e): """ resizeEvent(e: QEvent) -> None Re-adjust the vtkRenderWindow size then QVTKViewWidget resized """ qt_super(QVTKViewWidget, self).resizeEvent(e) if not self.mRenWin: return self.resizeWindow(self.width(), self.height()) self.mRenWin.Render()
def focusOutEvent(self, event): """ focusOutEvent(event: QEvent) -> None Update the tag if the text has changed """ qt_super(QGraphicsVersionTextItem, self).focusOutEvent(event) if not self.updatingTag and self.label != self.toPlainText(): self.updatingTag = True if (self.label == str(self.toPlainText()) or not self.scene().controller.update_current_tag(str(self.toPlainText()))): self.reset() self.updatingTag = False
def resizeEvent(self, e): """ resizeEvent(e: QEvent) -> None Re-adjust the vtkRenderWindow size then QVTKWidget resized """ qt_super(QVTKWidget, self).resizeEvent(e) if not self.mRenWin: return self.resizeWindow(self.width(), self.height()) if self.mRenWin.GetInteractor(): self.mRenWin.GetInteractor().Render() else: self.mRenWin.Render()
def selectModules(self): """ selectModules() -> None Overrides parent class to disable text items if you click on background """ if self.canSelectRectangle: br = self.selectionBox.sceneBoundingRect() else: br = QtCore.QRectF(self.startSelectingPos, self.startSelectingPos) items = self.scene().items(br) if len(items) == 0 or items == [self.selectionBox]: for item in self.scene().selectedItems(): if isinstance(item, QGraphicsVersionItem): item.text.clearFocus() qt_super(QVersionTreeView, self).selectModules()
def event(self, e): """ event(e: QEvent) -> depends on event type Process window and interaction events """ if e.type()==QtCore.QEvent.ParentAboutToChange: if self.mRenWin: if self.mRenWin.GetMapped(): self.mRenWin.Finalize() else: if e.type()==QtCore.QEvent.ParentChange: if self.mRenWin: self.mRenWin.SetWindowInfo(str(int(self.winId()))) if self.isVisible(): self.mRenWin.Start() if QtCore.QObject.event(self,e): return 1 if e.type() == QtCore.QEvent.KeyPress: self.keyPressEvent(e) if e.isAccepted(): return e.isAccepted() return qt_super(QVTKWidget, self).event(e)
def event(self, e): """ event(e: QEvent) -> depends on event type Process window and interaction events """ if e.type() == QtCore.QEvent.ParentAboutToChange: if self.mRenWin: if self.mRenWin.GetMapped(): self.mRenWin.Finalize() else: if e.type() == QtCore.QEvent.ParentChange: if self.mRenWin: self.mRenWin.SetWindowInfo(str(int(self.winId()))) if self.isVisible(): self.mRenWin.Start() if QtCore.QObject.event(self, e): return 1 if e.type() == QtCore.QEvent.KeyPress: self.keyPressEvent(e) if e.isAccepted(): return e.isAccepted() return qt_super(QVTKWidget, self).event(e)
def selectModules(self): """ selectModules() -> None Overrides parent class to disable text items if you click on background """ if self.canSelectRectangle: br = self.selectionBox.sceneBoundingRect() else: br = QtCore.QRectF(self.startSelectingPos, self.startSelectingPos) items = self.scene().items(br) if len(items)==0 or items==[self.selectionBox]: for item in self.scene().selectedItems(): if isinstance(item, QGraphicsVersionItem): item.text.clearFocus() qt_super(QVersionTreeView, self).selectModules()
def keyPressEvent(self, event): """ keyPressEvent(event: QEvent) -> None Enter and Return keys signal a change in the label. Other keys update the position and size of the parent ellipse during key entry. """ if event.key() in [QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]: self.updatingTag = True if (self.label == str(self.toPlainText()) or not self.scene().controller.update_current_tag(str(self.toPlainText()))): self.reset() self.updatingTag = False event.ignore() self.clearFocus() return qt_super(QGraphicsVersionTextItem, self).keyPressEvent(event) if (len(str(self.toPlainText())) > 0): self.setTextWidth(-1) self.updatePos() self.parentItem().updateWidthFromLabel()
def keyPressEvent(self, event): """ keyPressEvent(event: QKeyEvent) -> None Capture 'Del', 'Backspace' for pruning versions when not editing a tag """ selectedItems = self.selectedItems() versions = [item.id for item in selectedItems if isinstance(item, QGraphicsVersionItem) and not item.text.hasFocus()] if (self.controller and len(versions)>0 and event.key() in [QtCore.Qt.Key_Backspace, QtCore.Qt.Key_Delete]): event.accept() versions = [item.id for item in selectedItems] res = vistrails.gui.utils.show_question("VisTrails", "Are you sure that you want to " "prune the selected version(s)?", [vistrails.gui.utils.YES_BUTTON, vistrails.gui.utils.NO_BUTTON], vistrails.gui.utils.NO_BUTTON) if res == vistrails.gui.utils.YES_BUTTON: self.controller.prune_versions(versions) else: qt_super(QVersionTreeScene, self).keyPressEvent(event)
def mousePressEvent(self, event): """ mousePressEvent(event: QMouseEvent) -> None """ qt_super(QGraphicsLinkItem, self).mousePressEvent(event) self.setSelected(True)