def __init__(self, *args): apply(QSplitter.__init__,(self,)+args) self.left=guiMultiLineEdit(self) self.left.setReadOnly(TRUE) self.right=guiListEditor(self) self.connect (self.right, PYSIGNAL("lineRemoved"), self.removeLine) self.keys=[]
def __init__(self, parent, record, mode, *args): QWidget.__init__(self, parent, *args) self.mode=mode self.record=record self.grdFields=QGridLayout(self) self.grdFields.setSpacing(6) self.grdFields.setMargin(11) self.fieldList=[] self.fieldTypes={} row=0 for field, fieldDef in record.tableDef.orderedFieldList(): if fieldDef.dialog: # show in dialog self.grdFields.expand(row + 1, 2) self.fieldList.append((field, fieldDef)) self.fieldTypes[field]=fieldDef if fieldDef.datatype == constants.TEXT: # Multiline if fieldDef.readonly and mode != constants.SEARCH: fld=self.addField(field, guiLabel(self)) fld.setAlignment(Qt.AlignLeft or Qt.AlignTop) fld.setFrameShape(guiLabel.Panel) fld.setFrameShadow(guiLabel.Sunken) fld.setFont(font) else: fld=self.addField(field, guiMultiLineEdit(self)) fld.setText(record.getFieldValue(field)) self.grdFields.addWidget(self.addField("txt"+field, guiLabel(fld, fieldDef.label, self)), row, 0) self.grdFields.addWidget(fld, row, 1) elif fieldDef.relation <> None: # Combobox if fieldDef.readonly and mode != constants.SEARCH: fld=self.addField(field, guiLabel(self)) fld.setFrameShape(guiLabel.Panel) fld.setFrameShadow(guiLabel.Sunken) fld.setText(record.getFieldValue(record.getDescriptorColumnName(field))) fld.setFont(font) else: fld=self.addField(field, guiComboBox(self)) fld.fillComboBox(record, field, self.mode) self.grdFields.addWidget(self.addField("txt"+field, guiLabel(fld, fieldDef.label, self)), row, 0) self.grdFields.addWidget(fld, row, 1) elif fieldDef.datatype == constants.BOOLEAN: # checkbox fld=self.addField(field, guiCheckBox(self, fieldDef.label)) if mode == constants.SEARCH: fld.setTristate(True) fld.setChecked(record.getFieldValue(field)) if fieldDef.readonly and mode != constants.SEARCH: fld.setEnabled(False) self.grdFields.addWidget(fld, row, 0) elif fieldDef.datatype == constants.INTEGER: # number if fieldDef.readonly and mode != constants.SEARCH: fld=self.addField(field, guiLabel(self)) fld.setFrameShape(guiLabel.Panel) fld.setFrameShadow(guiLabel.Sunken) fld.setFont(font) value = record.getFieldValue(field) if value != None: fld.setText(str(value)) else: fld=self.addField(field, guiNumberBox(self)) fld.setText(record.getFieldValue(field)) self.grdFields.addWidget(self.addField("txt"+field, guiLabel(fld, fieldDef.label, self)), row, 0) self.grdFields.addWidget(fld, row, 1) else:# Lineedit if fieldDef.readonly and mode != constants.SEARCH: fld=self.addField(field, guiLabel(self)) fld.setFrameShape(guiLabel.Panel) fld.setFrameShadow(guiLabel.Sunken) fld.setFont(font) else: fld=self.addField(field, guiLineEdit(self)) fld.setMaxLength(fieldDef.length) fld.setText(record.getFieldValue(field)) self.grdFields.addWidget(self.addField("txt"+field, guiLabel(fld, fieldDef.label, self)), row, 0) self.grdFields.addWidget(fld, row, 1) row=row+1