Overloads the base QGraphicsItem itemChange method to block user ability
        to move along the y-axis.
        
        :param      change      <int>
        :param      value       <variant>
        
        :return     <variant>

def itemChange( self, change, value ):
        """
        Overloads the base QGraphicsItem itemChange method to block user ability
        to move along the y-axis.
        
        :param      change      <int>
        :param      value       <variant>
        
        :return     <variant>
        """
        # only operate when it is a visible, geometric change
        if not (self.isVisible() and change == self.ItemPositionChange):
            return super(XGanttViewItem, self).itemChange( change, value )
        
        if self.isSyncing():
            return super(XGanttViewItem, self).itemChange(change, value)
        
        scene = self.scene()
        # only operate when we have a scene
        if not scene:
            return super(XNode, self).itemChange( change, value )
        
        point = value.toPointF()
        point.setY(self.pos().y())
        
        # create the return value
        new_value = wrapVariant(point)
        
        # call the base method to operate on the new point
        return super(XGanttViewItem, self).itemChange(change, new_value)