Set all levels\' model to the given one

        :param m: the model that the levels should use
        :type m: QtCore.QAbstractItemModel
        :returns: None
        :rtype: None
        :raises: None

def set_model(self, model):
        """Set all levels\' model to the given one

        :param m: the model that the levels should use
        :type m: QtCore.QAbstractItemModel
        :returns: None
        :rtype: None
        :raises: None
        """
        # do the set model in reverse!
        # set model might trigger an update for the lower levels
        # but the lower ones have a different model, so it will fail anyways
        # this way the initial state after set_model is correct.
        self.model = model
        self._levels[0].set_model(model)