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