docs: def buildDPList(self):
          """Builds list of data products."""
          updated = False
          dps = []
          itemlist = self.getItemDPList()
          # first remove all items marked for removal, in case their names clash with new or renamed items
          for item, dp in itemlist:
              item._policy = item._combobox_current_value[self.ColAction]
              if dp and item._policy == "remove":
                  dp.remove_file()
                  dp.remove_subproducts()
          # now, make list
          for item, dp in itemlist:
              if item._policy == "remove":
                  continue
              # update renderer and comment
              render = item._combobox_current_value[self.ColRender]
              comment = str(item.text(self.ColComment))
              if render != dp.render:
                  dp.render = render
                  updated = True
              if comment != dp.comment:
                  dp.comment = comment
                  updated = True
              # archived DPs may need to be renamed, for new ones simply set the name
              if dp.archived:
                  updated = updated or dp.rename(str(item.text(self.ColRename)))
              else:
                  dp.set_policy(item._policy)
                  dp.filename = str(item.text(self.ColRename))
              dps.append(dp)
          return dps, updated