mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-28 04:27:06 -06:00
Merge PR #601 from NikitkaRa: SmartArt: write the outline to .pptx as a diagram and read it back from the data model
# Conflicts: # crates/engine/Cargo.toml # crates/pptx/src/read/shapes.rs # crates/pptx/src/write/shapes.rs
This commit is contained in:
@@ -93,6 +93,7 @@ the round trip even though DeckCraft doesn't model it.
|
||||
| SmartArt (`dgm`) | drawing part only, as a group; text laid out on its `dsp:txXfrm` rectangle | as shapes | Diagram data model lost on save |
|
||||
| SmartArt (`dgm`) | drawing part only, as a group | as shapes | Diagram data model lost on save. A diagram with no relationship parts keeps its XML; the drawing and data parts are still dropped (#203) |
|
||||
| SmartArt (`dgm`) | drawing part only, as a group | as shapes | Diagram data model lost on save (DeckCraft keeps its own outline in `.deckcraft` only) |
|
||||
| SmartArt (`dgm`) | the drawing part as a group, and the outline from the data model (Text Pane) | as a diagram: data model from the outline; layout, quick style and colour parts (the file's own kept until the layout is switched); the group as the cached drawing | DeckCraft's layout definitions are simple; a diagram without a cached drawing isn't drawn |
|
||||
| Equations (OMML, `a14:m`) | no | no | PR #55 open |
|
||||
| Audio / video (`p14:media`, trim, fades, bookmarks) | yes | partly | Playback options lost on save (#74) |
|
||||
| Ink (`contentPart`) | yes | as a group of freeform lines | PowerPoint sees shapes, not ink |
|
||||
|
||||
+10
-8
@@ -212,14 +212,16 @@ Detail in [file-format-parity.md](file-format-parity.md).
|
||||
- **Estimate:** 12–20 h. Data and elements are **beta blockers** (6–10 h).
|
||||
|
||||
### SmartArt editing is shallow
|
||||
- **Evidence:** a SmartArt graphic inserted in DeckCraft keeps its outline (`Shape.diagram`) and
|
||||
has a Text Pane, Add Shape (after, before, above, below), Promote, Demote, Remove and layout
|
||||
switching between DeckCraft's six layouts (`crates/engine/src/cmd/smartart.rs`). But
|
||||
`crates/pptx/src/read/shapes.rs` reads a PowerPoint diagram's drawing part as a plain group (no
|
||||
outline, so no Text Pane), the outline isn't written to `.pptx` (`dgm` data), and there are six
|
||||
layouts rather than PowerPoint's ~200.
|
||||
- **Impact:** editing a SmartArt diagram from PowerPoint breaks it.
|
||||
- **Estimate:** 8–14 h.
|
||||
- **Evidence:** a SmartArt graphic keeps its outline (`Shape.diagram`) and has a Text Pane, Add
|
||||
Shape, Promote, Demote, Remove and layout switching (`crates/engine/src/cmd/smartart.rs`). On
|
||||
`.pptx` the outline is written as a real diagram (data, layout, quick style, colours and the
|
||||
cached drawing; `crates/pptx/src/dgm.rs`), and PowerPoint diagrams read their outline from the
|
||||
data model, so they get the Text Pane too. Still missing: DeckCraft's own layout definitions are
|
||||
simple (not yet checked in PowerPoint itself); there are six layouts rather than ~200; editing an
|
||||
imported diagram's outline redraws it with DeckCraft's layout; a diagram with no cached drawing
|
||||
isn't drawn.
|
||||
- **Impact:** a PowerPoint diagram edited in DeckCraft changes look.
|
||||
- **Estimate:** 6–10 h.
|
||||
|
||||
### Animation Pane, effect count and preview
|
||||
Detail in [animation-parity.md](animation-parity.md). 10–16 h; the pane is a **beta blocker**.
|
||||
|
||||
Reference in New Issue
Block a user