docs: def eventFilter(self, object, event):
          """
          Listens for tab/backtab to modify list information.
          
          :param      event | <QKeyPressEvent>
          """
          if event.type() != event.KeyPress:
              return super(XRichTextEdit, self).eventFilter(object, event)
          
          cursor    = object.textCursor()
          curr_list = cursor.currentList()
          
          # make sure we're in a current list
          if not curr_list:
              return super(XRichTextEdit, self).eventFilter(object, event)
          
          # unindent for Backtab (Shift+Tab)
          if event.key() == Qt.Key_Backtab:
              delta = -1
          
          # indent for Tab
          elif event.key() == Qt.Key_Tab:
              delta = 1
          
          # otherwise, don't bother calculating
          else:
              return super(XRichTextEdit, self).eventFilter(object, event)
          
          # look for the proper list to move to
          curr_block      = cursor.block()
          curr_indent     = curr_list.format().indent()
          curr_style      = curr_list.format().style()
          prev_block      = curr_block
          next_block      = curr_block
          add_to_list     = None
          add_to_indent   = curr_indent + delta
          
          while prev_block or next_block:
              if prev_block:
                  prev_block = prev_block.previous()
                  prev_list  = prev_block.textList()
                  
                  if not prev_list:
                      prev_block = None
                  
                  else:
                      prev_indent = prev_list.format().indent()
                      
                      if prev_indent == add_to_indent:
                          add_to_list = prev_list
                          break
                      
              if next_block:
                  next_block = next_block.next()
                  next_list  = next_block.textList()
                  
                  if not next_list:
                      next_block = None
                  
                  else:
                      next_indent = next_list.format().indent()
                      
                      if next_indent == add_to_indent:
                          add_to_list = next_list
                          break
          
          if add_to_list is None and 0 < delta:
              if curr_style in (QTextListFormat.ListCircle,
                                QTextListFormat.ListDisc,
                                QTextListFormat.ListSquare):
                  self.insertUnorderedList()
              else:
                  self.insertOrderedList()
          
          elif add_to_list:
              add_to_list.add(curr_block)
          
          return True