Skip to content

feat(#69) : Gtk.FileDialog/AlertDialog sur GTK >= 4.10, formulaires modaux sans MessageDialog - #77

Merged
MathildeDec merged 1 commit into
devfrom
feat/69-gtk-filedialog-alertdialog
Oct 11, 2026
Merged

MathildeDec merged 1 commit into
devfrom
feat/69-gtk-filedialog-alertdialog

Conversation

@MathildeDec

Copy link
Copy Markdown
Collaborator

Ferme #69 (après validation sur une cible réelle, voir plus bas).

Versions GTK4 des cibles (relevées le 11/10/2026) : Debian 12 bookworm 4.8.3, Debian 13 trixie 4.18.6, Rocky/RHEL 9 4.12.3. Debian 12 étant < 4.10, l'issue n'est pas « non applicable » : la nouvelle API est choisie à l'exécution.

  • _choose_path (dossier .bin, champs « Parcourir ») : Gtk.FileDialog.select_folder/open + *_finish sur GTK >= 4.10, Gtk.FileChooserNative sinon. Annulation (GLib.Error) et fichiers sans chemin local ignorés.
  • _show_message (_show_dialog) : Gtk.AlertDialog, repli Gtk.MessageDialog.
  • Gtk.AlertDialog n'accepte aucun widget : les 3 confirmations qui en portent (désinstallation avec IP à retaper et case « supprimer le .bin », enregistrer un modèle, importer un modèle) passent par _open_form_dialog, une Gtk.Window modale non dépréciée, identique sur toutes les versions (Annuler, Échap et fermeture = refus ; réponse unique ; widgets lus avant destruction).
  • Tout reste dans switch_capture_gtk.py : aucun changement de packaging (.deb, .rpm, install.sh).

Tests : tests/test_gui_dialogs.py, 21 tests sous Xvfb (GTK 4.22, PyGObject système), dont le repli forcé sur l'ancienne API ; sautés sans PyGObject, comme les autres test_gui_* (donc aussi en CI actuelle). Suite complète sans PyGObject : 697 passés, 13 sautés. ruff check/format OK.

Reste avant de fermer l'issue (critère d'acceptation) : installer le .deb ou le .rpm et ouvrir la GUI sur une cible réelle.

Constat annexe : avec PyGObject réellement installé, tests/test_gtk_i18n_translations.py remplace sys.modules["gi"] par un faux module et fait échouer ~80 tests GUI exécutés après lui (préexistant sur dev, invisible en CI faute de PyGObject). Je l'ouvre en issue séparée.

…daux sans MessageDialog

- _choose_path et _show_message choisissent l'API à l'exécution :
  FileDialog/AlertDialog sur GTK >= 4.10 (Debian 13, Rocky/RHEL 9),
  repli FileChooserNative/MessageDialog sur Debian 12 (GTK 4.8.3).
- _open_form_dialog : Gtk.Window modale pour les 3 confirmations à
  widgets (désinstallation, enregistrer/importer un modèle), que
  AlertDialog ne sait pas porter.
- tests/test_gui_dialogs.py : 21 tests Xvfb, sautés sans PyGObject.
@MathildeDec
MathildeDec merged commit a04b1f5 into dev Oct 11, 2026
1 check passed
@MathildeDec
MathildeDec deleted the feat/69-gtk-filedialog-alertdialog branch October 11, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant