Finished settings

This commit is contained in:
Djalim Simaila 2023-04-27 14:03:45 +02:00
parent ff20488ceb
commit 5a546b5e9c
5 changed files with 218 additions and 2 deletions

View File

@ -3,6 +3,7 @@ from PyQt5 import QtWidgets
from PyQt5.QtCore import QThread from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QFileDialog, QWidget from PyQt5.QtWidgets import QFileDialog, QWidget
from utils.files.input import ScannedObject from utils.files.input import ScannedObject
from utils.gui.pyqt.settings.Settings import Settings
from utils.settings.SettingManager import SettingManager from utils.settings.SettingManager import SettingManager
from utils.graph2D.visplot_render import cross_section, render2D from utils.graph2D.visplot_render import cross_section, render2D
from utils.graph3D.visplot_render import render3D from utils.graph3D.visplot_render import render3D
@ -24,6 +25,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.input_file_choose_btn.clicked.connect(self.select_file) self.input_file_choose_btn.clicked.connect(self.select_file)
self.output_folder_choose_btn.clicked.connect(self.select_folder) self.output_folder_choose_btn.clicked.connect(self.select_folder)
self.show_graph_checkbox.stateChanged.connect(self.toggle_graphs) self.show_graph_checkbox.stateChanged.connect(self.toggle_graphs)
self.actionPr_f_rennces.triggered.connect(self.show_settings)
self.graphType = [ self.graphType = [
@ -74,9 +76,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
for slot_nb,slot in enumerate(self.slots): for slot_nb,slot in enumerate(self.slots):
slot[1] = SettingManager.get_instance().get_last_graph(slot_nb) slot[1] = SettingManager.get_instance().get_last_graph(slot_nb)
print(slot[1])
self.comboBoxes[slot_nb].setCurrentText(slot[1]) self.comboBoxes[slot_nb].setCurrentText(slot[1])
self.settings_window = Settings()
self.threads = [] self.threads = []
############################################################################### ###############################################################################
@ -293,3 +296,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
Set the status of the analyse Set the status of the analyse
""" """
self.status_text.setText(status) self.status_text.setText(status)
def show_settings(self):
"""
Show the settings window
"""
self.settings_window.show()

View File

@ -0,0 +1,40 @@
import os
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QWidget
from utils.files.input import ScannedObject
from utils.gui.pyqt.settings.UI_Settings import Ui_Settings
from utils.settings.SettingManager import SettingManager
class Settings(QtWidgets.QMainWindow,Ui_Settings):
def __init__(self, parent=None):
super().__init__(parent)
# Retrieve the UI
self.setupUi(self)
# Setup buttons listeners
settings = SettingManager.get_instance()
self.discretisation_method.addItems(settings.get_setting('discretisation_methods'))
self.discretisation_method.setCurrentText(settings.get_setting('discretisation_method'))
self.raw_data_suffix.setText(settings.get_setting('raw_data_suffix'))
self.discrete_data_suffix.setText(settings.get_setting('discrete_data_suffix'))
self.extention.setText(settings.get_setting('output_file_extension'))
self.separator.setText(settings.get_setting('output_file_separator'))
self.prettify.setChecked(settings.get_setting('pretiffy_output_file'))
#Connect to onchanged actions
self.discretisation_method.currentTextChanged.connect(self.accept)
self.raw_data_suffix.textChanged.connect(self.accept)
self.discrete_data_suffix.textChanged.connect(self.accept)
self.extention.textChanged.connect(self.accept)
self.separator.textChanged.connect(self.accept)
self.prettify.stateChanged.connect(self.accept)
def accept(self):
settings = SettingManager.get_instance()
settings.set_setting('discretisation_method', self.discretisation_method.currentText())
settings.set_setting('raw_data_suffix', self.raw_data_suffix.text())
settings.set_setting('discrete_data_suffix', self.discrete_data_suffix.text())
settings.set_setting('output_file_extension', self.extention.text())
settings.set_setting('output_file_separator', self.separator.text())
settings.set_setting('pretiffy_output_file', self.prettify.isChecked())

View File

@ -0,0 +1,75 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'settings.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Settings(object):
def setupUi(self, Settings):
Settings.setObjectName("Settings")
Settings.resize(712, 213)
self.centralwidget = QtWidgets.QWidget(Settings)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.gridLayout_2 = QtWidgets.QGridLayout()
self.gridLayout_2.setObjectName("gridLayout_2")
self.discretisation_method_label = QtWidgets.QLabel(self.centralwidget)
self.discretisation_method_label.setObjectName("discretisation_method_label")
self.gridLayout_2.addWidget(self.discretisation_method_label, 0, 0, 1, 1)
self.discretisation_method = QtWidgets.QComboBox(self.centralwidget)
self.discretisation_method.setObjectName("discretisation_method")
self.gridLayout_2.addWidget(self.discretisation_method, 0, 1, 1, 1)
self.raw_data_suffix_label = QtWidgets.QLabel(self.centralwidget)
self.raw_data_suffix_label.setObjectName("raw_data_suffix_label")
self.gridLayout_2.addWidget(self.raw_data_suffix_label, 1, 0, 1, 1)
self.raw_data_suffix = QtWidgets.QLineEdit(self.centralwidget)
self.raw_data_suffix.setObjectName("raw_data_suffix")
self.gridLayout_2.addWidget(self.raw_data_suffix, 1, 1, 1, 1)
self.discrete_data_suffix_label = QtWidgets.QLabel(self.centralwidget)
self.discrete_data_suffix_label.setObjectName("discrete_data_suffix_label")
self.gridLayout_2.addWidget(self.discrete_data_suffix_label, 2, 0, 1, 1)
self.discrete_data_suffix = QtWidgets.QLineEdit(self.centralwidget)
self.discrete_data_suffix.setObjectName("discrete_data_suffix")
self.gridLayout_2.addWidget(self.discrete_data_suffix, 2, 1, 1, 1)
self.extention_label = QtWidgets.QLabel(self.centralwidget)
self.extention_label.setObjectName("extention_label")
self.gridLayout_2.addWidget(self.extention_label, 3, 0, 1, 1)
self.extention = QtWidgets.QLineEdit(self.centralwidget)
self.extention.setObjectName("extention")
self.gridLayout_2.addWidget(self.extention, 3, 1, 1, 1)
self.separator_label = QtWidgets.QLabel(self.centralwidget)
self.separator_label.setObjectName("separator_label")
self.gridLayout_2.addWidget(self.separator_label, 4, 0, 1, 1)
self.separator = QtWidgets.QLineEdit(self.centralwidget)
self.separator.setObjectName("separator")
self.gridLayout_2.addWidget(self.separator, 4, 1, 1, 1)
self.prettify_label = QtWidgets.QLabel(self.centralwidget)
self.prettify_label.setObjectName("prettify_label")
self.gridLayout_2.addWidget(self.prettify_label, 5, 0, 1, 1)
self.prettify = QtWidgets.QCheckBox(self.centralwidget)
self.prettify.setText("")
self.prettify.setObjectName("prettify")
self.gridLayout_2.addWidget(self.prettify, 5, 1, 1, 1)
self.gridLayout.addLayout(self.gridLayout_2, 0, 0, 1, 1)
Settings.setCentralWidget(self.centralwidget)
self.retranslateUi(Settings)
QtCore.QMetaObject.connectSlotsByName(Settings)
def retranslateUi(self, Settings):
_translate = QtCore.QCoreApplication.translate
Settings.setWindowTitle(_translate("Settings", "Préférences"))
self.discretisation_method_label.setText(_translate("Settings", "Methode de discretisation"))
self.raw_data_suffix_label.setText(_translate("Settings", "Suffixe des fichiers de données brutes"))
self.discrete_data_suffix_label.setText(_translate("Settings", "Suffixe des fichiers de données discretisées"))
self.extention_label.setText(_translate("Settings", "Extensions des fichiers de sorties"))
self.separator_label.setText(_translate("Settings", "Separateur de colone"))
self.prettify_label.setText(_translate("Settings", "Aligner les colones"))

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Settings</class>
<widget class="QMainWindow" name="Settings">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>712</width>
<height>213</height>
</rect>
</property>
<property name="windowTitle">
<string>Préférences</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="discretisation_method_label">
<property name="text">
<string>Methode de discretisation</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="discretisation_method"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="raw_data_suffix_label">
<property name="text">
<string>Suffixe des fichiers de données brutes</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="raw_data_suffix"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="discrete_data_suffix_label">
<property name="text">
<string>Suffixe des fichiers de données discretisées</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="discrete_data_suffix"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="extention_label">
<property name="text">
<string>Extensions des fichiers de sorties</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="extention"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="separator_label">
<property name="text">
<string>Separateur de colone</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="separator"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="prettify_label">
<property name="text">
<string>Aligner les colones</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="prettify">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -34,6 +34,7 @@ class SettingManager:
self.settings['repo'] = 'https://forgemia.inra.fr/scanner3d/analysemorphologique' self.settings['repo'] = 'https://forgemia.inra.fr/scanner3d/analysemorphologique'
self.settings['lastGraph'] = ["Aucun" for i in range(11)] self.settings['lastGraph'] = ["Aucun" for i in range(11)]
self.settings['discretisation_method'] = 'Z0-Zi >= DeltaZ' # 'Z0-Zi < DeltaZ' self.settings['discretisation_method'] = 'Z0-Zi >= DeltaZ' # 'Z0-Zi < DeltaZ'
self.settings['discretisation_methods'] = ['Z0-Zi >= DeltaZ', 'Z0-Zi < DeltaZ']
self.settings['raw_data_suffix'] = '_delta_{delta_z}_analyse_brute' self.settings['raw_data_suffix'] = '_delta_{delta_z}_analyse_brute'
self.settings['discrete_data_suffix'] = '_delta_{delta_z}_analyse_rayon' self.settings['discrete_data_suffix'] = '_delta_{delta_z}_analyse_rayon'
self.settings['output_file_extension'] = '.txt' self.settings['output_file_extension'] = '.txt'