code: def saveValues(self):
          
          output = {}
          
          for widget in self.findChildren(QWidget):
              prop = widget.property('columnName')
              if not prop:
                  continue
              
              columnName = nativestring(unwrapVariant(prop, ''))
              
              if ( not columnName ):
                  continue
              
              value, success = projexui.widgetValue(widget)
              if ( not success ):
                  continue
              
              # convert from values to standard python values
              if ( isinstance(value, QDateTime) ):
                  value = value.toPyDateTime()
              elif ( isinstance(value, QDate) ):
                  value = value.toPyDate()
              elif ( isinstance(value, QTime) ):
                  value = value.toPyTime()
              elif ( type(value).__name__ == 'QString' ):
                  value = nativestring(value)
              
              output[columnName] = value
          
          return output
docs: Generates a dictionary of values from the widgets in this editor that
          will be used to save the values on its record.
          
          :return     {<str> columnName: <variant> value, ..}