78 lines
3.2 KiB
Python
78 lines
3.2 KiB
Python
from PyQt5.QtGui import QIcon
|
|
import utils.paths as paths
|
|
from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QFileDialog, QMainWindow, QWidget, QTextEdit
|
|
from core.verifier import Verifier # Assuming Verifier is defined in core.verifier
|
|
class Main(QMainWindow):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.verifier = Verifier()
|
|
|
|
# Configurer la fenêtre avant de créer les widgets
|
|
self.setMinimumSize(1000, 600)
|
|
self.setWindowTitle("HoDA_Verifier")
|
|
self.setWindowIcon(QIcon(paths.get_asset_path("icon")))
|
|
self.setup_ui()
|
|
|
|
def setup_ui(self):
|
|
# Create a central widget
|
|
central_widget = QWidget()
|
|
|
|
self.main_layout = QVBoxLayout(central_widget)
|
|
self.main_layout.setSpacing(20)
|
|
|
|
self.browse_layout = QHBoxLayout()
|
|
self.browse_layout.setSpacing(10)
|
|
# Create a QLineEdit for the path input
|
|
self.path_input = QLineEdit(self)
|
|
self.path_input.setPlaceholderText("Sélectionnes le fichier csv ->")
|
|
self.browse_layout.addWidget(self.path_input)
|
|
|
|
# Create a QPushButton to open the file dialog
|
|
self.browse_button = QPushButton("Parcourir", self)
|
|
self.browse_button.clicked.connect(self.open_file_dialog)
|
|
self.browse_layout.addWidget(self.browse_button)
|
|
|
|
# Create a QPushButton to verify the path
|
|
self.verify_button = QPushButton("Vérifier", self)
|
|
self.verify_button.clicked.connect(self.verify_file)
|
|
|
|
self.main_layout.addLayout(self.browse_layout)
|
|
|
|
# Create a QTextEdit for displaying verification results
|
|
self.results_display = QTextEdit(self)
|
|
self.results_display.setPlaceholderText("Les résultats de la vérification apparaîtront ici...")
|
|
self.results_display.setReadOnly(True) # Make it read-only
|
|
self.results_display.setMinimumHeight(200) # Set minimum height
|
|
self.main_layout.addWidget(self.results_display)
|
|
|
|
self.main_layout.addWidget(self.verify_button)
|
|
|
|
# Set the layout on the central widget
|
|
central_widget.setLayout(self.main_layout)
|
|
# Set the central widget
|
|
self.setCentralWidget(central_widget)
|
|
|
|
def open_file_dialog(self):
|
|
path, _ = QFileDialog.getOpenFileName(self, "Select File", "", "CSV Files (*.csv)")
|
|
if path:
|
|
self.path_input.setText(path)
|
|
|
|
def verify_file(self):
|
|
file_path = self.path_input.text()
|
|
if not file_path:
|
|
self.results_display.setText("Veuillez sélectionner un fichier CSV d'abord.")
|
|
return
|
|
|
|
result = self.verifier.verify(file_path)
|
|
|
|
# Clear previous results
|
|
self.results_display.clear()
|
|
|
|
if isinstance(result, list):
|
|
if result: # If there are issues
|
|
# Join the list of issues with newlines
|
|
self.results_display.setText("\n".join(result))
|
|
else: # No issues found
|
|
self.results_display.setText("✅ Aucune discordance trouvée ! Toutes les données correspondent.")
|
|
else: # If result is a string (error message)
|
|
self.results_display.setText(result) |