class ConfigureDialog(QDialog): ''' Configure dialog to present the user with the options to configure this step. ''' def __init__(self, state, parent=None): ''' Constructor ''' QDialog.__init__(self, parent) self._ui = Ui_ConfigureDialog() self._ui.setupUi(self) self.setState(state) self.validate() self._makeConnections() def _makeConnections(self): self._ui.dataButton.clicked.connect(self._dataButtonClicked) self._ui.dataLineEdit.textChanged.connect(self.validate) self._ui.identifierLineEdit.textChanged.connect(self.validate) def setState(self, state): self._ui.identifierLineEdit.setText(state._identifier) self._ui.dataLineEdit.setText(state._dataLocation) def getState(self): state = ZincDataData() state._identifier = self._ui.identifierLineEdit.text() state._dataLocation = self._ui.dataLineEdit.text() return state def validate(self): identifier_valid = len(self._ui.identifierLineEdit.text()) > 0 if identifier_valid: self._ui.identifierLineEdit.setStyleSheet(DEFAULT_STYLE_SHEET) else: self._ui.identifierLineEdit.setStyleSheet(REQUIRED_STYLE_SHEET) data_valid = len(self._ui.dataLineEdit.text()) > 0 if data_valid: self._ui.dataLineEdit.setStyleSheet(DEFAULT_STYLE_SHEET) else: self._ui.dataLineEdit.setStyleSheet(REQUIRED_STYLE_SHEET) valid = identifier_valid and data_valid self._ui.buttonBox.button(QDialogButtonBox.Ok).setEnabled(valid) return valid def _dataButtonClicked(self): (fileName, _) = QFileDialog.getOpenFileName(self, 'Select Zinc File', self._ui.previousLocationLabel.text()) if fileName: location = os.path.basename(fileName) self._ui.previousLocationLabel.setText(location) self._ui.dataLineEdit.setText(fileName) self.validate()
def __init__(self, state, parent=None): ''' Constructor ''' QDialog.__init__(self, parent) self._ui = Ui_ConfigureDialog() self._ui.setupUi(self) self.setState(state) self.validate() self._makeConnections()