code: def fill(self):
          
          log.debug("Fill classes tree")
  
          for idx, filename, digest, classes in self.session.get_classes():
              for c in sorted(classes, key=lambda c: c.name):
                  sig = Signature(c)
                  path_node = self.root_path_node
  
                  path = None
                  if not sig.class_path:
                      path = '.'
                      if path not in path_node[0]:
                          path_node[0][path] = (
                              {}, HashableQTreeWidgetItem(path_node[1]))
                          path_node[0][path][1].setText(0, path)
                      path_node = path_node[0][path]
                  else:
                      # Namespaces
                      for path in sig.class_path:
                          if path not in path_node[0]:
                              path_node[0][path] = (
                                  {}, HashableQTreeWidgetItem(path_node[1]))
                              path_node[0][path][1].setText(0, path)
                          path_node = path_node[0][path]
  
                  # Class
                  path_node[0][path] = ({}, HashableQTreeWidgetItem(path_node[1]))
  
                  class_name = sig.class_name
  
                  if idx > 0:
                      class_name += "@%d" % idx
  
                  c.current_title = class_name
                  self._reverse_cache[path_node[0][path][1]] = (c, filename,
                                                                digest)
  
                  path_node[0][path][1].setText(0, class_name)
docs: Parse all the paths (['Lcom/example/myclass/MyActivity$1;', ...])
             and build a tree using the QTreeWidgetItem insertion method.