docs: def add_new_grid_headers(self, new_headers, er_items, pmag_items):
          """
          Add in all user-added headers.
          If those new headers depend on other headers, add the other headers too.
          """
  
          def add_pmag_reqd_headers():
              if self.grid_type == 'result':
                  return []
              add_in = []
              col_labels = self.grid.col_labels
              for reqd_head in self.grid_headers[self.grid_type]['pmag'][1]:
                  if reqd_head in self.er_magic.double:
                      if reqd_head + "++"  not in col_labels:
                          add_in.append(reqd_head + "++")
                  else:
                      if reqd_head not in col_labels:
                          add_in.append(reqd_head)
              add_in = builder.remove_list_headers(add_in)
              return add_in
          #
          already_present = []
          for name in new_headers:
              if name:
                  if name not in self.grid.col_labels:
                      col_number = self.grid.add_col(name)
                      # add to appropriate headers list
                      if name in er_items:
                          self.grid_headers[self.grid_type]['er'][0].append(str(name))
                      if name in pmag_items:
                          name = name.strip('++')
                          if name not in self.grid_headers[self.grid_type]['pmag'][0]:
                              self.grid_headers[self.grid_type]['pmag'][0].append(str(name))
                              # add any required pmag headers that are not in the grid already
                              for header in add_pmag_reqd_headers():
                                  col_number = self.grid.add_col(header)
                                  # add drop_down_menus for added reqd columns
                                  if header in vocab.possible_vocabularies:
                                      self.drop_down_menu.add_drop_down(col_number, name)
                                  if header in ['magic_method_codes++']:
                                      self.drop_down_menu.add_method_drop_down(col_number, header)
                      # add drop down menus for user-added column
                      if name in vocab.possible_vocabularies:
                          self.drop_down_menu.add_drop_down(col_number, name)
                      if name in ['magic_method_codes', 'magic_method_codes++']:
                          self.drop_down_menu.add_method_drop_down(col_number, name)
                  else:
                      already_present.append(name)
                      #pw.simple_warning('You are already using column header: {}'.format(name))
          return already_present