summaryrefslogtreecommitdiffstats
path: root/sd/README.md
blob: 4413a0776210873e8a2da84794a97e6684e3c41d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# LibreOffice Impress / Draw Application

The core directory for the impress/draw applications.

Think of impress as a hack on top of draw.

`sd` module contains impress/draw specific code, non-shared UI and part
of `ppt` and `pptx` filter, few other filters too.

the slideshow UI lives here as well, the slideshow engine is in
`slideshow` module though (including the 3D transitions engine
`slideshow/source/engine/opengl`).

the most used filters are ODF's `odp`, binary ppt and OOXML's
`pptx`. their locations are listed below:

 * `odp` import and export filters are in `xmloff` module (mostly `xmloff/source/draw`)

 * `ppt` import is in `sd/source/filter/ppt` (big shared chunks are also in `svx`)
 * `ppt` export is in `sd/source/filter/eppt` (big shared chunks are also in `svx`)

 * `pptx` import is in `oox/source/ppt` (and uses a lot of
   `oox/source/drawingml` and `oox/source/*`)
 * `pptx` export is in `sd/source/filter/eppt` (mostly in `pptx-*` source
   files) and shared part is in `oox/source/export`

## PPTX Export / Import Filters

PPTX export filter is split into 2 parts. Impress related part is in
`sd/source/filter/eppt/pptx-*` and the other part is in
`oox/source/export/` because it contains mostly code related to
`DrawingML`, which is shared with writer and calc ooxml export.

The export filter was written in 2009 IIRC and was not much extended
feature-wise lately.

## Future Works
Add custom shapes export (see below). enhance text
output, we don't write text style for indentation levels now, need to
export `a:lvl1pPr`, `a:lvl2pPr`, ... elements.

`PPTX` import was written by Sun/Oracle and then extended in LibreOffice
a lot during bug fixing. It is located in `oox/source/ppt` and
`oox/source/drawingml`. The areas with most bugs (at least until today)
were shape placeholders and text style inheritance.