# -*- coding: utf-8 -*- from config import Config from view.ASubWindow import ASubWindow from PyQt5.QtWidgets import ( QDialogButtonBox, QPushButton, QLineEdit, QFileDialog, ) class ConfigureWindow(ASubWindow): def __init__(self, conf=None, title="Configure", parent=None): super(ConfigureWindow, self).__init__(name=title, ui="ConfigureDialog", parent=parent) self.ui.setWindowTitle(title) if conf is None: self.conf = Config() else: self.conf = conf # MAGE self.set_line_edit_text("lineEdit_exec_mage", self.conf.mage_path) self.set_line_edit_text("lineEdit_exec_mage_extract", self.conf.mage_extract_path) self.set_line_edit_text("lineEdit_exec_mailleur", self.conf.mailleur_path) # Const self.set_check_box("checkBox_manning", self.conf.manning) self.set_line_edit_text("lineEdit_segment", str(self.conf.segment)) self.set_line_edit_text("lineEdit_max_listing", str(self.conf.max_listing)) # Backup self.set_check_box("checkBox_backup", self.conf.backup_enable) self.set_line_edit_text("lineEdit_backup_path", self.conf.backup_path) self.set_time_edit("timeEdit_backup_frequence", self.conf.backup_frequence) self.set_spin_box("spinBox_backup_max", self.conf.backup_max) self.connect() def connect(self): # File button buttons = { "pushButton_exec_mage": lambda: self.file_dialog("exec_mage", True), "pushButton_exec_mage_extract": lambda: self.file_dialog("exec_mage_extract", True), "pushButton_exec_mailleur": lambda: self.file_dialog("exec_mailleur", True), "pushButton_backup_path": lambda: self.file_dialog("backup_path", False), } for button in buttons: self.find(QPushButton, button).clicked.connect(buttons[button]) def accept(self): # MAGE self.conf.mage_path = self.get_line_edit_text("lineEdit_exec_mage") self.conf.mage_extract_path = self.get_line_edit_text("lineEdit_exec_mage_extract") self.conf.mailleur_path = self.get_line_edit_text("lineEdit_exec_mailleur") # Const self.conf.manning = self.get_check_box("checkBox_manning") self.conf.segment = self.get_line_edit_text("lineEdit_segment") self.conf.max_listing = self.get_line_edit_text("lineEdit_max_listing") # Backup self.conf.backup_enable = self.get_check_box("checkBox_backup") self.conf.backup_path = self.get_line_edit_text("lineEdit_backup_path") self.conf.backup_frequence = self.get_time_edit("timeEdit_backup_frequence") self.conf.backup_max = self.get_spin_box("spinBox_backup_max") self.end() def reject(self): # Nothing todo self.end() def end(self): self.conf.save() self.close() def file_dialog(self, line_edit, select_file): dialog = QFileDialog(self) if select_file: mode = QFileDialog.FileMode.ExistingFile else: mode = QFileDialog.FileMode.Directory dialog.setFileMode(mode) if dialog.exec_(): file_names = dialog.selectedFiles() if len(file_names) != 1: print("pas bien") else: if line_edit != "": self.set_line_edit_text( f"lineEdit_{line_edit}", file_names[0] )