def _store_entry(self, source): """ When the textfield of `source` has been edited (flag `self.spec_edited` = True), transform the amplitude spec back to linear unit setting and store it in filter dict. This is triggered by `QEvent.focusOut` Spec entries are *always* stored in linear units; only the displayed values are adapted to the amplitude unit, not the dictionary! """ if self.spec_edited: unit = str(self.cmbUnitsA.currentText()) filt_type = fb.fil[0]['ft'] amp_label = str(source.objectName()) amp_value = safe_eval(source.text(), fb.data_old) fb.fil[0].update({amp_label:unit2lin(amp_value, filt_type, amp_label, unit)}) self.sigSpecsChanged.emit() # -> filter_specs self.spec_edited = False # reset flag self.load_dict()