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:
parent
2964de5b14
commit
75a8b900e8
|
|
@ -186,6 +186,44 @@ func buildVideoClipsTab(state *appState) fyne.CanvasObject {
|
||||||
rebuildList = func() {
|
rebuildList = func() {
|
||||||
list.Objects = nil
|
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 len(state.authorClips) == 0 {
|
||||||
if emptyOverlay != nil {
|
if emptyOverlay != nil {
|
||||||
emptyOverlay.Show()
|
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
|
emptyLabel.Alignment = fyne.TextAlignCenter
|
||||||
emptyOverlay = container.NewCenter(emptyLabel)
|
emptyOverlay = container.NewCenter(emptyLabel)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user