From 7bb86e2607952754b9240f4609a5a1753bfaa920 Mon Sep 17 00:00:00 2001 From: Djalim Simaila <DjalimS.pro@outlook.fr> Date: Fri, 28 Apr 2023 10:15:08 +0200 Subject: [PATCH 1/2] Added ErrorPopup window --- utils/gui/pyqt/error_popup/ErrorPopup.py | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 utils/gui/pyqt/error_popup/ErrorPopup.py diff --git a/utils/gui/pyqt/error_popup/ErrorPopup.py b/utils/gui/pyqt/error_popup/ErrorPopup.py new file mode 100644 index 0000000..50e52a3 --- /dev/null +++ b/utils/gui/pyqt/error_popup/ErrorPopup.py @@ -0,0 +1,32 @@ +from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5.QtWidgets import QMessageBox + +class ErrorPopup(object): + + def __init__(self,error_text,details = None,button_label = None,button_callback=None): + self.error_text = error_text + self.button_label = button_label + self.button_callback = button_callback + self.details = details + + + def show_popup(self): + msg = QMessageBox() + msg.setWindowTitle("Erreur") + msg.setText("Erreur: " + self.error_text) + msg.setIcon(QMessageBox.Critical) + + if self.button_label is not None and self.button_callback is not None: + msg.setStandardButtons(QMessageBox.Cancel|QMessageBox.Retry) + msg.setDefaultButton(QMessageBox.Cancel) + msg.button(QMessageBox.Cancel).clicked.connect(msg.close) + msg.button(QMessageBox.Retry).setText(self.button_label) + msg.button(QMessageBox.Retry).clicked.connect(self.button_callback) + else: + msg.setStandardButtons(QMessageBox.Ok) + msg.setDefaultButton(QMessageBox.Ok) + msg.button(QMessageBox.Ok).clicked.connect(msg.close) + msg.setInformativeText(self.error_text) + if self.details is not None: + msg.setDetailedText(self.details) + msg.exec_() \ No newline at end of file -- GitLab From 117a1de791203ed4b32cceaf171cb6c837e7560b Mon Sep 17 00:00:00 2001 From: Djalim Simaila <DjalimS.pro@outlook.fr> Date: Fri, 28 Apr 2023 10:15:48 +0200 Subject: [PATCH 2/2] Added Error management when no file or folder is selected --- utils/gui/pyqt/main_window/MainWindow.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/utils/gui/pyqt/main_window/MainWindow.py b/utils/gui/pyqt/main_window/MainWindow.py index d32585d..fa2e9db 100644 --- a/utils/gui/pyqt/main_window/MainWindow.py +++ b/utils/gui/pyqt/main_window/MainWindow.py @@ -11,6 +11,7 @@ from utils.gui.pyqt.main_window.UI_MainWindow import Ui_MainWindow from utils.gui.pyqt.main_window.Workers.DiscreteDataWorker import DiscreteDataProcessWorker from utils.gui.pyqt.main_window.Workers.PreProcessWorker import PreProcessWorker from utils.gui.pyqt.main_window.Workers.RawDataWorker import RawDataProcessWorker +from utils.gui.pyqt.error_popup.ErrorPopup import ErrorPopup class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): """ Main window of the application @@ -107,15 +108,19 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): """ Check if the input file is valid """ - if os.path.isfile(self.input_file_path.toPlainText()): - return True + if not os.path.isfile(self.input_file_path.toPlainText()): + ErrorPopup("Fichier d'entrée invalide",button_label="Choisir un fichier d'entrée",button_callback=self.select_file).show_popup() + return False + return True def check_output_folder(self): """ Check if the output folder is valid """ - if os.path.isdir(self.output_folder_path.toPlainText()): - return True + if not os.path.isdir(self.output_folder_path.toPlainText()): + ErrorPopup("Dossier de sortie invalide",button_label="Choisir un dossier de sortie",button_callback=self.select_folder).show_popup() + return False + return True ############################################################################### # # @@ -130,10 +135,8 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): Start the analyse """ if not self.check_input_file(): - self.input_file_path.setPlainText("Invalid file path") return if not self.check_output_folder(): - self.output_folder_path.setPlainText("Invalid folder path") return settings = SettingManager.get_instance() -- GitLab