mirror of https://gitlab.com/pamhyr/pamhyr2
83 lines
3.1 KiB
Python
83 lines
3.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from View.ASubWindow import ASubWindow
|
|
from Solver.Solvers import solver_type_list
|
|
from Solver.GenericSolver import GenericSolver
|
|
|
|
from PyQt5.QtWidgets import (
|
|
QPushButton,
|
|
)
|
|
|
|
class ConfigureSolverWindow(ASubWindow):
|
|
def __init__(self, data=None, title="Configuration : Add Solver", parent=None):
|
|
super(ConfigureSolverWindow, self).__init__(
|
|
name=title, ui="ConfigureAddSolverDialog", parent=parent
|
|
)
|
|
self.ui.setWindowTitle(title)
|
|
|
|
# Combo box item
|
|
for solver in solver_type_list:
|
|
self.combobox_add_item("comboBox_solver", solver)
|
|
|
|
# Data to return
|
|
self.data = data
|
|
if not self.data is None:
|
|
self.copy_data()
|
|
|
|
self.connect()
|
|
|
|
def copy_data(self):
|
|
self.set_combobox_text("comboBox_solver", self.data.get_type())
|
|
self.set_line_edit_text("lineEdit_name", self.data.name)
|
|
self.set_line_edit_text("lineEdit_description", self.data.description)
|
|
self.set_line_edit_text("lineEdit_input", self.data.path_input)
|
|
self.set_line_edit_text("lineEdit_input_cmd", self.data.cmd_input)
|
|
self.set_line_edit_text("lineEdit_solver", self.data.path_solver)
|
|
self.set_line_edit_text("lineEdit_solver_cmd", self.data.cmd_solver)
|
|
self.set_line_edit_text("lineEdit_output", self.data.path_output)
|
|
self.set_line_edit_text("lineEdit_output_cmd", self.data.cmd_output)
|
|
|
|
def connect(self):
|
|
# File button
|
|
buttons = {
|
|
"pushButton_input": (lambda: self.file_dialog(
|
|
select_file = True,
|
|
callback = lambda f: self.set_line_edit_text("lineEdit_input", f[0])
|
|
)),
|
|
"pushButton_solver": (lambda: self.file_dialog(
|
|
select_file = True,
|
|
callback = lambda f: self.set_line_edit_text("lineEdit_solver", f[0])
|
|
)),
|
|
"pushButton_output": (lambda: self.file_dialog(
|
|
select_file = True,
|
|
callback = lambda f: self.set_line_edit_text("lineEdit_output", f[0])
|
|
)),
|
|
}
|
|
|
|
for button in buttons:
|
|
self.find(QPushButton, button).clicked.connect(buttons[button])
|
|
|
|
def accept(self):
|
|
if self.get_line_edit_text("lineEdit_name") == "":
|
|
self.message_box(
|
|
"A solver need a name",
|
|
"Please give a name to your solver"
|
|
)
|
|
else:
|
|
self.data = GenericSolver(self.get_line_edit_text("lineEdit_name"))
|
|
self.data.set_description(self.get_line_edit_text("lineEdit_description"))
|
|
self.data.set_input(
|
|
self.get_line_edit_text("lineEdit_input"),
|
|
self.get_line_edit_text("lineEdit_input_cmd")
|
|
)
|
|
self.data.set_solver(
|
|
self.get_line_edit_text("lineEdit_solver"),
|
|
self.get_line_edit_text("lineEdit_solver_cmd")
|
|
)
|
|
self.data.set_output(
|
|
self.get_line_edit_text("lineEdit_output"),
|
|
self.get_line_edit_text("lineEdit_output_cmd")
|
|
)
|
|
|
|
self.done(True)
|