Overloads the base QGraphicsScene method to reset the selection \
        signals and finish the connection.
                    
        :param      event   <QMouseReleaseEvent>

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()