Emits the node double clicked event when a node is double clicked.
        
        :param      event | <QMouseDoubleClickEvent>

def mouseDoubleClickEvent(self, event):
        """
        Emits the node double clicked event when a node is double clicked.
        
        :param      event | <QMouseDoubleClickEvent>
        """
        super(XNodeScene, self).mouseDoubleClickEvent(event)
        
        # emit the node double clicked signal
        if event.button() == Qt.LeftButton:
            item = self.itemAt(event.scenePos())
            
            if not item:
                self.clearSelection()
            else:
                blocked = self.signalsBlocked()
                self.blockSignals(True)
                self.clearSelection()
                item.setSelected(True)
                self.blockSignals(blocked)
            
                if isinstance(item, XNode) and not blocked:
                    self.nodeDoubleClicked.emit(item)
                elif isinstance(item, XNodeConnection) and not blocked:
                    self.connectionDoubleClicked.emit(item)
                
                if not blocked:
                    self.itemDoubleClicked.emit(item)