feat: adiciona funcionalidade de cancelamento de geração de faixas de áudio e atualiza o painel de execução
This commit is contained in:
+6
-4
@@ -1,7 +1,7 @@
|
||||
# Progresso de Implementação
|
||||
|
||||
**Data:** 28/02/2026
|
||||
**Status:** Fases 1–6 concluídas + exportação de faixa + exibição/remoção de faixas adicionadas + layout responsivo + progresso em tempo real — compilando, testes passando, aplicação executável
|
||||
**Status:** Fases 1–6 concluídas + exportação de faixa + exibição/remoção de faixas adicionadas + layout responsivo + progresso em tempo real + cancelamento de geração — compilando, testes passando, aplicação executável
|
||||
**Referência:** DEVELOPMENT_PLAN.md v1.0
|
||||
|
||||
---
|
||||
@@ -16,6 +16,7 @@ Após a conclusão das fases, foram implementadas funcionalidades adicionais:
|
||||
- Exibição das faixas externas adicionadas com opção de remoção individual
|
||||
- Layout responsivo com painéis fixos (cabeçalho, rodapé, barra lateral) e área central com scroll
|
||||
- Progresso em tempo real via `run_ffmpeg_async` (Opção A: `std::sync::mpsc` em toda a cadeia)
|
||||
- Cancelamento de geração em andamento via botão "Cancelar" — encerra o processo FFmpeg filho imediatamente
|
||||
|
||||
---
|
||||
|
||||
@@ -86,11 +87,11 @@ src/
|
||||
├── infrastructure/
|
||||
│ ├── mod.rs
|
||||
│ └── process/
|
||||
│ └── mod.rs — run_ffmpeg_async (tokio), validate_dependencies()
|
||||
└── mod.rs — run_ffmpeg_async (tokio, cancel via oneshot), validate_dependencies()
|
||||
│
|
||||
└── ui/
|
||||
├── mod.rs
|
||||
├── app.rs — eframe::App; Project como única fonte de verdade
|
||||
├── app.rs — eframe::App; Project como única fonte de verdade; cancel_tx para interromper FFmpeg
|
||||
└── components/
|
||||
├── mod.rs
|
||||
├── video_selector.rs — seleção do vídeo base
|
||||
@@ -99,7 +100,7 @@ src/
|
||||
├── add_subtitle_form.rs — formulário: legenda externa
|
||||
├── sync_offset_field.rs — campo de atraso em segundos
|
||||
├── language_field.rs — campo de idioma ISO 639-2
|
||||
└── execution_panel.rs — botão gerar, progresso, erros
|
||||
└── execution_panel.rs — botão gerar, botão cancelar, progresso, estados: Idle/Running/Success/Cancelled/Error
|
||||
```
|
||||
|
||||
---
|
||||
@@ -195,6 +196,7 @@ rfd = "0.14"
|
||||
- [x] Exportar faixa de áudio ou legenda existente para arquivo separado
|
||||
- [x] Exibição de faixas externas adicionadas com opção de remover
|
||||
- [x] Progresso em tempo real via `run_ffmpeg_async` — `run_ffmpeg_async` usa `std::sync::mpsc::Sender<String>`; `start_generation` cria tokio Runtime + thread encaminhadora; cada linha de stderr do FFmpeg aparece no log antes do término
|
||||
- [x] Cancelamento de geração — botão "Cancelar" visível durante `Running`; sinal via `tokio::sync::oneshot`; `child.kill().await` no `tokio::select!`; estado `ExecutionState::Cancelled` exibido em amarelo
|
||||
- [ ] Exibição do comando gerado em modo debug
|
||||
|
||||
### Qualidade
|
||||
|
||||
Reference in New Issue
Block a user