Playlist rows were tall and showed the whole release name (VisionQuest.S01E01.No.Strings.DSNP.DV.HDR.WEB...), so you couldn't tell episodes apart at a glance. Rows are now compact and read like a track list: 1 S01E01 · No Strings 45:35.
MediaInfo::cleanTitle() (in qtpotato_core) drops release tags: S01E01 · No Strings, The Show · S02E10 when there is no episode title, Dune Part Two (2024), Frieren - 05 for [Group] … (1080p) [CRC] names. The full file name is in the tooltip.
Length of each local file is read with libavformat on a 2-thread pool and shown right-aligned (m:ss / h:mm:ss); streams are skipped.
Row height is the label plus smallSpacing; number, playing icon and length use smallFont; edges use largeSpacing. The remove button shows only on hover or keyboard focus.
Proof: unit tests for title cleaning and duration probing (ffmpeg-generated files); before/after screenshots from the real app (Union style, dark scheme) below.
Before
After (row 3 focused)
Reviewed with sol-loop: 2 rounds with gpt-6.1-sol. Sol verdict: approved.
Created with Claude Opus 5.5 in Claude Code (T3 Code), reviewed by GPT 6.1 Sol in Codex.
Closes #10
Playlist rows were tall and showed the whole release name (`VisionQuest.S01E01.No.Strings.DSNP.DV.HDR.WEB...`), so you couldn't tell episodes apart at a glance. Rows are now compact and read like a track list: `1 S01E01 · No Strings 45:35`.
- `MediaInfo::cleanTitle()` (in `qtpotato_core`) drops release tags: `S01E01 · No Strings`, `The Show · S02E10` when there is no episode title, `Dune Part Two (2024)`, `Frieren - 05` for `[Group] … (1080p) [CRC]` names. The full file name is in the tooltip.
- Length of each local file is read with libavformat on a 2-thread pool and shown right-aligned (`m:ss` / `h:mm:ss`); streams are skipped.
- Row height is the label plus `smallSpacing`; number, playing icon and length use `smallFont`; edges use `largeSpacing`. The remove button shows only on hover or keyboard focus.
Proof: unit tests for title cleaning and duration probing (ffmpeg-generated files); before/after screenshots from the real app (Union style, dark scheme) below.
| Before | After (row 3 focused) |
| --- | --- |
|  |  |
Reviewed with sol-loop: 2 rounds with gpt-6.1-sol. Sol verdict: approved.
Created with Claude Opus 5.5 in Claude Code (T3 Code), reviewed by GPT 6.1 Sol in Codex.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #10
Playlist rows were tall and showed the whole release name (
VisionQuest.S01E01.No.Strings.DSNP.DV.HDR.WEB...), so you couldn't tell episodes apart at a glance. Rows are now compact and read like a track list:1 S01E01 · No Strings 45:35.MediaInfo::cleanTitle()(inqtpotato_core) drops release tags:S01E01 · No Strings,The Show · S02E10when there is no episode title,Dune Part Two (2024),Frieren - 05for[Group] … (1080p) [CRC]names. The full file name is in the tooltip.m:ss/h:mm:ss); streams are skipped.smallSpacing; number, playing icon and length usesmallFont; edges uselargeSpacing. The remove button shows only on hover or keyboard focus.Proof: unit tests for title cleaning and duration probing (ffmpeg-generated files); before/after screenshots from the real app (Union style, dark scheme) below.
Reviewed with sol-loop: 2 rounds with gpt-6.1-sol. Sol verdict: approved.
Created with Claude Opus 5.5 in Claude Code (T3 Code), reviewed by GPT 6.1 Sol in Codex.
76ba7b0be0to3e65f21fcb