Tags: quink-black/idiff
Tags
Narrow selection on cross-comparison mark_as_reference When an external client marks reference entries across multiple comparisons in sequence (e.g. an MCP agent calling library.set_reference once per file in a target directory), each call landed in a different comparison and inserted into the selection unconditionally. The result violated the Group-by-Name invariant that the selection lives in a single comparison: the viewport ended up diffing unrelated images, and the GUI Group-by-Name list could no longer reason about an active group. When the new reference targets a different comparison than the current coherent single-comparison selection, narrow the selection to the new comparison's members first -- the same behaviour as click_in_group()'s group-switch branch. Heterogeneous (flat-mode) and empty selections still fall through to the legacy insert path so cross-comparison flat selections continue to work. Per-comparison references recorded along the way are unaffected: revisiting an earlier comparison still restores its pinned reference via apply_comparison_reference.
Strip path separators when computing group keys
The image-list "Group by Name" view buckets entries by the stem of
ImageEntry::filename. The comparison-config flow can override that
field with a path-style display label such as "seedvr2_1x/role1.png"
and "4k/role1.png", which previously hashed to two different stems
("seedvr2_1x/role1" and "4k/role1") and turned every entry into its
own singleton group. Clicks then never matched the active group, so
the panel ended up with selected entries scattered across several
visual groups instead of switching atomically.
Strip the leading directory from the input before splitting off the
extension, treating both '/' and '\\' as separators. Existing call
sites that already pass a bare basename are unaffected.
Strip path separators when computing group keys
The image-list "Group by Name" view buckets entries by the stem of
ImageEntry::filename. The comparison-config flow can override that
field with a path-style display label such as "seedvr2_1x/role1.png"
and "4k/role1.png", which previously hashed to two different stems
("seedvr2_1x/role1" and "4k/role1") and turned every entry into its
own singleton group. Clicks then never matched the active group, so
the panel ended up with selected entries scattered across several
visual groups instead of switching atomically.
Strip the leading directory from the input before splitting off the
extension, treating both '/' and '\\' as separators. Existing call
sites that already pass a bare basename are unaffected.
Fix YUV parameter dialog, add FFmpeg fallback, and show load errors YUV dialog overhaul: pixel-format Custom field now activates on click; colour metadata is no longer guessed from filenames and unknown values are dropped on load. All dialog settings persist across sessions. FFmpeg fallback: files whose extension is not in the image loader whitelist are now routed to FFmpeg (covers y4m and other containers). Load failure feedback: a modal dialog now appears when an image fails to load or reload, replacing the easy-to-miss status-bar-only message. Group by Name: new filename-based grouping with visual indicators, Shift+click range select, and Select Group context menu.
PreviousNext