code: def editRecord(self, record, pos=None):
          
          
          typ = type(record)
          editor = self._recordEditors.get(typ)
          if not editor:
              return False
          
          if self.popupEditing():
              popup = self.popupWidget()
              edit = popup.centralWidget()
              
              # create a new editor if required
              if type(edit) != editor:
                  if edit:
                      edit.close()
                      edit.deleteLater()
                  
                  edit = editor(popup)
                  edit.setAutoCommitOnSave(True)
                  popup.setCentralWidget(edit)
                  popup.accepted.connect(edit.save)
                  edit.aboutToSaveRecord.connect(self.recordUpdated)
                  edit.saved.connect(self.refresh)
              
              edit.setRecord(record)
              popup.popup(pos)
          
          else:
              if editor.edit(record, autoCommit=False):
                  self.recordUpdated.emit(record)
                  record.commit()
                  self.refresh()
          
          return True
docs: Prompts the user to edit using a preset editor defined in the
          setRecordEditors method.
          
          :param      record | <orb.Table>
          
          :return     <bool> | success