🔧 refactor(MainWindow.py): move connection of refresh_advanced_metrics button to its own method
🔧 refactor(MainWindow.py): rename process_advanced_data method to process_advanced_metrics to improve semantics 🔧 refactor(AdvancedDataWorker.py): add V_scan parameter to constructor to improve semantics 🔧 refactor(Settings.py): add conditional to set output_file_separator to '\t' if '\\t' is entered The refresh_advanced_metrics button is now connected to its own method to improve readability. The process_advanced_data method has been renamed to process_advanced_metrics to better reflect its purpose. The AdvancedDataWorker constructor now takes a V_scan parameter to improve semantics. The Settings class now has a conditional to set the output_file_separator to '\t' if '\\t' is entered to improve consistency.
This commit is contained in:
parent
033ecb96b2
commit
e1d3ad7a55
@ -44,13 +44,14 @@ 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.export_advanced_metrics.clicked.connect(self.export_advanced_data)
|
||||||
|
self.refresh_morphological_indicators.clicked.connect(self.refresh_advanced_data)
|
||||||
|
|
||||||
self.actionOuvrir_un_fichier.triggered.connect(self.select_file)
|
self.actionOuvrir_un_fichier.triggered.connect(self.select_file)
|
||||||
self.actionSauvegarder_le_model_redress.triggered.connect(self.save_model)
|
self.actionSauvegarder_le_model_redress.triggered.connect(self.save_model)
|
||||||
self.actionPr_f_rennces.triggered.connect(self.show_settings)
|
self.actionPr_f_rennces.triggered.connect(self.show_settings)
|
||||||
self.actionQuitter.triggered.connect(self.close)
|
self.actionQuitter.triggered.connect(self.close)
|
||||||
self.actionQ_propos_de_ce_logiciel.triggered.connect(self.show_about)
|
self.actionQ_propos_de_ce_logiciel.triggered.connect(self.show_about)
|
||||||
self.export_advanced_metrics.clicked.connect(self.export_advanced_data)
|
|
||||||
|
|
||||||
# add default layer combobox value and setup the listenerr when index change
|
# add default layer combobox value and setup the listenerr when index change
|
||||||
self.layer_ComboBox.addItems(['Aucune couche'])
|
self.layer_ComboBox.addItems(['Aucune couche'])
|
||||||
@ -136,7 +137,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
# #
|
# #
|
||||||
# #
|
# #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
def select_file(self):
|
def select_file(self):
|
||||||
"""
|
"""
|
||||||
Open a file dialog to select the input file,
|
Open a file dialog to select the input file,
|
||||||
@ -291,13 +292,14 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
# Start the thread
|
# Start the thread
|
||||||
self.processdiscrete_thread.start()
|
self.processdiscrete_thread.start()
|
||||||
|
|
||||||
def process_advanced_data(self, discrete_data:dict):
|
def process_advanced_data(self, discrete_data:dict, refresh:bool = False):
|
||||||
"""
|
"""
|
||||||
Start the analyse, create the thread and connect the signals.
|
Start the analyse, create the thread and connect the signals.
|
||||||
"""
|
"""
|
||||||
self.advanced_data_thread = QThread()
|
self.advanced_data_thread = QThread()
|
||||||
self.advanced_data_worker = AdvancedDataWorker("AdvancedDataProcessWorker",
|
self.advanced_data_worker = AdvancedDataWorker("AdvancedDataProcessWorker",
|
||||||
discrete_data)
|
discrete_data,
|
||||||
|
self.V_scan.value())
|
||||||
self.advanced_data_worker.moveToThread(self.advanced_data_thread)
|
self.advanced_data_worker.moveToThread(self.advanced_data_thread)
|
||||||
# Connect the signals
|
# Connect the signals
|
||||||
# Start
|
# Start
|
||||||
@ -307,7 +309,8 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.advanced_data_worker.progress.connect(self.update_progress_bar)
|
self.advanced_data_worker.progress.connect(self.update_progress_bar)
|
||||||
self.advanced_data_worker.processedData.connect(self.set_advanced_data)
|
self.advanced_data_worker.processedData.connect(self.set_advanced_data)
|
||||||
# Finished
|
# Finished
|
||||||
self.advanced_data_worker.finished.connect(self.finish_analyse)
|
if not refresh:
|
||||||
|
self.advanced_data_worker.finished.connect(self.finish_analyse)
|
||||||
self.advanced_data_worker.finished.connect(self.advanced_data_thread.quit)
|
self.advanced_data_worker.finished.connect(self.advanced_data_thread.quit)
|
||||||
self.advanced_data_worker.finished.connect(self.advanced_data_worker.deleteLater)
|
self.advanced_data_worker.finished.connect(self.advanced_data_worker.deleteLater)
|
||||||
self.advanced_data_thread.finished.connect(self.advanced_data_thread.deleteLater)
|
self.advanced_data_thread.finished.connect(self.advanced_data_thread.deleteLater)
|
||||||
@ -315,6 +318,12 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
# Start the thread
|
# Start the thread
|
||||||
self.advanced_data_thread.start()
|
self.advanced_data_thread.start()
|
||||||
|
|
||||||
|
def refresh_advanced_data(self):
|
||||||
|
"""
|
||||||
|
Start the analyse, create the thread and connect the signals.
|
||||||
|
"""
|
||||||
|
self.process_advanced_data(self.discrete_data, True)
|
||||||
|
|
||||||
def set_obj(self,obj:ScannedObject):
|
def set_obj(self,obj:ScannedObject):
|
||||||
"""
|
"""
|
||||||
Persists the pre-processed obj
|
Persists the pre-processed obj
|
||||||
@ -347,11 +356,19 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.tortuosity.setValue(advanced_data["Tortuosité"])
|
self.tortuosity.setValue(advanced_data["Tortuosité"])
|
||||||
self.volume.setValue(advanced_data["Volume en mm3"])
|
self.volume.setValue(advanced_data["Volume en mm3"])
|
||||||
self.surface.setValue(advanced_data["Surface en mm2"])
|
self.surface.setValue(advanced_data["Surface en mm2"])
|
||||||
self.mean_r_mean.setValue(advanced_data["Moyenne des rayons moyens"])
|
self.mean_r_mean.setValue(advanced_data["Moyenne des rayons moyens 〈R〉"])
|
||||||
self.sigma_r_mean.setValue(advanced_data["Ecart-type des rayons moyens"])
|
self.sigma_r_mean.setValue(advanced_data["Ecart-type des rayons moyens σ_〈R〉"])
|
||||||
self.sigma_r_tot.setValue(advanced_data["Sigma r tot"])
|
self.sigma_r_tot.setValue(advanced_data["σ_〈R〉^tot"])
|
||||||
self.MI_l.setValue(advanced_data["MI_l"])
|
self.MI_l.setValue(advanced_data["MI_l"])
|
||||||
self.MI_p.setValue(advanced_data["MI_p"])
|
self.MI_p.setValue(advanced_data["MI_p"])
|
||||||
|
self.MI_mR.setValue(advanced_data["MI_mR"])
|
||||||
|
self.MI_mH.setValue(advanced_data["MI_mH"])
|
||||||
|
#self.MI_mR_in.setValue(advanced_data["MI_mR_in"])
|
||||||
|
self.V_scan.setValue(advanced_data["V_scan"])
|
||||||
|
self.R_V_scan.setValue(advanced_data["R_V_scan"])
|
||||||
|
self.S_V_scan.setValue(advanced_data["S_V_scan"])
|
||||||
|
self.R_h.setValue(advanced_data["Rayon hydraulique R_h"])
|
||||||
|
self.HI.setValue(advanced_data["HI"])
|
||||||
|
|
||||||
def export_advanced_data(self):
|
def export_advanced_data(self):
|
||||||
"""
|
"""
|
||||||
@ -365,7 +382,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
"./",
|
"./",
|
||||||
"Fichier texte (*.txt)")
|
"Fichier texte (*.txt)")
|
||||||
advanced_data = {key : [round(value,6),] for key,value in self.advanced_data.items()}
|
advanced_data = {key : [round(value,6),] for key,value in self.advanced_data.items()}
|
||||||
string_data = format_data(advanced_data,"\t")
|
string_data = format_data(advanced_data,SettingManager.get_instance().get_setting("output_file_separator"))
|
||||||
save_output_file(file_path[0],string_data)
|
save_output_file(file_path[0],string_data)
|
||||||
|
|
||||||
def save_model(self):
|
def save_model(self):
|
||||||
|
@ -21,9 +21,10 @@ class AdvancedDataWorker(Worker):
|
|||||||
"""
|
"""
|
||||||
processedData = pyqtSignal(dict)
|
processedData = pyqtSignal(dict)
|
||||||
|
|
||||||
def __init__(self,name:str, discrete_data:dict):
|
def __init__(self,name:str, discrete_data:dict, V_scan:float):
|
||||||
super().__init__(name)
|
super().__init__(name)
|
||||||
self.discrete_data = discrete_data
|
self.discrete_data = discrete_data
|
||||||
|
self.V_scan = V_scan
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
@ -40,7 +41,7 @@ class AdvancedDataWorker(Worker):
|
|||||||
- MI_p
|
- MI_p
|
||||||
"""
|
"""
|
||||||
self.set_status("Calculating advanced data...")
|
self.set_status("Calculating advanced data...")
|
||||||
advanced_data = get_advanced_data(self.discrete_data,self.update_progress)
|
advanced_data = get_advanced_data(self.discrete_data, self.V_scan, self.update_progress)
|
||||||
self.processedData.emit(advanced_data)
|
self.processedData.emit(advanced_data)
|
||||||
self.set_status("Done")
|
self.set_status("Done")
|
||||||
self.finished.emit()
|
self.finished.emit()
|
@ -39,10 +39,16 @@ class Settings(QtWidgets.QMainWindow,Ui_Settings):
|
|||||||
|
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
|
"""
|
||||||
|
Accept the changes
|
||||||
|
"""
|
||||||
settings = SettingManager.get_instance()
|
settings = SettingManager.get_instance()
|
||||||
settings.set_setting('discretisation_method', self.discretisation_method.currentText())
|
settings.set_setting('discretisation_method', self.discretisation_method.currentText())
|
||||||
settings.set_setting('raw_data_suffix', self.raw_data_suffix.text())
|
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('discrete_data_suffix', self.discrete_data_suffix.text())
|
||||||
settings.set_setting('output_file_extension', self.extention.text())
|
settings.set_setting('output_file_extension', self.extention.text())
|
||||||
settings.set_setting('output_file_separator', self.separator.text())
|
if self.separator.text() == '\\t':
|
||||||
|
settings.set_setting('output_file_separator', '\t')
|
||||||
|
else:
|
||||||
|
settings.set_setting('output_file_separator', self.separator.text())
|
||||||
settings.set_setting('pretiffy_output_file', self.prettify.isChecked())
|
settings.set_setting('pretiffy_output_file', self.prettify.isChecked())
|
Loading…
Reference in New Issue
Block a user