''' Boite de dialogue d'édition des paramètres utilisateurs. @author: olivier.massot, sept. 2017 ''' from PyQt5.Qt import QFileDialog from PyQt5.QtWidgets import QDialog, QApplication import yaml from core import config from core.constants import USER_DATA_PATH from ui.qt.settings_ui import Ui_settings class SettingsDialog(QDialog): def __init__(self): super(SettingsDialog, self).__init__() self.createWidgets() def createWidgets(self): self.ui = Ui_settings() self.ui.setupUi(self) self.ui.tabWidget.setCurrentIndex(0) self.ui.btn_repertoire_defaut.clicked.connect(self.majRepInput) self.ui.btn_repertoire_sortie.clicked.connect(self.majRepOutput) self.ui.btnOk.clicked.connect(self.ok) self.ui.btnCancel.clicked.connect(self.cancel) self.load() def load(self): self.ui.txt_repertoire_defaut.setText(config.get("repertoire_defaut")) self.ui.txt_repertoire_sortie.setText(config.get("repertoire_sortie")) self.ui.txt_RaisonSocialeExploitant.setText(config.get("donnees", "commun", "RaisonSocialeExploitant")) self.ui.txt_ContactExploitant.setText(config.get("donnees", "commun", "ContactExploitant")) self.ui.txt_NoVoieExploitant.setText(config.get("donnees", "commun", "NoVoieExploitant")) self.ui.txt_LieuditBPExploitant.setText(config.get("donnees", "commun", "LieuditBPExploitant")) self.ui.txt_CodePostalExploitant.setText(config.get("donnees", "commun", "CodePostalExploitant")) self.ui.txt_CommuneExploitant.setText(config.get("donnees", "commun", "CommuneExploitant")) self.ui.txt_TelExploitant.setText(config.get("donnees", "commun", "TelExploitant")) self.ui.txt_FaxExploitant.setText(config.get("donnees", "commun", "FaxExploitant")) self.ui.txt_NomResponsableDossier.setText(config.get("donnees", "commun", "NomResponsableDossier")) self.ui.txt_DesignationService.setText(config.get("donnees", "commun", "DésignationService")) self.ui.txt_TelResponsableDossier.setText(config.get("donnees", "commun", "TelResponsableDossier")) self.ui.txt_TelEndommagement.setText(config.get("donnees", "commun", "TelEndommagement")) self.ui.txt_NomSignataire.setText(config.get("donnees", "commun", "NomSignataire")) def majRepInput(self): inputRep = QFileDialog.getExistingDirectory(self, "Répertoire d'entrée", "") if inputRep : self.ui.txt_repertoire_defaut.setText(inputRep) def majRepOutput(self): outputRep = QFileDialog.getExistingDirectory(self, "Répertoire de sortie", "") if outputRep : self.ui.txt_repertoire_sortie.setText(outputRep) def save(self): new_config = {} new_config["repertoire_defaut"] = self.ui.txt_repertoire_defaut.text() new_config["repertoire_sortie"] = self.ui.txt_repertoire_sortie.text() new_config["donnees"] = {} new_config["donnees"]["commun"] = {} new_config["donnees"]["commun"]["RaisonSocialeExploitant"] = self.ui.txt_RaisonSocialeExploitant.text() new_config["donnees"]["commun"]["ContactExploitant"] = self.ui.txt_ContactExploitant.text() new_config["donnees"]["commun"]["NoVoieExploitant"] = self.ui.txt_NoVoieExploitant.text() new_config["donnees"]["commun"]["LieuditBPExploitant"] = self.ui.txt_LieuditBPExploitant.text() new_config["donnees"]["commun"]["CodePostalExploitant"] = self.ui.txt_CodePostalExploitant.text() new_config["donnees"]["commun"]["CommuneExploitant"] = self.ui.txt_CommuneExploitant.text() new_config["donnees"]["commun"]["TelExploitant"] = self.ui.txt_TelExploitant.text() new_config["donnees"]["commun"]["FaxExploitant"] = self.ui.txt_FaxExploitant.text() new_config["donnees"]["commun"]["NomResponsableDossier"] = self.ui.txt_NomResponsableDossier.text() new_config["donnees"]["commun"]["DésignationService"] = self.ui.txt_DesignationService.text() new_config["donnees"]["commun"]["TelResponsableDossier"] = self.ui.txt_TelResponsableDossier.text() new_config["donnees"]["commun"]["TelEndommagement"] = self.ui.txt_TelEndommagement.text() new_config["donnees"]["commun"]["NomSignataire"] = self.ui.txt_NomSignataire.text() with open(USER_DATA_PATH, "w+") as f: yaml.dump(new_config, f) # recharge la configuration de l'appli config.load() def cancel(self): self.done(0) def ok(self): self.save() self.done(1) if __name__ == "__main__": import sys app = QApplication(sys.argv) config.load() dlg = SettingsDialog() dlg.show() dlg.exec_() exit(0)