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