feat: TranscriptWidget ViewModel + SttConfig (#8) #103
No reviewers
Labels
No labels
module:M0-setup
module:M1-stt
module:M1-stt
module:M2-ai
module:M2-ai
module:M3-rich
module:M3-rich
module:M4-bridge
module:M4-bridge
module:M5-bonus
module:M5-bonus
module:setup
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:chore
type:chore
type:feature
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/my-fractal!103
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/8-transcript-widget"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
Implémente l'issue #8 — UI
TranscriptWidgetdépliable sous le player audio.Puisque
fractal-gtkn'a pas encore de dépendances GTK4 complètes, cette PR établit la couche ViewModel (GTK-agnostique) qui contient toute la logique du widget. Les bindings GTK4 réels (GtkExpander/GtkRevealer) seront branchés quand la migration GTK4 sera complète.Changements
crates/fractal-gtk/Cargo.toml: ajout des dépendancesfractal-stt,serde,serde_jsoncrates/fractal-gtk/src/transcript_widget.rs(nouveau) :TranscriptState: enum des états (Idle,Loading,Ready { transcript, expanded },Error { message })ConfidenceBadgeColor: badge vert/orange/rouge mappé depuisConfidence, aveccss_class()pour libadwaitaSttConfig: config avecauto_transcribe: booletshow_annotation_button: boolTranscriptViewModel: view-model complet avec transitions d'état,toggle_expanded(),confidence_badge(),should_auto_transcribe()crates/fractal-gtk/src/lib.rs:pub usedes 4 types publicsCritères d'acceptation couverts
Idle+start_transcription()Ready { expanded }+toggle_expanded()ConfidenceBadgeColor::from_confidence()+css_class()SttConfig::auto_transcribe+should_auto_transcribe()TranscriptState::LoadingTranscriptState::Error+retry()SttConfig::show_annotation_button(optionnel, présent dans le modèle)Plan de test
cargo test -p fractal-gtk— les 10 tests unitaires du moduletranscript_widget::testsdoivent passerTranscriptState::Ready { expanded: true }passe àfalseaprèstoggle_expanded()ConfidenceBadgeColor::css_class()retourne"success"/"warning"/"error"SttConfig { auto_transcribe: true }fait retournertrueàshould_auto_transcribe()Closes #8
TranscriptWidget+ bouton Transcrire + mode auto + sélecteur de langue #79Pull request closed