예제 #1
0
    def focusOutEvent(self, event):
        '''Handle focus out event.

        Argument(s):
        event (QFocusEvent ): Focus event
        '''
        QGraphicsTextItem.focusOutEvent(self, event)

        # Create a fake node to test if label is valid with pydot
        fakeNode = ("fake[" + NodeDotAttrs.label.value +
                    "=" + self.toPlainText() + "]")
        pydotGraph = graph_from_dot_data("graph{" + fakeNode + "}")

        # Label is valid: we can do the update
        if pydotGraph:
            dicDotAttrs = {
                NodeDotAttrs.label.value:
                NodeDotLabelUtils.formatLabel(self.toPlainText())
            }

            # Update text in other views
            node = self.parentItem()
            node.graphicsGraphView.controller.onEditNode(node.id, dicDotAttrs)

            # Disable edit text
            self.setTextInteractionFlags(Qt.NoTextInteraction)

        # Label is invalid: force user to write a correct label
        else:
            QMessageBox.warning(None, "Syntax error",
                                "The label is invalid.")
            self.setFocus()
예제 #2
0
    def focusOutEvent(self, event):
        '''Handle focus out event.

        Argument(s):
        event (QFocusEvent ): Focus event
        '''
        QGraphicsTextItem.focusOutEvent(self, event)

        # Create a fake node to test if label is valid with pydot
        fakeNode = ("fake[" + NodeDotAttrs.label.value +
                    "=" + self.toPlainText() + "]")
        pydotGraph = graph_from_dot_data("graph{" + fakeNode + "}")

        # Label is valid: we can do the update
        if pydotGraph:
            dicDotAttrs = {
                NodeDotAttrs.label.value:
                NodeDotLabelUtils.formatLabel(self.toPlainText())
            }

            # Update text in other views
            node = self.parentItem()
            node.graphicsGraphView.controller.onEditNode(node.id, dicDotAttrs)

            # Disable edit text
            self.setTextInteractionFlags(Qt.NoTextInteraction)

        # Label is invalid: force user to write a correct label
        else:
            QMessageBox.warning(None, "Syntax error",
                                "The label is invalid.")
            self.setFocus()
예제 #3
0
 def focusOutEvent(self, event):
     self.inputMethodEvent(event)
     QGraphicsTextItem.focusOutEvent(self, event)
 def focusOutEvent(self, event):
     self.setTextInteractionFlags(Qt.NoTextInteraction)
     self.textChanged.emit(self.toPlainText())
     self.textEditFinished.emit()
     QGraphicsTextItem.focusOutEvent(self, event)
예제 #5
0
 def focusOutEvent(self, event: QFocusEvent):
     self.inputMethodEvent(event)
     QGraphicsTextItem.focusOutEvent(self, event)