and cid#1660225 Variable copied when it could be moved cid#1660211 Variable copied when it could be moved cid#1660185 Variable copied when it could be moved cid#1660173 Variable copied when it could be moved cid#1660168 Variable copied when it could be moved cid#1660166 Variable copied when it could be moved cid#1660165 Variable copied when it could be moved cid#1660163 Variable copied when it could be moved cid#1660152 Variable copied when it could be moved cid#1660149 Variable copied when it could be moved cid#1660147 Variable copied when it could be moved cid#1660145 Variable copied when it could be moved cid#1660142 Variable copied when it could be moved cid#1660140 Variable copied when it could be moved cid#1660137 Variable copied when it could be moved cid#1660136 Variable copied when it could be moved cid#1660135 Variable copied when it could be moved cid#1660128 Variable copied when it could be moved cid#1660124 Variable copied when it could be moved cid#1660122 Variable copied when it could be moved cid#1660117 Variable copied when it could be moved cid#1660114 Variable copied when it could be moved cid#1660110 Variable copied when it could be moved cid#1660109 Variable copied when it could be moved cid#1660105 Variable copied when it could be moved cid#1660104 Variable copied when it could be moved cid#1660102 Variable copied when it could be moved cid#1660100 Variable copied when it could be moved cid#1660098 Variable copied when it could be moved cid#1660080 Variable copied when it could be moved cid#1660079 Variable copied when it could be moved cid#1660078 Variable copied when it could be moved cid#1660075 Variable copied when it could be moved cid#1660071 Variable copied when it could be moved cid#1660070 Variable copied when it could be moved cid#1660064 Variable copied when it could be moved cid#1660063 Variable copied when it could be moved cid#1660060 Variable copied when it could be moved cid#1660058 Variable copied when it could be moved cid#1660053 Variable copied when it could be moved cid#1660050 Variable copied when it could be moved cid#1660049 Variable copied when it could be moved cid#1660046 Variable copied when it could be moved cid#1660042 Variable copied when it could be moved cid#1660028 Variable copied when it could be moved cid#1660023 Variable copied when it could be moved cid#1660022 Variable copied when it could be moved cid#1660021 Variable copied when it could be moved cid#1660020 Variable copied when it could be moved cid#1660017 Variable copied when it could be moved cid#1660013 Variable copied when it could be moved cid#1660005 Variable copied when it could be moved cid#1660003 Variable copied when it could be moved cid#1659999 Variable copied when it could be moved cid#1659998 Variable copied when it could be moved cid#1659995 Variable copied when it could be moved cid#1659993 Variable copied when it could be moved cid#1659989 Variable copied when it could be moved cid#1659988 Variable copied when it could be moved Change-Id: I2a30c8a2ac8785050d49b98635b0b406535b185a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189056 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
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:
-
odpimport and export filters are inxmloffmodule (mostlyxmloff/source/draw) -
pptimport is insd/source/filter/ppt(big shared chunks are also insvx) -
pptexport is insd/source/filter/eppt(big shared chunks are also insvx) -
pptximport is inoox/source/ppt(and uses a lot ofoox/source/drawingmlandoox/source/*) -
pptxexport is insd/source/filter/eppt(mostly inpptx-*source files) and shared part is inoox/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.
Presenter Console
The main screen uses a hardware-accelerated
canvas (e.g. cairo canvas), while the entire secondary screen
uses a VCL-canvas that is created in
sd::framework::FullScreenPane::CreateCanvas().
The secondary screen contains 3 Panes which each have
2 XWindows for the border area & the actual content,
and each content Pane is backed by a sd::presenter::PresenterCanvas
that wraps the FullScreenPane's canvas and does clipping.
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.