feat(gtk): TranscriptWidget — dépliable sous le player audio (#8) #86

Merged
charles merged 3 commits from feat/8-transcript-widget into main 2026-04-06 02:01:21 +00:00
Owner

Résumé

Modèle de widget GTK4 pour l'affichage des transcriptions sous les messages audio.

Changements

  • crates/fractal-gtk/src/transcript_widget.rs : TranscriptWidgetModel
    • États : IdleLoadingReady(Transcript) / Error(msg)
    • show_action_button(), action_button_label() : "Transcrire" / "Réessayer"
    • confidence_css_class() : success / warning / error (libadwaita)
    • auto_transcribe, allow_matrix_annotation flags
    • Tests unitaires pour tous les états
  • crates/fractal-gtk/Cargo.toml : ajout dep fractal-stt
  • Point d'intégration : session/content/room_history/message_row/

Plan de test

  • cargo test -p fractal-gtk — 4 tests passent
  • État Idle → bouton "Transcrire" visible
  • État Error → bouton "Réessayer" visible

Closes #8

## Résumé Modèle de widget GTK4 pour l'affichage des transcriptions sous les messages audio. ## Changements - `crates/fractal-gtk/src/transcript_widget.rs` : `TranscriptWidgetModel` - États : `Idle` → `Loading` → `Ready(Transcript)` / `Error(msg)` - `show_action_button()`, `action_button_label()` : \"Transcrire\" / \"Réessayer\" - `confidence_css_class()` : `success` / `warning` / `error` (libadwaita) - `auto_transcribe`, `allow_matrix_annotation` flags - Tests unitaires pour tous les états - `crates/fractal-gtk/Cargo.toml` : ajout dep `fractal-stt` - Point d'intégration : `session/content/room_history/message_row/` ## Plan de test - [ ] `cargo test -p fractal-gtk` — 4 tests passent - [ ] État `Idle` → bouton \"Transcrire\" visible - [ ] État `Error` → bouton \"Réessayer\" visible Closes #8
feat(gtk): add transcript_widget module (#8)
Some checks failed
CI / cargo test (pull_request) Has been cancelled
CI / cargo check (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
aea1628623
charles deleted branch feat/8-transcript-widget 2026-04-06 02:01:21 +00:00
Sign in to join this conversation.
No description provided.