Commit Graph
1877 Commits
Author SHA1 Message Date
skylartaylor 5d428e408f M-egui037: reconcile upstream and document migration review fixes 2026-10-25 06:42:20 +01:00
aiongg b70c746f9b Merge pull request #4238 from aiongg/dotcoocoo-late
Merge the late commits of #4098 and #4224
2026-10-25 01:13:58 -04:00
aiongg 400bd131d3 Merge PR #4224: Fields: \* Upper, \* Lower, \* Caps and \* FirstCap change the result, and CardText is lowercase
# Conflicts:
#	crates/engine/src/cmd/references.rs
#	crates/engine/src/cmd/table_formula.rs
#	crates/layout/src/fields.rs
2026-10-25 04:54:09 +00:00
aiongg 024aafca26 Merge PR #4098: AutoFormat: *bold* and _italic_ become real formatting as you type
# Conflicts:
#	ROADMAP.md
#	docs/typing-parity.md
2026-10-25 04:48:53 +00:00
aiongg c72e1cad9b Merge pull request #4232 from aiongg/dotcoocoo-batch
Merge 10 open PRs (fields, tables, AutoFormat, Track Changes; tested batch)
2026-10-25 00:47:34 -04:00
aiongg 5c43a3673d Gaps: follow-ups from the field, table and AutoFormat batch 2026-10-25 03:51:11 +00:00
aiongg ba3e3d9e7c Convert to Text: paragraph marks drop a cell's section break too
The tab and comma separators already cleared it (#4155).
2026-10-25 03:51:11 +00:00
aiongg c2d2251328 Fields: one unquoted word sets a summary property
SUBJECT Draft sets the subject to Draft, as the field-argument rules
allow a value without quotes when it has no white space (#4217). A
switch alone, as in TITLE \* Upper, still sets nothing.
2026-10-25 03:51:09 +00:00
aiongg 8c035fbb2c Fields: \* ArabicDash formats any number field
It is a general format switch, so NUMPAGES, PAGEREF, SEQ and formulas
read it as PAGE does (#4226).
2026-10-25 03:51:09 +00:00
dotCooCoo 52c88567b8 Fields: a count past its number format's range keeps its digits
NUMWORDS, NUMCHARS and REVNUM wrote a count past what the field's \*
number format covers as the format's last value, so a revision number
of 1,000,000 under \* ROMAN showed 50 M's. Such a count now keeps its
digits, as a table formula result does.
2026-10-24 19:52:32 -07:00
aiongg 36d7650d3e Convert to Text: drop the unused VMerge import 2026-10-25 02:44:24 +00:00
aiongg 0aa1a40b88 Parity checklist: Read Mode 2 of 3 (cargo xtask parity) 2026-10-25 02:43:09 +00:00
dotCooCoo d9d61ee8da Fields: several capitalization switches apply in the order they appear
A field with \* Lower \* Caps applied only \* Lower, so a title of
WEEKLY REPORT showed as weekly report. Every capitalization switch in a
field code now applies in turn, and the example shows Weekly Report.
2026-10-24 19:39:35 -07:00
dotCooCoo 21d96baf98 Merge branch 'feat/document-information-fields' into fix/field-text-format-switches 2026-10-24 19:37:41 -07:00
aiongg 8432e5fbb4 Read Mode catalog: Page Color is live
#4182 was written before view.readPageColor (#4172) landed, so the
progress log listed Page Color as missing. The catalog test checks it
is live.
2026-10-25 02:35:37 +00:00
aiongg 0ce539ca5e Convert to Text cuts the table with Table::split_off
A row content control that the cut crosses reopened below the
converted rows with its w:id, so the saved file had two controls with
the same id. Table::split_off (#4162) clears the id and ends the
vertical merges the same way, so Convert to Text and Split Table
follow one rule. Rows without cells leave an empty paragraph.
2026-10-25 02:35:37 +00:00
aiongg 6f6ff64af1 Merge PR #4205: Track Changes: Accept and Reject can move to the next change or stop tracking
# Conflicts:
#	docs/ui-parity.md
2026-10-25 02:23:07 +00:00
aiongg bc4a69b17d Merge PR #4182: Parity catalog: the checklist counts Read Mode's Column Width, Page Color and Layout
# Conflicts:
#	ROADMAP.md
#	docs/ui-parity.md
2026-10-25 02:23:02 +00:00
aiongg 5c779b3d96 Merge PR #4098: AutoFormat: *bold* and _italic_ become real formatting as you type
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/tools.rs
#	docs/typing-parity.md
2026-10-25 02:22:19 +00:00
aiongg 533686ce26 Merge PR #4139: AutoFormat: border and table lines stay text in a paragraph numbered by its style
# Conflicts:
#	crates/engine/src/cmd/text.rs
2026-10-25 02:21:33 +00:00
aiongg b8dfd9377a Merge PR #4226: Fields: \* DollarText and \* Hex write the result, and PAGE reads \* ArabicDash 2026-10-25 02:21:25 +00:00
aiongg 447254120a Merge PR #4224: Fields: \* Upper, \* Lower, \* Caps and \* FirstCap change the result, and CardText is lowercase
# Conflicts:
#	crates/engine/src/cmd/references.rs
2026-10-25 02:21:25 +00:00
aiongg 29bfb249b5 Merge PR #4217: Fields: SUBJECT, KEYWORDS, COMMENTS, LASTSAVEDBY, REVNUM and NUMCHARS update with the others 2026-10-25 02:21:11 +00:00
aiongg 1b629d1299 Merge PR #4155: Tables: Convert to Text asks for the separator and converts only the selected rows 2026-10-25 02:21:10 +00:00
aiongg 435cf3dbd2 Merge PR #4162: Tables: Split Table fixes the vertical merges and row content controls it splits 2026-10-25 02:21:10 +00:00
aiongg 1c3a18c1b7 Merge PR #4225: Restrict Editing: Enter and typing at the start or end of an exception line go inside it 2026-10-25 02:21:09 +00:00
skylartaylor 0b007fd47b egui037: reconcile WordCraft main and preserve input migration 2026-10-25 03:17:45 +01:00
dotCooCoo e8015c1e75 Merge branch 'main' into feat/autoformat-bold-italic 2026-10-24 19:01:45 -07:00
Dylan M. TaylorandClaude Sonnet 5.5 b4da59f0c3 security: require the data integrity check on encrypted DOCX packages (#4223)
An agile EncryptionInfo without dataIntegrity made decrypt skip the HMAC, so
altered ciphertext or an altered StreamSize came back as plaintext. The file
no longer decides whether it is authenticated: a package without dataIntegrity
is refused.

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 21:10:15 -04:00
dotCooCoo 0dd06b1048 Fields: \* DollarText and \* Hex write the result, and PAGE reads \* ArabicDash
A field or table formula with \* DollarText or \* Hex showed its digits,
and PAGE \* ArabicDash showed the plain page number. \* DollarText now
writes the result in lowercase cardinal text with "and" and the first two
decimals (rounded) over 100, so { = 9.20 + 5.35 \* DollarText \* Upper }
shows FOURTEEN AND 55/100. \* Hex writes uppercase hexadecimal digits
(458 shows 1CA). PAGE \* ArabicDash shows the page number between
hyphens ("- 31 -"); other fields, PAGEREF included, skip it. The
page-number, SEQ, PAGEREF and count fields and table formulas read both
switches. Cardinal, ordinal and dollar text keep the digits of a number
past 999,999. Before, \* CardText showed such a number as "nine hundred
ninety-nine thousand nine hundred ninety-nine" and \* OrdText as "nine
hundred ninety-nine thousand nine hundred ninety-ninth".
2026-10-24 17:57:38 -07:00
dotCooCoo 86ccf6cf3d Fields: only quoted text after a summary field's name replaces the property
SUBJECT Draft left the field showing Draft and set the document's
subject to it. A TITLE, SUBJECT, AUTHOR, KEYWORDS or COMMENTS field now
replaces its property only when quoted text follows the field's name,
and otherwise shows the property as it is.
2026-10-24 17:55:11 -07:00
dotCooCoo 327cc595e4 Restrict Editing: Enter and typing at the start or end of an exception line go inside it
In a document that is read only or open to comments only, an exception
that starts a paragraph puts its start marker at the line start. Home,
Left, Right from the line above and Down into an empty line leave the
caret before that marker, outside the exception, so Enter and typing
there were refused. An editable line right after a protected line could
not be broken or typed into from its start. The same happened at the end
of a line that an exception ends, where End leaves the caret after the
end marker.

Typing now moves a caret right before the start of an exception the
author may edit to just inside it, and one right after its end back
inside it, as Document::typing_pos already does for the markers of a
block-level content control.
2026-10-24 17:20:56 -07:00
skylartaylor a605fa5ca7 M-EGUI037: reconcile WordCraft main and preserve IME editing 2026-10-25 02:19:38 +02:00
dotCooCoo c41251238b Fields: \* Upper, \* Lower, \* Caps and \* FirstCap change the result, and CardText is lowercase
Update Field and the page-number fields ignored the capitalization
switches, so TITLE \* Upper or FILENAME \* Lower showed the text as
stored. A \* CardText or \* OrdText result started with a capital
("Twelve"), where Word shows it in lowercase unless a capitalization
switch follows. A table formula with a \* switch, such as
=SUM(A1:B2) \* CardText or =SUM(ABOVE) \* MERGEFORMAT, was a syntax
error.

The results of the document information fields, DOCPROPERTY,
FILENAME, the dates, REF, PAGEREF, SEQ, STYLEREF and table formulas
now take the field's \* Upper, \* Lower, \* Caps or \* FirstCap switch
when Update Field computes them. PAGE, NUMPAGES, SECTION,
SECTIONPAGES, PAGEREF and STYLEREF take it when they are laid out.
Cardinal and ordinal text is lowercase ("twelve", "seventh") unless
one of the switches follows. WordCraft now reads a table formula's \*
switches separately from the formula. A whole-number result that a \*
number format such as CardText or roman covers is written in that
format; any other result, and any other \* switch, leaves the digits.
Table Layout › Data › Formula keeps the \* switches as typed.
2026-10-24 17:02:51 -07:00
aiongg fc7bdcb9ec Merge pull request #4215 from aiongg/batch-heads
Merge the latest commits of #4100, #4133 and #4171
2026-10-24 19:36:17 -04:00
aiongg ef175c6e2f Merge PR #4133: #4085: toggle the last highlight colour with the keyboard shortcut 2026-10-24 22:35:22 +00:00
aiongg 235485108c Merge PR #4171: Picture memory limits for 6 audit issues: one decoder, TIFF strips, styles, Remove Background, Windows paste, render cache 2026-10-24 22:35:09 +00:00
aiongg 5f87444b4a Merge PR #4100: autoscroll: make the cursor follow the scroll direction 2026-10-24 22:35:09 +00:00
aiongg ab390cc27e Merge pull request #4194 from aiongg/martin-batch
Merge 27 open PRs (tested batch)
2026-10-24 18:33:13 -04:00
dotCooCoo eccb2fc230 Fields: SUBJECT, KEYWORDS, COMMENTS, LASTSAVEDBY, REVNUM and NUMCHARS update with the others
Update Field left the SUBJECT, KEYWORDS, COMMENTS, LASTSAVEDBY, REVNUM
and NUMCHARS fields at their stored result, so one inserted in
WordCraft showed nothing, and the Field dialog did not list them.
These fields now update with the others and are listed under Document
Information.

A quoted text after TITLE, SUBJECT, AUTHOR, KEYWORDS or COMMENTS
replaces that property, at most 255 characters, as in Word, and later
fields, DOCPROPERTY included, show the new value. NUMWORDS, NUMCHARS
and REVNUM take a \* number format.
2026-10-24 15:22:57 -07:00
dotCooCoo 16075d1f52 ROADMAP: hyphenate read-only in the status line 2026-10-24 15:17:10 -07:00
VoiceLessQ f761014c77 Merge origin/main 2026-10-24 21:08:38 -01:00
aiongg 4c8dc00fe6 Merge upstream/main (#4184 craft-libs bump) into the batch 2026-10-24 21:58:03 +00:00
aiongg 9942e2a3fb Charts and SmartArt: the default cursor over the body, which doesn't move (#3853) 2026-10-24 21:52:48 +00:00
aiongg ffa51443f2 Bump craft-print, craft-pdf, krilla and craft-i18n to craft-libs 1774443 (#4184)
* Bump craft-print, craft-pdf, krilla and craft-i18n to craft-libs 1774443

* PDF export writes link annotations only for safe targets (craft_pdf::write::uri_target)

* Chart default category and series names use fmt_plain, so RTL interfaces put no isolate marks into the document
2026-10-24 17:52:43 -04:00
aiongg b78c37bd7e Fonts: the web build embeds only craft-fonts' Georgian interface face, not the 4.7 MB Japanese one (#3888) 2026-10-24 21:51:00 +00:00
aiongg e23d5eb7f3 Tests: Undo moves past a step whose document is the one showing (#4004) 2026-10-24 21:50:45 +00:00
aiongg ba151faf62 Same content: a table's cells and the building blocks compare their blocks by address first, so an edit in a table cell doesn't compare the whole table (#4004) 2026-10-24 21:50:45 +00:00
aiongg 6f679e362f Web host bridge: a Save under a name the host page never sent (untitled, an imported .doc) is Save As (#3822) 2026-10-24 21:43:48 +00:00
aiongg 6622e21af6 Tests: no stale layout after a command that changes nothing (#4004); new comments and replies carry their UTC time (#4079) 2026-10-24 21:39:22 +00:00