Pamhyr2/src/view/ConfigureWindow.py

96 lines
3.5 KiB
Python

# -*- 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]
)