code: def redo(self, *args):
          if not self.gui_up:
              return
          mod_only = self.w.modified_only.get_state()
          treedict = Bunch.caselessDict()
          self.treeview.clear()
          self.w.status.set_text('')
          channel = self.fv.get_channel(self.chname)
          if channel is None:
              return
          if mod_only:
              all_keys = channel.datasrc.keys(sort='alpha')
          else:
              all_keys = channel.get_image_names()
          for key in all_keys:
              iminfo = channel.get_image_info(key)
              path = iminfo.get('path')
              idx = iminfo.get('idx')
              t = iminfo.get('time_modified')
              if path is None:
                  infile = key
                  is_fits = True
              else:
                  infile = os.path.basename(path)
                  infile_ext = os.path.splitext(path)[1]
                  infile_ext = infile_ext.lower()
                  is_fits = False
                  if 'fit' in infile_ext:
                      is_fits = True
              if not is_fits:
                  continue
              if mod_only and t is None:
                  continue
              if infile in treedict:
                  if t is not None:
                      treedict[infile].extlist.add(idx)
                      elist = sorted(treedict[infile].extlist)
                      treedict[infile].MODEXT = ';'.join(
                          map(self._format_extname, elist))
              else:
                  if t is None:
                      s = ''
                      extlist = set()
                  else:
                      s = self._format_extname(idx)
                      extlist = set([idx])
                  treedict[infile] = Bunch.Bunch(
                      IMAGE=infile, MODEXT=s, extlist=extlist, path=path)
          self.treeview.set_tree(treedict)
          n_rows = len(treedict)
          if n_rows == 0:
              self.w.status.set_text('Nothing available for saving')
          elif n_rows < self.settings.get('max_rows_for_col_resize', 5000):
              self.treeview.set_optimal_column_widths()
              self.logger.debug('Resized columns for {0} row(s)'.format(n_rows))