Test repository to check push and ssh key
Find a file
Katarina Behrens 2a08be751d tdf#87862: Row spacing sneaked out, put it back
Change-Id: Ib7768e2bf7a9b9b8e1045dbce8d81ad68b94fb33
2015-05-07 12:38:06 +02:00
.git-hooks
accessibility cppcheck: noExplicitConstructor 2015-05-02 16:45:18 +01:00
android android: optipng the images. 2015-05-03 19:10:52 +02:00
animations cppcheck: noExplicitConstructor 2015-05-04 20:13:52 +01:00
apple_remote
avmedia Use various typed ToolBox::Set*Hdl Links 2015-05-06 08:20:55 +02:00
basctl Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
basebmp
basegfx Drop misused lcl_ prefix 2015-05-05 10:59:11 +03:00
basic Unwind SotStorageStreamRef typedef 2015-05-07 11:05:04 +02:00
bean
bin
binaryurp
bridges
canvas convert BMP_MIRROR constants to scoped enum 2015-05-06 09:01:31 +02:00
chart2 Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
clew
cli_ure
codemaker
comphelper Add support for progress bar callbacks to LibreOfficeKit clients 2015-05-06 17:55:58 +03:00
compilerplugins workaround for clang3.2 in vclwidgets clang plugin 2015-05-07 11:18:49 +02:00
config_host
configmgr
connectivity drop useless temp debugging strings 2015-05-04 12:00:58 +01:00
cppcanvas Get rid of the initial :: for the vcl namespace 2015-04-30 07:27:52 +03:00
cppu
cppuhelper cppuhelper: Allow logging the used services / constructors. 2015-05-02 12:29:09 +02:00
cpputools
cui Refactor Buttons to use RenderContext when painting 2015-05-07 09:57:48 +02:00
dbaccess Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
desktop Nah, the Android NDK we use doesn't have std::to_string() 2015-05-06 21:19:08 +03:00
dictionaries@59ff183f47
distro-configs
drawinglayer convert BMP_MIRROR constants to scoped enum 2015-05-06 09:01:31 +02:00
dtrans Bin some pointless comments and reduce some vertical whitespace 2015-04-30 06:14:12 +03:00
editeng Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
embeddedobj embeddedobj: allow creating objects lacking a FileFormatVersion=6800 filter 2015-05-04 16:12:14 +02:00
embedserv css::uno::Reference can automatically up-cast now 2015-05-04 13:11:13 +02:00
eventattacher
extensions convert CONFIG_MODE constants to scoped enum 2015-05-06 09:01:26 +02:00
external Use a dummy icu-config when cross-compiling harfbuzz (to Android) 2015-05-04 12:22:35 +03:00
extras add some missing glade prototypes 2015-05-05 17:21:57 +01:00
filter Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
forms vcl: rename other members of StateChangedType for consistency 2015-05-05 15:51:11 +02:00
formula fdo#77985 make calc function NETWORKDAYS comply with ODFF1.2 2015-05-05 19:15:15 +00:00
fpicker Use typed Timer::SetTimeoutHdl Link 2015-05-05 10:21:54 +02:00
framework Don't bother ensuring progress bar LibreOfficeKit callbacks are monotonical 2015-05-06 17:55:58 +03:00
helpcompiler
helpcontent2@9094a1a355
hwpfilter cppcheck: memleakOnRealloc 2015-05-04 20:13:53 +01:00
i18nlangtag
i18npool Resolves: tdf#91057 transliterateChar2Char throws MultipleCharsOutputException 2015-05-07 10:24:12 +01:00
i18nutil
icon-themes Breeze: update will sync with the svg plasma-next-icons git repository 2015-05-06 14:23:06 +00:00
idl
idlc
include Fix MSVC build 2015-05-07 12:30:34 +02:00
instsetoo_native
io
ios
javaunohelper
jurt
jvmaccess
jvmfwk
l10ntools
librelogo
libreofficekit
lingucomponent
linguistic Use typed Idle::SetIdleHdl Link 2015-05-05 12:05:38 +02:00
lotuswordpro loplugin:staticmethods 2015-05-05 09:30:40 +02:00
m4
mysqlc
nlpsolver
o3tl
odk
offapi
officecfg Avoid using letters with descenders as accelerators 2015-05-06 18:35:26 -05:00
oovbaapi
oox Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
opencl
osx
package
postprocess
pyuno
qadevOOo
readlicense_oo
registry
remotebridges
reportbuilder
reportdesign Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
ridljar
rsc Bin empty eval statement 2015-05-02 14:42:14 +02:00
sal Actually, let's just delete the now commented-out SAL_INFO lines 2015-05-01 11:02:17 +03:00
salhelper
sax
sc Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
scaddins fdo#77985 make calc function NETWORKDAYS comply with ODFF1.2 2015-05-05 19:15:15 +00:00
sccomp
scp2 scp2: add scanner ui files to language pack template 2015-05-01 07:17:10 +02:00
scripting
sd tdf#87862: Row spacing sneaked out, put it back 2015-05-07 12:38:06 +02:00
sdext
setup_native
sfx2 Fix a crash in SfxInfoBarWindow 2015-05-07 11:12:44 +01:00
shell Bin some pointless comments and reduce some vertical whitespace 2015-04-30 06:14:12 +03:00
slideshow loplugin:staticmethods 2015-05-05 14:05:20 +02:00
smoketest
solenv android: More services that are probably needed. 2015-05-06 12:31:02 +02:00
soltools
sot Reduce enum class StorageMode to bool transacted 2015-05-07 11:05:07 +02:00
starmath Unwind SotStorageStreamRef typedef 2015-05-07 11:05:04 +02:00
stoc
store
svgio loplugin:staticmethods 2015-05-05 09:30:39 +02:00
svl tdf#90258 Toggle Thousand Separator with Engineering Notation 2015-05-06 10:45:50 +00:00
svtools Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
svx Remove unnecessary includes of sot/storage.hxx from include/ 2015-05-07 11:05:05 +02:00
sw SotStorage ctor nStorageMode param is effectively only used as bool transacted 2015-05-07 11:05:06 +02:00
swext
sysui
test typo: strech -> stretch 2015-05-05 07:25:21 +00:00
testtools
toolkit cleanup DIALOG_NO_PARENT, follow on to tdf#91090 2015-05-06 12:12:26 +00:00
tools Add ability to change tint/shade of a color. 2015-05-07 14:10:51 +09:00
translations@7ab806a3d2
tubes
ucb loplugin:staticmethods 2015-05-05 09:30:39 +02:00
ucbhelper
udkapi
UnoControls remove unused #include awt/InvalidateStyle.hpp 2015-05-05 15:51:09 +02:00
unodevtools
unoidl
unoil
unotest
unotools fix for CONFIG_MODE constant -> enum conversion 2015-05-07 09:51:08 +02:00
unoxml
ure
uui VclPtr: error dialogs never deleted 2015-05-01 20:56:20 +01:00
vbahelper Use typed Timer::SetTimeoutHdl Link 2015-05-05 10:21:54 +02:00
vcl Hold a reference on the Window while emitting events from vcl backends. 2015-05-07 11:12:44 +01:00
winaccessibility
wizards
writerfilter loplugin:staticmethods 2015-05-05 09:30:40 +02:00
writerperfect Unwind SotStorageStreamRef typedef 2015-05-07 11:05:04 +02:00
xmerge
xmlhelp Bin some pointless comments and reduce some vertical whitespace 2015-04-30 06:14:12 +03:00
xmloff xmloff: convert to assert in SvXMLMetaExport 2015-05-06 16:18:26 +02:00
xmlreader
xmlscript cppcheck: noExplicitConstructor 2015-05-04 20:13:52 +01:00
xmlsecurity Remove SvStorage alias 2015-05-07 11:05:03 +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 Revert "update to liborcus 0.9.0" 2015-05-01 20:14:27 +00:00
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 Revert "update to liborcus 0.9.0" 2015-05-01 20:14:27 +00:00
RepositoryFixes.mk
RepositoryModule_build.mk
RepositoryModule_host.mk
TEMPLATE.SOURCECODE.HEADER
unusedcode.easy
unusedcode.exclude
unusedcode.README

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.