docs: def __update_info(self):
          """Updates "visualization options" and "file info" areas."""
  
          from f311 import explorer as ex
          import f311
  
          t = self.tableWidget
          z = self.listWidgetVis
          z.clear()
          classes = self.__vis_classes = []
          propss = self.__lock_get_current_propss()
          npp = len(propss)
          s0, s1 = "", ""
          if npp == 1:
              p = propss[0]
              # Visualization options
              if p.flag_scanned:
                  if isinstance(p.f, f311.DataFile):
                      classes.extend(f311.get_suitable_vis_classes(p.f))
                      if ex.VisPrint in classes:
                          classes.remove(ex.VisPrint)
                  if p.flag_text:
                      # This is an exception, since "txt" is not a Vis descendant.
                      # This will be properly handled in __visualize()
                      classes.append("txt")
  
                  for x in classes:
                      if x == "txt":
                          text = "View plain text"
                      else:
                          text = x.action
                          text += " ("+x.__name__+")"
                      item = QListWidgetItem(text)
                      z.addItem(item)
  
              # File info
              s0 = p.get_summary()
              s1 = p.get_info()
  
          elif npp >= 2:
              s0 = "{0:d} selected".format(npp)
              ff = [p.f for p in propss]
              flag_spectra = all([isinstance(f, f311.FileSpectrum) for f in ff])
  
              # gambiarra to visualize several PFANT .mod files
              has_pyfant = False
              try:
                  import pyfant
                  has_pyfant = True
              except:
                  pass
  
              flag_mod = False
              if has_pyfant:
                  flag_mod = all([isinstance(f, pyfant.FileModBin) and len(f.records) > 1 for f in ff])
  
              if flag_spectra:
                  z.addItem(QListWidgetItem("Plot spectra stacked"))
                  classes.append("sta")
                  z.addItem(QListWidgetItem("Plot spectra overlapped"))
                  classes.append("ovl")
              elif flag_mod:
  
                  # TODO plugin-based way to handle visualization of multiple selection
  
                  z.addItem(QListWidgetItem("View model grid"))
                  classes.append("modgrid")
                  
          # File info
          self.labelSummary.setText(s0)
          self.textEditInfo.setPlainText(s1)