def setParent(self, other):
        """
        Sets the parent for this layer to the inputed layer.
        
        :param      other | <XNodeLayer> || None
        
        :return     <bool> changed
        """
        if self._parent == other:
            return False
        
        # remove this layer from its parent
        if self._parent and self in self._parent._children:
            self._parent._children.remove(self)
        
        self._parent = other
        
        # add this layer to its parent's list of children
        if self._parent and not self in self._children:
            self._parent._children.append(self)
        
        self.sync()
        
        return True