Files
anonymisation/tools/test_gui_stop_button.md

93 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Test du Bouton "Arrêter" dans le GUI
## Fonctionnalité Implémentée
Le bouton "Arrêter le traitement" est **déjà implémenté** dans le GUI.
### Code Existant
1. **Bouton créé** (lignes 492-499 de `Pseudonymisation_Gui_V5.py`)
```python
self.btn_stop = tk.Button(
buttons_frame, text="Arrêter le traitement",
font=self._f_button, bg=CLR_RED, fg="white",
activebackground="#b91c1c", activeforeground="white",
relief=tk.FLAT, cursor="hand2", pady=10,
command=self._stop,
)
```
2. **Méthode _stop()** (lignes 735-739)
```python
def _stop(self):
"""Demande l'arrêt du traitement en cours."""
self._stop_requested = True
self.btn_stop.config(state=tk.DISABLED, bg="#fca5a5", text="Arrêt en cours...")
self.status_var.set("Arrêt demandé, fin du document en cours...")
```
3. **Vérification dans le worker** (lignes 752-755)
```python
for i, pdf in enumerate(pdfs, start=1):
# Vérifier si l'arrêt a été demandé
if self._stop_requested:
self.queue.put(UiMessage(kind=MsgType.LOG, text=f"\n⚠ Arrêt demandé par l'utilisateur"))
break
```
4. **Gestion des boutons au démarrage** (lignes 728-730)
```python
self._stop_requested = False
self.btn_run.pack_forget() # Masquer "Lancer"
self.btn_stop.pack(fill=tk.X) # Afficher "Arrêter"
```
5. **Restauration à la fin** (lignes 908-914)
```python
self.btn_stop.pack_forget() # Masquer "Arrêter"
self.btn_stop.config(state=tk.NORMAL, bg=CLR_RED, text="Arrêter le traitement")
self.btn_run.pack(fill=tk.X) # Réafficher "Lancer"
if self._stop_requested:
self.status_var.set(f"Interrompu : {msg.ok} traités, {msg.ko} erreurs.")
else:
self.status_var.set(f"Terminé : {msg.ok} OK, {msg.ko} erreurs.")
```
## Comportement
### Pendant le traitement:
- ✅ Le bouton "Lancer la pseudonymisation" est masqué
- ✅ Le bouton "Arrêter le traitement" (rouge) est affiché
- ✅ Cliquer sur "Arrêter" désactive le bouton et affiche "Arrêt en cours..."
- ✅ Le traitement s'arrête après le document en cours (pas d'interruption brutale)
### Après l'arrêt:
- ✅ Le bouton "Arrêter" est masqué
- ✅ Le bouton "Lancer" est réaffiché
- ✅ Le statut indique "Interrompu : X traités, Y erreurs"
- ✅ Les résultats partiels sont affichés
## Test Manuel
1. Lancer le GUI: `python Pseudonymisation_Gui_V5.py`
2. Sélectionner un dossier avec plusieurs PDFs (ex: `/home/dom/Téléchargements`)
3. Cliquer sur "Lancer la pseudonymisation"
4. Observer que le bouton "Arrêter le traitement" apparaît
5. Cliquer sur "Arrêter le traitement"
6. Observer que:
- Le bouton devient grisé avec "Arrêt en cours..."
- Le traitement s'arrête après le document en cours
- Le statut affiche "Interrompu : X traités, Y erreurs"
- Le bouton "Lancer" réapparaît
## Conclusion
**Le bouton "Arrêter" est déjà complètement implémenté et fonctionnel.**
Aucune modification n'est nécessaire. Le code gère correctement:
- L'affichage/masquage des boutons
- L'arrêt gracieux du traitement (fin du document en cours)
- La restauration de l'interface après l'arrêt
- Les messages de statut appropriés