Files
pdfcraft/assets/icons
6dec57bf80 M7: lay out Format text as Acrobat's panel (#2249)
* M7: lay out Format text as Acrobat's panel

Format text was a row of separate combos, a Load font button, an
Installed fonts combo, a swatch grid and labelled drag values. It now
follows Acrobat's arrangement: the font across the panel (the page's
fonts, the standard families, Load font… and Installed fonts in one
list, showing the paragraph's own font by name); size and a colour
swatch, then lists and an alignment flyout; bold, italic, underline,
superscript and subscript; line and paragraph spacing; horizontal scale
and character spacing. One panel serves an edited paragraph and added
text. What PdfCraft can't apply yet (lists, superscript and subscript,
paragraph spacing, spacing for added text) is shown disabled and says
it is planned.

Icons stay Lucide's: superscript, subscript, pilcrow and
move-horizontal are added from lucide-static 1.49.0 with attribution.
Eight new strings are translated in every catalogue.

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

* M7: parity notes for the Format text panel

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

* i18n(vi): Superscript and Subscript for Format text

The Vietnamese catalogue came from main without the Format text panel's
Superscript and Subscript labels; vietnamese_covers_ui_literals lists them.

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

* M7: Format text takes any horizontal scale and character spacing again

Review of #2249: the panel's preset lists narrowed what could be set to
50-200 % and -1..5 pt, where the old fields took 10-400 % and -5..50 pt.
Each now has a number field over the old range again, with the list of
common values beside it.

Test: the_format_panel_takes_any_scale_and_character_spacing types values
between the listed ones and beyond them, saves and reopens, and compares
the paragraph with the engine's own rewrite. It fails without the field.

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

* M7: Format text's rows line their controls up and fit the panel

Raised in #3037: the size list sat lower than the colour swatch and the
alignment button beside it. egui lays a list out from the default control
height and grows it downward, so a row's shorter controls ended up off its
middle. Each row is now one control height and centres what it holds, at
a list's own height.

The spacing rows' columns are measured from what they hold, so the second
list no longer runs past the panel; the number fields' lists open from a
small arrow, which leaves the field the room its value needs.

Test: format_text_rows_line_up_and_fit_the_panel checks the size list is
centred with the swatch and alignment button and as tall as the font list,
that each spacing row shares one line, and that nothing passes the panel.
It fails without the change.

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

* Format text: choosing the family a font name reads as still changes the font

CodeRabbit on #2249: a Calibri paragraph is shown as Helvetica, so picking Helvetica left
look.family equal to look0.family and no family change was sent. The pick is now tracked
(LineEditor::choose_family) and counts as a change in style(), font_shown(), has_changes()
and the editor preview; Keep source fonts and an applied edit clear it.

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

* Format text: the reusable text style follows a selection only when its edit was applied

A refused UpdateContent used to leave the new style in app.text_style, so the next
added text inherited formatting the selected text never received.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jk4iYSh3mEd145niec77LF

---------

Co-authored-by: abc2cb <271337822+abc2cb@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:26:28 -04:00
..
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00
2026-09-30 05:17:08 -04:00