def mouseReleaseEvent( self, event ):
        """
        Overloads the base QGraphicsScene method to reset the selection \
        signals and finish the connection.
                    
        :param      event   <QMouseReleaseEvent>
        """
        if event.button() == Qt.MidButton:
            self.setViewMode(False)
            event.accept()
            return
        
        super(XNodeScene, self).mouseReleaseEvent(event)
        
        # reset the selection blocked signals
        self.blockSelectionSignals(False)
        
        # finish the connection
        if ( self.isConnecting() ):
            self.finishConnection()
        
        # emit a menu request signal if necessary
        elif ( not event.isAccepted() and event.button() == Qt.RightButton ):
            item = self.itemAt(event.scenePos())
            if isinstance(item, XNode):
                self.emitNodeMenuRequested(item)
            else:
                self.emitMenuRequested()
            event.accept()
def mouseReleaseEvent ( self , event ) : if event . button ( ) == Qt . MidButton : self . setViewMode ( False ) event . accept ( ) return super ( XNodeScene , self ) . mouseReleaseEvent ( event ) self . blockSelectionSignals ( False ) if ( self . isConnecting ( ) ) : self . finishConnection ( ) elif ( not event . isAccepted ( ) and event . button ( ) == Qt . RightButton ) : item = self . itemAt ( event . scenePos ( ) ) if isinstance ( item , XNode ) : self . emitNodeMenuRequested ( item ) else : self . emitMenuRequested ( ) event . accept ( )
Overloads the base QGraphicsScene method to reset the selection \
        signals and finish the connection.
                    
        :param      event   <QMouseReleaseEvent>