Test repository to check push and ssh key
Find a file
Caolán McNamara eaf2c27888 boost->std
Change-Id: Ifde84627578283bd057d7393eb7e5578ef5c029a
2015-09-17 11:00:51 +01:00
.git-hooks
accessibility
android
animations
apple_remote
avmedia
basctl convert Link<> to typed 2015-09-17 08:19:34 +02:00
basebmp
basegfx
basic
bean
bin
binaryurp
bridges
canvas
chart2 tdf#91063 Improve the elements content panel of the chart sidebar 2015-09-17 07:14:05 +00:00
clew
cli_ure
codemaker
comphelper
compilerplugins
config_host
configmgr
connectivity
cppcanvas
cppu
cppuhelper
cpputools
cui convert Link<> to typed 2015-09-17 08:19:34 +02:00
dbaccess remove unused Link<> field 2015-09-17 08:19:35 +02:00
desktop boost->std 2015-09-17 11:00:51 +01:00
dictionaries@6eb65b46c5
distro-configs
drawinglayer
dtrans
editeng convert Link<> to typed 2015-09-17 08:19:32 +02:00
embeddedobj
embedserv
eventattacher
extensions convert Link<> to typed 2015-09-17 08:19:34 +02:00
external external/jpeg-turbo: pass (debug) CFLAGS into external build process 2015-09-17 10:51:50 +02:00
extras
filter boost->std 2015-09-17 11:00:51 +01:00
forms boost->std 2015-09-17 11:00:51 +01:00
formula boost->std 2015-09-17 11:00:51 +01:00
fpicker
framework
helpcompiler boost->std 2015-09-17 11:00:51 +01:00
helpcontent2@dbc9884be9 Updated core 2015-09-17 08:13:34 +00:00
hwpfilter
i18nlangtag
i18npool
i18nutil
icon-themes
idl
idlc
include make CalcMaskShift a verifiable operation 2015-09-17 08:51:27 +00:00
instsetoo_native
io
ios
javaunohelper
jurt
jvmaccess
jvmfwk
l10ntools boost->std 2015-09-17 11:00:51 +01:00
librelogo
libreofficekit boost->std 2015-09-17 11:00:51 +01:00
lingucomponent
linguistic boost->std 2015-09-17 11:00:51 +01:00
lotuswordpro boost->std 2015-09-17 11:00:51 +01:00
m4
mysqlc boost->std 2015-09-17 11:00:51 +01:00
nlpsolver
o3tl
odk
offapi
officecfg tdf#91063 Rename chart sidebar to properties 2015-09-17 07:16:38 +00:00
onlineupdate
oovbaapi
oox boost->std 2015-09-17 11:00:51 +01:00
opencl
osx
package
postprocess
pyuno
qadevOOo
readlicense_oo
registry
remotebridges
reportbuilder
reportdesign boost->std 2015-09-17 11:00:51 +01:00
ridljar
rsc
sal
salhelper
sax boost->std 2015-09-17 11:00:51 +01:00
sc add CVE-2015-2510 test case 2015-09-17 09:26:20 +01:00
scaddins
sccomp
scp2
scripting
sd convert Link<> to typed 2015-09-17 08:19:34 +02:00
sdext
setup_native
sfx2 boost->std 2015-09-17 11:00:51 +01:00
shell
slideshow
smoketest
solenv
soltools
sot boost->std 2015-09-17 11:00:51 +01:00
starmath Use member initialization lists for SmParser 2015-09-17 07:54:41 +00:00
stoc
store
svgio
svl boost->std 2015-09-17 11:00:51 +01:00
svtools unused headers 2015-09-17 11:00:51 +01:00
svx Fix typo in a c++ comment. 2015-09-17 07:15:42 +00:00
sw sw: use std::unique_ptr<> in wrtsh 2015-09-17 09:07:29 +02:00
swext
sysui
test
testtools
toolkit
tools
translations@6544a35097
tubes
ucb
ucbhelper
udkapi
UnoControls
unodevtools
unoidl
unoil
unotest
unotools
unoxml boost->std 2015-09-17 11:00:51 +01:00
ure
uui
vbahelper
vcl bmp failure not detected as such because of svg fallback test 2015-09-17 10:00:17 +00:00
winaccessibility
wizards
writerfilter
writerperfect convert Link<> to typed 2015-09-17 08:19:34 +02:00
xmerge
xmlhelp
xmloff
xmlreader
xmlscript
xmlsecurity convert Link<> to typed 2015-09-17 08:19:34 +02:00
.gitattributes
.gitignore
.gitmodules
.gitreview
autogen.sh
config.guess
config.sub
config_host.mk.in
config_host_lang.mk.in
configure.ac
COPYING
COPYING.LGPL
COPYING.MPL
download.lst
g
install-sh
leak-suppress.txt
Library_merged.mk
lo.xcent.in
logerrit
Makefile.fetch
Makefile.gbuild
Makefile.in
README.cross
README.md
README.Solaris
Repository.mk
RepositoryExternal.mk
RepositoryFixes.mk
RepositoryModule_build.mk
RepositoryModule_host.mk
TEMPLATE.SOURCECODE.HEADER
unusedcode.easy
unusedcode.exclude
unusedcode.README

LibreOffice

Coverity Scan Build Status

A quick overview of the LibreOffice code structure.

Overview

You can develop for LibreOffice in one of two ways, one recommended and one much less so. First the somewhat less recommended way: it is possible to use the SDK to develop an extension, for which you can read the API docs here and here. This re-uses the (extremely generic) UNO APIs that are also used by macro scripting in StarBasic.

The best way to add a generally useful feature to LibreOffice is to work on the code base however. Overall this way makes it easier to compile and build your code, it avoids any arbitrary limitations of our scripting APIs, and in general is far more simple and intuitive - if you are a reasonably able C++ programmer.

The important bits of code

Each module should have a README file inside it which has some degree of documentation for that module; patches are most welcome to improve those. We have those turned into a web page here:

http://docs.libreoffice.org/

However, there are two hundred modules, many of them of only peripheral interest for a specialist audience. So - where is the good stuff, the code that is most useful. Here is a quick overview of the most important ones:

Module Description
sal/ this provides a simple System Abstraction Layer
tools/ this provides basic internal types: 'Rectangle', 'Color' etc.
vcl/ this is the widget toolkit library and one rendering abstraction
framework UNO framework, responsible for building toolbars, menus, status bars, and the chrome around the document using widgets from VCL, and XML descriptions from /uiconfig/ files
sfx2/ legacy core framework used by Writer/Calc/Draw: document model / load/save / signals for actions etc.
svx/ drawing model related helper code, including much of Draw/Impress

Then applications

Module Description
desktop/ this is where the 'main' for the application lives, init / bootstrap. the name dates back to an ancient StarOffice that also drew a desktop
sw/ Writer
sc/ Calc
sd/ Draw / Impress

There are several other libraries that are helpful from a graphical perspective:

Module Description
basebmp/ enables a VCL compatible rendering API to render to bitmaps, as used for LibreOffice Online, Android, iOS, etc.
basegfx/ algorithms and data-types for graphics as used in the canvas
canvas/ new (UNO) canvas rendering model with various backends
cppcanvas/ C++ helper classes for using the UNO canvas
drawinglayer/ View code to render drawable objects and break them down into primitives we can render more easily.

Finding out more

Beyond this, you can read the README files, send us patches, ask on the mailing list libreoffice@lists.freedesktop.org (no subscription required) or poke people on IRC #libreoffice-dev on irc.freenode.net - we're a friendly and generally helpful mob. We know the code can be hard to get into at first, and so there are no silly questions.