Commit Graph
4935 Commits
Author SHA1 Message Date
FredApps 69d285c5ca Merge pull request #2600 from insideTheFlux/fix/2571-export-subfolder
LR-EXP-LOCATION: an export subfolder never leaves the destination folder (#2571)
2026-11-05 04:36:44 +01:00
FredAppsandClaude Opus 5.5 74be7205d0 About: credits tables fit without side-scrolling and their columns resize (#3726)
* About: credits tables fit without side-scrolling and their columns resize

The Contributors table and the Models table were egui Grids inside a
two-way scroll area: they opened wider than the dialog, so they scrolled
sideways, and Company and Model sat almost touching. Both are now
egui_extras tables. Each column opens at the width of its header and widest
cell, the spare width goes to the text columns (Name; Company and Model),
and every column edge can be dragged. Widening a column grows the table
like a spreadsheet, and only then does it scroll sideways; the header stays
put while the rows scroll. Counts and dates are right-aligned and every
cell is vertically centred.

The sorted column stays highlighted and its direction shows on the
toolbar's sort-order button, so headers no longer reserve room for an
arrow (the sorted header's chevron button is a highlighted label now). The opening widths come from fit_widths, a pure function with unit
tests that a fitted table fills its room exactly and that only the text
columns give way when room is short.

The About dialog opens 820 points wide, so every column fits at its natural width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Let every credits column be dragged, and refit changed tables

The last column was egui's remainder column, which has no drag handle, so
it could only be resized from the edge before it. It is now an ordinary
column with its own handle.

A table keeps its column widths, so switching to a longer name left the
Name column at its old width and clipped the text. The table now goes
back to the opening fit whenever that fit changes: a longer widest cell
or a resized window. Dragged widths are dropped at that point.

fit_widths could overflow the room when one column hit the minimum,
because the other columns did not take up its share. Columns now give
way in proportion to their width above the minimum.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Refit credits tables on what they measure, not the fitted widths

Comparing the fitted widths missed the case it was meant for. Name is the
only growing column, so a longer name takes its extra width from the
spare room and the fit comes out the same: a dragged Name width stayed,
clipping the longer name.

It could also drop dragged widths by accident. The fit comes from the
available width inside the scroll area, which scrolling can nudge, so
scrolling a widened table could reset it.

The table now compares the natural widths and the clip rect's width,
which scrolling does not move.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 04:33:56 +01:00
FredApps e0ecefd84f Merge storytold/main into fix/2571-export-subfolder 2026-11-05 04:02:08 +01:00
JordyUSAandClaude Opus 5.5 c77770ee44 LR-VIEW-HISTOGRAM: the histogram and HDR settings flow between SDR and HDR (#1460)
Pressing HDR no longer swaps the layout in one frame. The SDR curve squeezes
into the HDR layout's SDR section as the HDR section and legend open, and
Visualize HDR and HDR Headroom slide open with it (LR-EDIT-HDR-MODE); turning
HDR off runs it back. An SDR edit never shows an HDR histogram.

The flow lives in its own module, panels/edit/hdr_flow.rs, with small hooks in
histogram.rs and sliders.rs.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 03:27:44 +01:00
김준호 5800e13109 LR-EXP-WATERMARK: decomposed Korean and Vietnamese export text draws whole (#3480) (#3489)
* LR-EXP-WATERMARK: decomposed Korean and Vietnamese export text draws whole (#3480)

Export text (contact-sheet captions, watermarks, slideshow overlays, print
page text) laid each char out as its own glyph. macOS often stores Korean
file names in NFD, so a caption for 제주도.jpg drew as loose jamo, and NFD
Vietnamese letters lost their stacked marks (#3277).

TextLayout::new now composes the text to NFC first (unicode-normalization,
MIT OR Apache-2.0). Every Hangul syllable and Vietnamese letter has a
composed form; sequences without one draw as before.

* LR-EXP-WATERMARK: CJK compatibility ideographs keep their code points in export text (#3480)

NFC maps each CJK compatibility ideograph (U+F900-U+FAFF, U+2F800-U+2FA1F)
to its unified form, so a name spelled with 塚 (U+FA10) would draw as 塚
(U+585A). Compose the text around them and keep those characters as they
are.

* LR-EXP-WATERMARK: export text already in NFC stays as it is (#3480)
2026-11-05 02:57:08 +01:00
Dylan M. Taylor 0b5e6c7a06 Pass the Linux signing key to the release workflow (#3759) 2026-11-04 17:45:13 -05:00
FredApps ae7ac42a10 Merge pull request #3738 from FredApps/lens-db-log-2511
LR-EDIT-OPTICS-PROFILE: the log says where the lens database was read from and what it holds, and warns when it has no lenses
2026-11-04 16:03:50 +01:00
FredApps 08c9d59ae6 LR-EDIT-OPTICS-PROFILE: the no-lenses warning gives the counts; an unfinished download is logged at info (#2511) 2026-11-04 15:30:32 +01:00
FredApps 18b914b9ff LR-EDIT-OPTICS-PROFILE: the log says where the lens database was read from and what it holds, and warns when it has no lenses (#2511) 2026-11-04 14:44:54 +01:00
FredApps 79e900c120 Merge pull request #3073 from OneSlips/pr/lens-database-download
LR-EDIT-OPTICS-PROFILE: the lens database is offered on first launch and downloads on request, the library is looked up, Optics names the profile
2026-11-04 14:40:39 +01:00
FredApps 86092b330e LR-EDIT-OPTICS-PROFILE: merge main (#2676: unknown crop factors stay unknown; its lookup test expects the database source) 2026-11-04 14:00:53 +01:00
FredApps f30dd5e5f7 Merge pull request #2676 from r3d42-git/r3d/upstream-crop-factor-pr
LR-EDIT-OPTICS-PROFILE: preserve unknown crop factors in lens profiles
2026-11-04 13:58:07 +01:00
FredApps 5da455a3c5 LR-EDIT-OPTICS-PROFILE: merge main (#3144: ILCE-7M3 distortion, kept in the gaps and checklist rows) 2026-11-04 13:36:25 +01:00
FredApps ac55490414 Merge pull request #3144 from janickm/dev/janickm/a7m3-distortion
LR-EDIT-OPTICS-PROFILE: enable Sony ILCE-7M3 embedded distortion correction (rebase of #1384)
2026-11-04 13:35:27 +01:00
FredApps 9423635e8c LR-EDIT-OPTICS-PROFILE: merge main (#3550 took catalog format 10; EmbeddedLens.source moves to format 11) 2026-11-04 13:21:54 +01:00
FredApps b28661a260 Merge pull request #3550 from OneSlips/pr/mask-on-photo
LR-MASK-GEOMETRY: masks stay on the photo under lens corrections, Upright, Transform and Rotate
2026-11-04 13:18:28 +01:00
FredApps be6a90064f Merge remote-tracking branch 'origin/main' into pr-2676
# Conflicts:
#	crates/lensdb/src/lib.rs
2026-11-04 13:14:40 +01:00
FredApps fd8b0b236d Merge pull request #3697 from storytold/fix/sec-lensdb-profile-copies
security(lensdb): bound the names calibrations copy, read database files through the opened regular file
2026-11-04 13:07:16 +01:00
FredApps 0bcc31359e Merge remote-tracking branch 'origin/main' into pr-3073
# Conflicts:
#	docs/gaps.md
2026-11-04 12:52:35 +01:00
FredApps 5d97498ab7 Merge remote-tracking branch 'origin/main' into pr-3144
# Conflicts:
#	docs/raw-parity.md
2026-11-04 12:47:08 +01:00
FredApps b4757824ba Merge pull request #2733 from Enthendor/sigma-10-18-wide-end
LR-EDIT-OPTICS-PROFILE: Sigma 10-18 mm exception on the ILCE-6700
2026-11-04 12:46:48 +01:00
FredApps 1d37685923 Merge remote-tracking branch 'origin/main' into pr-3144
# Conflicts:
#	docs/whats-new.md
2026-11-04 12:45:09 +01:00
FredApps 32b00266f6 Merge pull request #3012 from emmertex/upstream-pr/lens-crop-inside
#2361: lens corrections crop inside the corrected photo
2026-11-04 12:43:59 +01:00
FredApps 61a8560c74 Merge remote-tracking branch 'origin/main' into pr-3550 2026-11-04 12:33:33 +01:00
FredApps 9439bf29e2 Merge remote-tracking branch 'origin/main' into pr-3073 2026-11-04 12:25:29 +01:00
FredApps ecbb77442c Merge remote-tracking branch 'origin/main' into pr-3697
# Conflicts:
#	crates/lensdb/src/tests.rs
2026-11-04 12:25:18 +01:00
FredApps f1ecfb724c Merge remote-tracking branch 'origin/main' into pr-2676 2026-11-04 12:23:28 +01:00
FredApps 483650c32b Merge pull request #3660 from eliets2/fix/issue-2249-nikon-z-400mm-f-4-5-z-tc-1-4x-lensfun-co
Issue #2249: a teleconverter combination never inherits the bare lens's profile
2026-11-04 12:23:14 +01:00
FredApps ca557c7d4e Merge remote-tracking branch 'origin/main' into pr-3550
# Conflicts:
#	docs/parity-checklist.md
2026-11-04 12:19:58 +01:00
FredApps 36b244286a Merge remote-tracking branch 'origin/main' into pr-3073
# Conflicts:
#	docs/gaps.md
2026-11-04 12:11:30 +01:00
FredApps 0852c21a9d Merge remote-tracking branch 'origin/main' into pr-3144
# Conflicts:
#	crates/engine/src/media/source.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/raw-parity.md
#	docs/whats-new.md
2026-11-04 12:07:38 +01:00
FredApps 99a6728fd0 Merge remote-tracking branch 'origin/main' into pr-3012
# Conflicts:
#	docs/whats-new.md
2026-11-04 11:59:15 +01:00
FredApps 2a7fe1fb1e Merge remote-tracking branch 'origin/main' into pr-2676 2026-11-04 11:59:07 +01:00
FredApps c1a1896d30 Merge remote-tracking branch 'origin/main' into pr-2733 2026-11-04 11:59:02 +01:00
FredApps 1c1eec5179 security(lensdb): refuse a non-regular *.xml before opening it (opening a FIFO blocks)
The pathname is checked before File::open as well as the opened file after it: File::open on a FIFO blocks until a writer appears, so the post-open check alone never ran for one. Adds a unix regression test that hung before the fix.
2026-11-04 11:58:39 +01:00
FredApps 0a5a53c1da Merge remote-tracking branch 'origin/main' into pr-3697 2026-11-04 11:56:16 +01:00
FredApps c8887dabca Merge remote-tracking branch 'origin/main' into pr-3660
# Conflicts:
#	crates/lensdb/src/tests.rs
2026-11-04 11:55:19 +01:00
Dylan M. Taylor 4d42507bbc security(raster, segment): resample tall narrow images columns first (#3678) 2026-11-03 23:00:51 -05:00
Dylan M. Taylor 1c5cbce835 security(engine): the library folder is protected from folder.move however its path is spelled (#3676) 2026-11-03 23:00:31 -05:00
Dylan M. Taylor f618fc06a7 security: staging and probe files are created new, never written through an existing entry (#3673) 2026-11-03 22:59:41 -05:00
Dylan M. Taylor 7b80ffc32b engine: font paths the build embeds stay inside the asset checkout and print as one cargo line (#3670) 2026-11-03 22:59:11 -05:00
Dylan M. Taylor ab39f7dbbc web: a restore plans its writes first, each storage key once and within the file's bytes; workers are capped (#3669) 2026-11-03 22:58:42 -05:00
Dylan M. Taylor 00b020cf2f catalog: bound keyword list path expansion and index synonym merges (#3641)
* catalog: bound keyword list path expansion and index synonym merges

* address review: hold keyword list writer to the path budget the reader enforces

* address review: charge the emitted parent path in the keyword list writer
2026-11-03 22:51:11 -05:00
Dylan M. Taylor 9eb7b25e31 security(engine): sidecar copies, backups and version checks read regular files only (#3677)
* security(engine): sidecar copies, backups and version checks read regular files only

* address review: open the sidecar source and check the handle is the regular file that was checked
2026-11-03 22:50:49 -05:00
Dylan M. Taylor b0c4aa8cc8 security(raw): linear sparse planning, distinct-byte allocation bound, opcode list budget, ORF strip length (#3679)
* security(raw): linear sparse planning, distinct-byte allocation bound, opcode list budget, ORF strip length

* address review: zero opcode cost for no-op ops, compact the sparse plan buffer
2026-11-03 22:32:53 -05:00
Dylan M. Taylor f7e43a4a45 address review: charge name allocations and only kept calibrations to the copy budget 2026-11-03 23:58:25 +00:00
Dylan M. Taylor 03e03f382e security(tests): test fixture directories are created exclusively, never reused from a predictable name (#3721) 2026-11-03 17:49:04 -05:00
Dylan M. Taylor 5c96a70058 security(logging): a log message cannot begin a record of its own (#3720) 2026-11-03 17:48:44 -05:00
Dylan M. Taylor b2c1d7064a security(geocode): bound dataset reads, per-line fields, and the inflate error text (#3718) 2026-11-03 17:48:25 -05:00
Dylan M. Taylor a5803fe49f security(engine, faces): index repeated membership scans in photo move, keywords, import planning, sync and rename (#3709) 2026-11-03 17:48:05 -05:00