code: def _populateComboBoxes(self, row):
          
          logger.debug("_populateComboBoxes")
          for comboBox in self._comboBoxes:
              comboBox.clear()
  
          if not self.rtiIsSliceable:
              # Add an empty item to the combo boxes so that resize to contents works.
              for comboBoxNr, comboBox in enumerate(self._comboBoxes):
                  comboBox.addItem('', userData=None)
                  comboBox.setEnabled(False)
              return
  
          nDims = self._rti.nDims
          nCombos = len(self._comboBoxes)
  
          for comboBoxNr, comboBox in enumerate(self._comboBoxes):
              # Add a fake dimension of length 1
              comboBox.addItem(FAKE_DIM_NAME, userData = FAKE_DIM_OFFSET + comboBoxNr)
  
              for dimNr in range(nDims):
                  comboBox.addItem(self._rti.dimensionNames[dimNr], userData=dimNr)
  
              # Set combobox current index
              if nDims >= nCombos:
                  # We set the nth combo-box index to the last item - n. This because the
                  # NetCDF-CF conventions have the preferred dimension order of T, Z, Y, X.
                  # The +1 below is from the fake dimension.
                  curIdx = nDims + 1 - nCombos + comboBoxNr
              else:
                  # If there are less dimensions in the RTI than the inspector can show, we fill
                  # the comboboxes starting at the leftmost and set the remaining comboboxes to the
                  # fake dimension. This means that a table inspector fill have one column and many
                  # rows, which is the most convenient.
                  curIdx = comboBoxNr + 1 if comboBoxNr < nDims else 0
  
              assert 0 <= curIdx <= nDims + 1, \
                  "curIdx should be <= {}, got {}".format(nDims + 1, curIdx)
  
              comboBox.setCurrentIndex(curIdx)
              comboBox.setEnabled(True)
docs: Populates the combo boxes with values of the repo tree item