Brandon Thomas
38e95d8c15
Merge PR #702 from NikitkaRa: Clipboard: rich text and pictures for Pages and Keynote
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:39:36 -04:00
Brandon Thomas
0c2c433ade
Merge the chart and EMF+ metafile PRs integrated on land-r2 ( #532 #537 #591 #594 #598 #602 #603 #638 #640 #662 #666 #669 #690 #582 #588 #633 #635 )
...
# Conflicts:
# crates/pptx/src/write/mod.rs
# crates/pptx/tests/roundtrip.rs
2026-10-14 14:17:35 -04:00
Brandon Thomas
2009242055
Merge PR #684 from NikitkaRa: Export: a PNG or JPEG slide records 144 dpi at the default 2× size
...
# Conflicts:
# crates/engine/src/cmd/file.rs
# crates/engine/src/tests.rs
2026-10-14 14:02:59 -04:00
Brandon Thomas
1360b283f3
Merge PR #633 from NikitkaRa: Metafile: EMF+ cardinal curves and region fills
...
# Conflicts:
# crates/render/src/tests.rs
2026-10-14 13:57:48 -04:00
Brandon Thomas
b3c9cc099c
Merge the PPTX writer, notes/handout master, PDF and slide-show PRs integrated on land-r3 ( #518 #531 #535 #533 #572 #573 #577 #580 #583 #592 #685 #528 #483 #490 #441 #671 #679 #649 #656 #660 #664 #224 )
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/model/src/lib.rs
# crates/pptx/src/write/mod.rs
# crates/render/src/lib.rs
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/thumbs.rs
2026-10-14 13:56:41 -04:00
Brandon Thomas
ad7eb45abe
Merge PR #690 from NikitkaRa: Charts: a chart frame with no width no longer panics
...
# Conflicts:
# crates/render/src/chart.rs
# crates/render/src/tests.rs
2026-10-14 13:53:49 -04:00
Brandon Thomas and Claude Opus 5.5
bb3627f954
Fix up merged PRs: minor gridlines on a logarithmic axis
...
#666 's minor gridlines stepped in value units, but #669 scales a log axis in
exponents of its base; map each minor step back through the base.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 13:53:06 -04:00
Brandon Thomas
6d1b01b73d
Merge PR #669 from NikitkaRa: Charts: logarithmic value axes
...
# Conflicts:
# crates/pptx/src/read/chart.rs
# crates/render/src/chart.rs
2026-10-14 13:51:30 -04:00
Brandon Thomas
808087e6a5
Merge PR #666 from NikitkaRa: Charts: value-axis minor gridlines
...
# Conflicts:
# crates/pptx/src/read/chart.rs
2026-10-14 13:50:53 -04:00
Brandon Thomas and Claude Opus 5.5
5089d615bf
Fix up merged PRs: scatter trendlines follow the value x axis
...
#662 gives scatter and bubble charts one x scale over every series; #603 's
trendlines still mapped x over each series' own extent, so a fit drifted off
its points. Use the chart's x scale where there is one.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 13:50:37 -04:00
Brandon Thomas
256ad7057c
Merge PR #662 from NikitkaRa: Charts: scatter and bubble charts get a value x axis
...
# Conflicts:
# crates/render/src/chart.rs
2026-10-14 13:49:59 -04:00
Brandon Thomas and Claude Opus 5.5
0f28ac96ed
Fix up merged PRs: reversed category axes and trendline forecasts agree
...
#640 orders category slots bottom-to-top on horizontal bars (or reversed via
c:orientation) while #603 pads the axis for trendline forecasts. Slots now
include the forecast padding on the right side, and trendlines map their
category positions through the same slot order as the bars.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 13:49:35 -04:00
Brandon Thomas
266da52dd9
Merge PR #640 from NikitkaRa: Charts: category axis orientation; horizontal bars list the first category at the bottom
...
# Conflicts:
# crates/pptx/src/read/mod.rs
# crates/pptx/src/write/chart.rs
# crates/render/src/chart.rs
2026-10-14 13:48:09 -04:00
Brandon Thomas
593f55dfa1
Merge PR #638 from NikitkaRa: Charts: bar widths, column/bar point fills, smoothed lines and chart text colour as the file sets them
...
# Conflicts:
# crates/pptx/src/read/chart.rs
# crates/render/src/chart.rs
2026-10-14 13:47:34 -04:00
Brandon Thomas and Claude Opus 5.5
32a49e8bf6
Fix up merged PRs: a trendline caption in a tiny chart no longer panics
...
f64::clamp panics when the plot is narrower than the caption's minimum width;
use main's clamp_soft, as the rest of the chart code now does.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 13:47:08 -04:00
Brandon Thomas
8f0640a7b2
Merge PR #603 from NikitkaRa: Render: draw chart trendlines
...
# Conflicts:
# crates/render/src/chart.rs
2026-10-14 13:47:08 -04:00
Brandon Thomas
b0345cfaf2
Merge PR #602 from NikitkaRa: Charts: polar radar, stock high-low lines and up/down bars, combo sample
2026-10-14 13:42:48 -04:00
Brandon Thomas
82ea49bcf1
Merge PR #598 from NikitkaRa: Charts: keep and draw region map charts
2026-10-14 13:42:45 -04:00
Brandon Thomas
7c46b5b76a
Merge PR #594 from NikitkaRa: Charts: multi-level treemaps and sunbursts; inclusive box quartiles
2026-10-14 13:42:41 -04:00
Brandon Thomas
6057715c2a
Merge PR #591 from NikitkaRa: Charts: histograms, Pareto and box and whisker; Office 2016 charts save as themselves
...
# Conflicts:
# crates/render/src/chart.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 13:42:41 -04:00
Brandon Thomas
9479e3b17c
Merge PR #537 from NikitkaRa: Charts: draw waterfall, funnel, treemap and sunburst layouts
...
# Conflicts:
# crates/model/src/chart.rs
# crates/render/src/tests.rs
2026-10-14 13:38:34 -04:00
Brandon Thomas
4cd6412a3c
Merge PR #583 from NikitkaRa: PDF master header/footer text wraps and keeps mixed formatting (stacked on #580 )
...
# Conflicts:
# crates/render/src/lib.rs
# crates/render/src/placed.rs
2026-10-14 13:30:43 -04:00
Brandon Thomas
6af2b0ee21
Merge PR #618 from NikitkaRa: Text: underline an IME composition in a table cell
...
# Conflicts:
# crates/render/src/lib.rs
2026-10-14 13:23:32 -04:00
Brandon Thomas
72238c1b6e
Merge PR #678 from NikitkaRa: Merge Shapes: text merges as its letters, so a picture can fill them
...
# Conflicts:
# crates/render/src/lib.rs
2026-10-14 13:22:48 -04:00
Brandon Thomas and Claude Opus 5.5
edaef792e0
Fix up merged PRs: Edit Points hits select their shape on right click; Hyperlink sound fields in #713 's tests
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 13:11:36 -04:00
Brandon Thomas
337bd35a31
Merge PR #663 from NikitkaRa: Render: don't lay out table cell text that lands off the slide
...
# Conflicts:
# crates/render/src/tests.rs
2026-10-14 13:09:05 -04:00
Brandon Thomas
facca31f75
Merge PR #657 from NikitkaRa: Charts: draw axis titles
2026-10-14 13:09:05 -04:00
Brandon Thomas
e7a106fcc3
Merge PR #639 from NikitkaRa: Render: cap dash count so a tiny dash on a huge shape can't crash on open
2026-10-14 13:09:03 -04:00
Brandon Thomas
2dcfbdaff4
Merge PR #600 from NikitkaRa: render: 3-D contours
2026-10-14 13:08:59 -04:00
Brandon Thomas
d48d66b7f8
Merge PR #597 from NikitkaRa: render: 3-D light rigs and materials, per-side extrusion shading
2026-10-14 13:08:58 -04:00
Brandon Thomas
5d4e08733b
Merge PR #595 from NikitkaRa: Render 3-D extrusions: sides under turned cameras (3-D slice 1)
...
# Conflicts:
# crates/render/src/tests.rs
2026-10-14 13:08:58 -04:00
Brandon Thomas
4dea355f02
Merge PR #554 from NikitkaRa: Pptx: round-trip comments, links, shows, groups and inherited placeholders
2026-10-14 13:08:53 -04:00
Brandon Thomas
5334442eb5
Merge PR #507 from NikitkaRa: UI: seeded whole-window soak with memory and timing bounds
2026-10-14 13:08:47 -04:00
Brandon Thomas
6f2b41f236
Merge PR #502 from NikitkaRa: Engine: seeded editor soak tests; tiny charts no longer blank the slide
...
# Conflicts:
# crates/render/src/tests.rs
2026-10-14 13:08:46 -04:00
Brandon Thomas
bce94027ad
Merge PR #486 from NikitkaRa: Charts: pie and doughnut data labels use the number format ( #324 )
2026-10-14 13:08:45 -04:00
Brandon Thomas
215fed001e
Merge PR #478 from NikitkaRa: Render: cap RGBA conversion and bound the failed-image cache ( #402 )
2026-10-14 13:08:44 -04:00
Brandon Thomas
6484091328
Merge PR #476 from NikitkaRa: Render: budget shape path-gradient work on dense outlines ( #404 )
2026-10-14 13:08:44 -04:00
Brandon Thomas
271822164f
Merge PR #437 from NikitkaRa: Metafile: clip EMF and WMF drawing to rectangle regions
...
# Conflicts:
# crates/render/src/tests.rs
2026-10-14 13:08:42 -04:00
Brandon Thomas
9fab337cd2
Merge PR #157 from LloydNicholson: Charts: value axes start above zero when the values sit high, as in Office
2026-10-14 12:57:19 -04:00
Brandon Thomas
3635bdc8ba
Merge PR #713 from nagasakimark: Slide show: click-triggered animations, per-slide state and hit testing
2026-10-14 12:53:34 -04:00
Claude
887ea1e706
Slide show: click-triggered animations, per-slide state and hit testing
...
Make the slide show behave like PowerPoint for interactive decks.
- Hit testing resolves the topmost visible shape under the pointer.
Non-interactive shapes block shapes beneath them; the hand cursor
shows only over interactive shapes.
- Click-triggered animations (interactive sequences) play on shape
click, repeat after their last step, and apply in click order so
cycling "score ring" shapes work.
- Each slide keeps its own progress: returning to a slide through a
link or Back restores hidden shapes and animation state.
- A shape with a link and an animation follows the link immediately;
its animation clock only runs while the slide is shown and resumes
with the remaining time on return.
- With advance-on-click off, background clicks still play animation
steps but never change slide.
- A click on a playing step completes it at once.
Docs (gaps, animation and slide show parity, roadmap) are updated.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-14 17:22:23 +09:00
Nikita Rakitin and Cursor
5d9f47c81a
Clipboard: rich text and pictures for other apps
...
Copy puts HTML on the pasteboard with the same plain words, so Pages keeps
bold, italic and underline, and a paste of that HTML keeps them here. A
shape with no text copies out as a picture.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-14 06:37:49 +03:00
Nikita Rakitin
c4a9f25754
Charts: a chart frame with no width no longer panics
2026-10-14 05:58:30 +03:00
Nikita Rakitin and Cursor
d04df05249
Export: record slide resolution in PNG and JPEG pictures
...
A default export is 2 pixels per point. Without a resolution, Preview
treats those pixels as 72 dpi and the picture opens at twice the slide's
size. PNG pHYs and JPEG JFIF density now say scale times 72, so the
default is 144 dpi. Screenshots stay untagged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-14 05:35:37 +03:00
Nikita Rakitin
ef858b710f
Merge Shapes: a text box merges as its letters; a picture keeps its place ( #653 )
2026-10-14 05:07:18 +03:00
Nikita Rakitin
4a7ad03eb0
Charts: logarithmic value axes
2026-10-14 04:45:26 +03:00
Nikita Rakitin
aed386e269
Charts: draw, read and write value-axis minor gridlines
2026-10-14 04:39:00 +03:00
Nikita Rakitin
8a5eec369f
Render: skip laying out table cell text that lands wholly off the target
2026-10-14 04:22:37 +03:00
Nikita Rakitin
ed20cebed8
Charts: scatter and bubble charts get a value x axis
2026-10-14 04:22:19 +03:00
Nikita Rakitin
fd1b0a1965
Charts: draw the axes' titles
2026-10-14 04:12:18 +03:00