feat: adiciona funcionalidade de remoção de faixas externas e atualiza o layout da UI
This commit is contained in:
+18
-9
@@ -1,7 +1,7 @@
|
||||
# Progresso de Implementação
|
||||
|
||||
**Data:** 28/02/2026
|
||||
**Status:** Fases 1–6 concluídas + exportação de faixa implementada — 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 — compilando, testes passando, aplicação executável
|
||||
**Referência:** DEVELOPMENT_PLAN.md v1.0
|
||||
|
||||
---
|
||||
@@ -11,8 +11,11 @@
|
||||
Todas as 6 fases do plano de desenvolvimento foram implementadas. O projeto compila sem erros,
|
||||
31 testes unitários passam e a aplicação pode ser executada com `cargo run`.
|
||||
|
||||
Após a conclusão das fases, foi implementada a funcionalidade de exportação de faixa de áudio
|
||||
ou legenda diretamente da lista de faixas existentes.
|
||||
Após a conclusão das fases, foram implementadas funcionalidades adicionais:
|
||||
- Exportação de faixa de áudio ou legenda diretamente da lista de faixas existentes
|
||||
- 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)
|
||||
|
||||
---
|
||||
|
||||
@@ -65,6 +68,7 @@ src/
|
||||
│ ├── adjust_sync.rs — altera SyncOffset de faixa externa
|
||||
│ ├── edit_existing_track_sync.rs — altera SyncOffset de faixa existente
|
||||
│ ├── export_track.rs — exporta faixa de áudio ou legenda para arquivo
|
||||
│ ├── remove_track.rs — remove faixa externa do projeto pelo TrackId
|
||||
│ ├── set_track_language.rs — altera idioma de faixa externa
|
||||
│ └── generate_output.rs — constrói comando e delega ao MediaProcessorPort
|
||||
│
|
||||
@@ -91,8 +95,7 @@ src/
|
||||
├── mod.rs
|
||||
├── video_selector.rs — seleção do vídeo base
|
||||
├── output_selector.rs — seleção do arquivo de saída (.mkv)
|
||||
├── existing_track_list.rs — lista faixas detectadas + edição de offset
|
||||
├── add_audio_track_form.rs — formulário: áudio externo
|
||||
├── existing_track_list.rs — lista faixas detectadas + edição de offset│ ├── added_track_list.rs — lista faixas externas adicionadas + botão remover ├── add_audio_track_form.rs — formulário: áudio externo
|
||||
├── 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
|
||||
@@ -101,7 +104,7 @@ src/
|
||||
|
||||
---
|
||||
|
||||
## Testes Unitários (31/31 passando)
|
||||
## Testes Unitários (33/33 passando)
|
||||
|
||||
### Domain — Value Objects
|
||||
| Teste | Resultado |
|
||||
@@ -154,6 +157,12 @@ src/
|
||||
| `export_track::exporta_legenda_output_e_ultimo_argumento` | ✅ |
|
||||
| `export_track::rejeita_faixa_de_video` — retorna erro para `TrackKind::Video` | ✅ |
|
||||
|
||||
### Application — RemoveTrack
|
||||
| Teste | Resultado |
|
||||
|-------|-----------|
|
||||
| `remove_track::remove_faixa_existente` — faixa removida do Vec | ✅ |
|
||||
| `remove_track::erro_se_id_inexistente` — retorna erro se id não existe | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## Dependências (Cargo.toml)
|
||||
@@ -184,8 +193,8 @@ rfd = "0.14"
|
||||
|
||||
### Funcional
|
||||
- [x] Exportar faixa de áudio ou legenda existente para arquivo separado
|
||||
- [ ] Exibição de faixas externas adicionadas com opção de remover
|
||||
- [ ] Progresso em tempo real via `run_ffmpeg_async` (infrastructure já implementada, UI usa thread bloqueante por ora)
|
||||
- [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
|
||||
- [ ] Exibição do comando gerado em modo debug
|
||||
|
||||
### Qualidade
|
||||
@@ -194,7 +203,7 @@ rfd = "0.14"
|
||||
- [ ] Corrigir warnings de `unused` e `dead_code` remanescentes
|
||||
|
||||
### UI
|
||||
- [ ] Layout responsivo mais refinado (scroll nas listas longas)
|
||||
- [x] Layout responsivo mais refinado
|
||||
- [ ] Persistência do estado do projeto em disco (serde já disponível)
|
||||
- [ ] Mensagens de erro mais amigáveis na UI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user