code: def set_model(self, model):
          
          # 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)
docs: 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