docs: def edit( cls, record, parent = None, uifile = '', commit = True ):
          """
          Prompts the user to edit the inputed record.
          
          :param      record | <orb.Table>
                      parent | <QWidget>
          
          :return     <bool> | accepted
          """
          # create the dialog
          dlg = QDialog(parent)
          dlg.setWindowTitle('Edit %s' % record.schema().name())
          
          # create the widget
          cls    = record.schema().property('widgetClass', cls)
          
          widget = cls(dlg)
          
          if ( uifile ):
              widget.setUiFile(uifile)
          
          widget.setRecord(record)
          widget.layout().setContentsMargins(0, 0, 0, 0)
          
          # create buttons
          opts = QDialogButtonBox.Save | QDialogButtonBox.Cancel
          btns = QDialogButtonBox(opts, Qt.Horizontal, dlg)
          
          # create layout
          layout = QVBoxLayout()
          layout.addWidget(widget)
          layout.addWidget(btns)
          
          dlg.setLayout(layout)
          dlg.adjustSize()
          
          # create connections
          #btns.accepted.connect(widget.save)
          btns.rejected.connect(dlg.reject)
          widget.saved.connect(dlg.accept)
          
          if ( dlg.exec_() ):
              if commit:
                  result = widget.record().commit()
                  if 'errored' in result:
                      QMessageBox.information(self.window(),
                                              'Error Committing to Database',
                                              result['errored'])
                      return False
              return True
          return False