Test repository to check push and ssh key
Find a file
andreas kainz dbcccd374e update app icns icons
thanks Mike Saunders

Change-Id: I7d358a4ccebc008efc67874db5d3f05efc80444a
Reviewed-on: https://gerrit.libreoffice.org/56207
Tested-by: Jenkins
Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2018-06-25 22:53:35 +02:00
.git-hooks
accessibility
android
animations
apple_remote
avmedia
basctl menubar basic: update menubar according swriter 2018-06-20 00:47:35 +02:00
basegfx
basic Related: tdf#118073 SbiScanner::NextSym: no symbol is no symbol 2018-06-18 17:12:35 +02:00
bean
bin Respect --bindir.. 2018-06-13 09:47:04 +02:00
binaryurp
bridges
canvas use more OutputDevice::GetBitmapEx 2018-06-21 08:19:31 +02:00
chart2 tdf#42949 Fix IWYU warnings in chart2/source/inc/[A-C]* 2018-06-25 11:00:01 +02:00
cli_ure
codemaker
comphelper merge GenericSolarMutex and SolarMutex 2018-06-21 08:19:49 +02:00
compilerplugins teach useuniqueptr loplugin about calling delete on a param 2018-06-22 20:11:50 +02:00
config_host
configmgr
connectivity tdf#118112: Use ParameterNameSubstitution for Mysql 2018-06-14 09:48:20 +02:00
cppcanvas
cppu
cppuhelper
cpputools
cui followup fix for "tdf#109269 very slow loading of user-defined dictionary" 2018-06-25 15:24:09 +02:00
dbaccess Skip CppunitTest_dbaccess_hsqlbinary_import unless ENABLE_JAVA 2018-06-21 18:09:16 +02:00
desktop loplugin:useuniqueptr in desktop 2018-06-25 09:12:38 +02:00
dictionaries@846e5da4b2 Updated core 2018-06-21 07:31:54 +02:00
distro-configs Just use --with-extra-buildid=Flatpak 2018-06-25 16:39:49 +02:00
drawinglayer use more OutputDevice::GetBitmapEx 2018-06-21 08:19:31 +02:00
dtrans
editeng
embeddedobj
embedserv
emfio
eventattacher
extensions Add a FIXME 2018-06-25 17:23:11 +03:00
external fix hunspell build break for non-cxx11 case 2018-06-25 21:33:25 +02:00
extras Added 20 autocorrect words to pt_PT 2018-06-25 00:47:24 +02:00
filter Fix typos 2018-06-22 21:30:31 +02:00
forms Fix typo 2018-06-21 13:01:50 +02:00
formula
fpicker
framework Rename nFlags to nSearchFlags 2018-06-19 14:46:56 +02:00
helpcompiler Don't create std::string from nullptr 2018-06-13 16:05:26 +02:00
helpcontent2@971f4369e9 Updated core 2018-06-25 16:22:09 +02:00
hwpfilter tdf#108523 Remove @author annotations 2018-06-18 11:29:46 +02:00
i18nlangtag
i18npool NatNum12: fix and add capitalization prefixes, tdf#115007 follow-up 2018-06-20 20:24:37 +02:00
i18nutil
icon-themes Karasa Jaga: Update many form icons etc 2018-06-24 05:41:52 +02:00
idl
idlc
include weld SwWatermarkDialog 2018-06-25 22:10:21 +02:00
instsetoo_native tdf#118303 - Wrong converting of the Vendor-String 2018-06-25 12:57:47 +02:00
io
ios
javaunohelper
jurt
jvmaccess
jvmfwk
l10ntools Add some help content to test-passive.oxt 2018-06-13 13:32:05 +02:00
librelogo
libreofficekit
lingucomponent
linguistic
lotuswordpro loplugin:useuniqueptr in XFStyleManager 2018-06-25 09:15:39 +02:00
m4
mysqlc
nlpsolver
o3tl
odk
offapi tdf#108523 Remove @author annotations 2018-06-18 11:29:46 +02:00
officecfg menubar: DataMenu is needed in bibliography too 2018-06-16 16:28:08 +02:00
onlineupdate
oovbaapi Add a MailMerge class and object to the Writer VBA API 2018-06-13 07:06:45 +02:00
oox oox: encryption/decryption test for Standard2007Engine 2018-06-22 23:42:24 +02:00
opencl tdf#42949 Fix IWYU warnings in include/sal/ 2018-06-22 09:06:31 +02:00
osx
package
postprocess
pyuno [API CHANGE] Add a sal_debug method to pyuno 2018-06-23 14:00:04 +02:00
qadevOOo tdf#45904 Move _XFormulaQuery Java tests to C++ 2018-06-14 18:25:57 +02:00
readlicense_oo update credits 2018-06-14 17:50:52 +02:00
registry
remotebridges
reportbuilder
reportdesign Resolves: tdf#118251 decide what parent colorpicker should have... 2018-06-22 17:49:58 +02:00
ridljar
sal Don't reset signal that hasn't been set 2018-06-21 16:33:09 +02:00
salhelper
sax
sc Close circle once in iterations only if not 'this' 2018-06-25 21:39:11 +02:00
scaddins tdf#42949 Fix IWYU warnings in include/sal/ 2018-06-22 09:06:31 +02:00
sccomp sccomp: Reserve enough space at once for micro-optimization 2018-06-23 10:53:21 +02:00
schema
scp2 Build kde-integration for '--enable-gtk3-kde5' as well 2018-06-13 11:17:29 +02:00
scripting Restore binary compatibility for ClassLoaderFactory 2018-06-15 21:57:37 +02:00
sd smartart : test documents 2018-06-25 19:38:36 +02:00
sdext
setup_native
sfx2 Notebookbar:Disabled appearence of context toolbars 2018-06-24 20:19:56 +02:00
shell tdf#96099 Remove trivial std::vector typedefs in sd, sfx2, shell 2018-06-23 13:13:14 +02:00
slideshow
smoketest
solenv weld SwWatermarkDialog 2018-06-25 22:10:21 +02:00
soltools
sot
starmath menubar: update math menubar for better sync 2018-06-14 20:36:57 +02:00
stoc tdf#96099 Remove trivial container typedefs in stoc, svl, svx, sw 2018-06-25 09:11:16 +02:00
store
svgio Fix typos 2018-06-14 23:13:12 +02:00
svl tdf#96099 Remove trivial container typedefs in stoc, svl, svx, sw 2018-06-25 09:11:16 +02:00
svtools weld SwWatermarkDialog 2018-06-25 22:10:21 +02:00
svx weld SwWatermarkDialog 2018-06-25 22:10:21 +02:00
sw weld SwWatermarkDialog 2018-06-25 22:10:21 +02:00
swext
sysui update app icns icons 2018-06-25 22:53:35 +02:00
test tdf#45904 Move _XFormulaQuery Java tests to C++ 2018-06-14 18:25:57 +02:00
testtools
toolkit use more OutputDevice::GetBitmapEx 2018-06-21 08:19:31 +02:00
tools teach useuniqueptr loplugin about calling delete on a param 2018-06-22 20:11:50 +02:00
translations@2aa8e04733 Updated core 2018-06-14 17:16:37 +02:00
ucb
ucbhelper
udkapi
uitest uitest: interpreter for log files 2018-06-24 12:57:23 +02:00
UnoControls
unodevtools
unoidl
unoil
unotest
unotools
unoxml
ure
uui
vbahelper
vcl weld SwWatermarkDialog 2018-06-25 22:10:21 +02:00
winaccessibility
wizards
writerfilter
writerperfect
xmerge
xmlhelp
xmloff tdf#42949 Fix IWYU warnings in include/sal/ 2018-06-22 09:06:31 +02:00
xmlreader
xmlscript
xmlsecurity xmlsecurity windows: implement ODF sign/verify with ECDSA keys 2018-06-25 08:59:17 +02:00
.buckconfig
.buckversion
.clang-format
.editorconfig
.gitattributes
.gitignore
.gitmodules
.gitreview
autogen.sh
BUCK
config.guess
config.sub
config_host.mk.in Respect --bindir.. 2018-06-13 09:47:04 +02:00
config_host_lang.mk.in
configure.ac Allow building KDE5 backend on Haiku 2018-06-21 17:44:30 +02:00
COPYING
COPYING.LGPL
COPYING.MPL
download.lst poppler: upgrade to release 0.66.0 2018-06-21 11:47:03 +02: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 Allow building KDE5 backend on Haiku 2018-06-21 17:44:30 +02:00
RepositoryExternal.mk poppler: upgrade to release 0.66.0 2018-06-21 11:47:03 +02:00
RepositoryFixes.mk
RepositoryModule_build.mk
RepositoryModule_host.mk
sanitize-ubsan-blacklist
TEMPLATE.SOURCECODE.HEADER

LibreOffice

Coverity Scan Build Status CII Best Practices

LibreOffice is an integrated office suite based on copyleft licenses and compatible with most document formats and standards. Libreoffice is backed by The Document Foundation, which represents a large independent community of enterprises, developers and other volunteers moved by the common goal of bringing to the market the best software for personal productivity. LibreOffice is open source, and free to download, use and distribute.

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 build chain and runtime baselines

These are the current minimal operating system and compiler versions to run and compile LibreOffice, also used by the TDF builds:

  • Windows:
    • Runtime: Windows 7
    • Build: Cygwin + Visual Studio 2015 Update 3
  • macOS:
    • Runtime: 10.9
    • Build: 10.12 + Xcode 8
  • Linux:
    • Runtime: RHEL 6 or CentOS 6
    • Build: GCC 4.8.1 or Clang
  • iOS (only for LibreOfficeKit):
    • Runtime: 11.4 (only support for newer i devices == 64 bit)
    • Build: Xcode 9.3 and iPhone SDK 11.4

At least Clang 3.4.2 is known to be too old to pass the configure.ac check "whether $CXX supports C++17, C++14, or C++11" in its current form (due to the #pragma GCC diagnostic ignored "-Wpragmas" that it does not understand).

If you want to use Clang with the LibreOffice compiler plugins, the minimal version of Clang is 3.8. Since Xcode doesn't provide the compiler plugin headers, you have to compile your own Clang to use them on macOS.

You can find the TDF configure switches in the distro-configs/ directory.

To setup your initial build environment on Windows and macOS, we provide the LibreOffice Development Environment (LODE) scripts.

For more information see the build instructions for your platform in the TDF wiki.

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:

https://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
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.

Rules for #include directives (C/C++)

Use the "..." form if and only if the included file is found next to the including file. Otherwise, use the <...> form. (For further details, see the mail Re: C[++]: Normalizing include syntax ("" vs <>).)

The UNO API include files should consistently use double quotes, for the benefit of external users of this API.

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.