ui: limit start screen to four recent videos

This commit is contained in:
2026-10-19 20:13:39 +02:00
parent 9f1dca3081
commit 885dea74f2
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ Builds are ad-hoc signed for personal use, not notarized. Bundled licenses and s
Open one or more local files with **⌘O**, drag them onto the video, or use Finder's **Open With**. A selection replaces the session's queue and plays in natural filename order (for example, episode 2 before episode 10). Open a YouTube video or Miruro episode with **⇧⌘O** or drop its link. Media starts automatically and resumes its saved position; finished videos restart from the beginning. Live and audio-only media do not save progress. Open one or more local files with **⌘O**, drag them onto the video, or use Finder's **Open With**. A selection replaces the session's queue and plays in natural filename order (for example, episode 2 before episode 10). Open a YouTube video or Miruro episode with **⇧⌘O** or drop its link. Media starts automatically and resumes its saved position; finished videos restart from the beginning. Live and audio-only media do not save progress.
The start screen uses a fixed 640 × 400-point two-pane window: Terebi's identity and version on the left; **Open…**, **Open Stream…**, and the six most recently played local files or YouTube videos on the right. Opening media restores normal resizing; closing media returns to the fixed start size. Shortcut hints follow your configured bindings. **Open Stream…** reveals a focused inline URL field. When the most recent item has saved progress, it appears once as a **Resume** row with its saved timestamp. Recent titles and ordering survive relaunches; failed opens are not added. Resolved streams are excluded from recents. The action pane scrolls, and drag-and-drop remains available. The start screen uses a fixed 640 × 400-point two-pane window: Terebi's identity and version on the left; **Open…**, **Open Stream…**, and at most the three most recently played local files or YouTube videos on the right, including any **Resume** row. Opening media restores normal resizing; closing media returns to the fixed start size. Shortcut hints follow your configured bindings. **Open Stream…** reveals a focused inline URL field. When the most recent item has saved progress, it appears once as a **Resume** row with its saved timestamp. Recent titles and ordering survive relaunches; failed opens are not added. Resolved streams are excluded from recents. The action pane scrolls, and drag-and-drop remains available.
Start-screen actions use 14-point text and begin 64 points below the top edge. Branding uses a 16-point app name and 12-point version; the drop hint uses 13-point text. Open actions have no idle fill; their background appears on hover or press. Start-screen actions use 14-point text and begin 64 points below the top edge. Branding uses a 16-point app name and 12-point version; the drop hint uses 13-point text. Open actions have no idle fill; their background appears on hover or press.
+1 -1
View File
@@ -2225,7 +2225,7 @@ private struct PlayerContent: View {
.help("Resume \(latest.title) at \(time(resumePosition))") .help("Resume \(latest.title) at \(time(resumePosition))")
.padding(.vertical, 8) .padding(.vertical, 8)
} }
ForEach(model.recentMedia.filter { resumePosition == nil || $0.id != latest?.id }) { item in ForEach(model.recentMedia.prefix(4).filter { resumePosition == nil || $0.id != latest?.id }) { item in
Button { model.open(item.url) } label: { Button { model.open(item.url) } label: {
HStack(spacing: 10) { HStack(spacing: 10) {
Image(systemName: item.url.isFileURL ? "doc.richtext" : "link") Image(systemName: item.url.isFileURL ? "doc.richtext" : "link")