From 5c8ad4e355f46ed517db6419c3dc092b1a7ce39b Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Wed, 31 Dec 2025 15:12:24 -0500 Subject: [PATCH] feat(author): Clear DVD title on module open and sync between tabs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DVD title now starts empty each time Author module is opened - Added DVD Title entry field to Videos tab - Both Videos and Settings tab title fields update the same state - Both trigger summary update and config persistence 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- author_module.go | 18 +++++++++++++++++- main.go | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/author_module.go b/author_module.go index 7888fca..6a331e1 100644 --- a/author_module.go +++ b/author_module.go @@ -370,12 +370,28 @@ func buildVideoClipsTab(state *appState) fyne.CanvasObject { listArea := container.NewMax(dropTarget, emptyOverlay) + // DVD Title entry (synced with Settings tab) + dvdTitleEntry := widget.NewEntry() + dvdTitleEntry.SetPlaceHolder("DVD Title") + dvdTitleEntry.SetText(state.authorTitle) + dvdTitleEntry.OnChanged = func(value string) { + state.authorTitle = value + state.updateAuthorSummary() + state.persistAuthorConfig() + } + // Note about chapter names chapterNote := widget.NewLabel("Chapter names are saved for future DVD menu support") chapterNote.TextStyle = fyne.TextStyle{Italic: true} controls := container.NewBorder( - container.NewVBox(widget.NewLabel("Videos:"), chapterNote), + container.NewVBox( + widget.NewLabel("DVD Title:"), + dvdTitleEntry, + widget.NewSeparator(), + widget.NewLabel("Videos:"), + chapterNote, + ), container.NewVBox(chapterToggle, container.NewHBox(addBtn, clearBtn, addQueueBtn, compileBtn)), nil, nil, diff --git a/main.go b/main.go index 8fe80b3..ed36902 100644 --- a/main.go +++ b/main.go @@ -3183,6 +3183,9 @@ func (s *appState) showAuthorView() { s.authorSceneThreshold = 0.3 } + // Clear DVD title for fresh start + s.authorTitle = "" + s.setContent(buildAuthorView(s)) }