feat(author): Add VIDEO_TS folder burning UI support

Added visual feedback in the Author module when a VIDEO_TS folder is loaded:
- Display VIDEO_TS path with info card in Videos tab
- Show message that folder will be burned directly without re-encoding
- Add Remove button to clear VIDEO_TS folder
- Update empty state message to indicate VIDEO_TS folder support

Backend support for VIDEO_TS burning was already implemented, this adds
the missing UI elements to show users when a VIDEO_TS folder is loaded.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Stu Leak 2025-12-30 21:50:12 -05:00
parent 2964de5b14
commit 75a8b900e8

View File

@ -186,6 +186,44 @@ func buildVideoClipsTab(state *appState) fyne.CanvasObject {
rebuildList = func() {
list.Objects = nil
// Show VIDEO_TS folder if loaded
if state.authorVideoTSPath != "" {
if emptyOverlay != nil {
emptyOverlay.Hide()
}
videoTSLabel := widget.NewLabel("VIDEO_TS Folder:")
videoTSLabel.TextStyle = fyne.TextStyle{Bold: true}
pathLabel := widget.NewLabel(state.authorVideoTSPath)
pathLabel.Wrapping = fyne.TextWrapBreak
removeBtn := widget.NewButton("Remove", func() {
state.authorVideoTSPath = ""
state.authorOutputType = "dvd"
rebuildList()
state.updateAuthorSummary()
})
removeBtn.Importance = widget.MediumImportance
infoLabel := widget.NewLabel("This VIDEO_TS folder will be burned directly to ISO without re-encoding.")
infoLabel.TextStyle = fyne.TextStyle{Italic: true}
infoLabel.Wrapping = fyne.TextWrapWord
row := container.NewBorder(
nil,
nil,
nil,
removeBtn,
container.NewVBox(videoTSLabel, pathLabel, infoLabel),
)
cardBg := canvas.NewRectangle(utils.MustHex("#171C2A"))
cardBg.CornerRadius = 6
cardBg.SetMinSize(fyne.NewSize(0, videoTSLabel.MinSize().Height+pathLabel.MinSize().Height+infoLabel.MinSize().Height+20))
list.Add(container.NewPadded(container.NewMax(cardBg, row)))
list.Refresh()
return
}
if len(state.authorClips) == 0 {
if emptyOverlay != nil {
emptyOverlay.Show()
@ -315,7 +353,7 @@ func buildVideoClipsTab(state *appState) fyne.CanvasObject {
}
})
emptyLabel := widget.NewLabel("Drag and drop video files here\nor click 'Add Files' to select videos")
emptyLabel := widget.NewLabel("Drag and drop video files or VIDEO_TS folder here\nor click 'Add Files' to select videos")
emptyLabel.Alignment = fyne.TextAlignCenter
emptyOverlay = container.NewCenter(emptyLabel)