docs: def add_messages(self, messages):
          """
          Adds a message or a list of message.
  
          :param messages: A list of messages or a single message
          """
          # remove old messages
          if len(messages) > self.limit:
              messages = messages[:self.limit]
          _logger(self.__class__).log(5, 'adding %s messages' % len(messages))
          self._finished = False
          self._new_messages = messages
          self._to_check = list(self._messages)
          self._pending_msg = messages
          # start removing messages, new message won't be added until we
          # checked all message that need to be removed
          QtCore.QTimer.singleShot(1, self._remove_batch)