Test repository to check push and ssh key
Find a file
Andras Timar e35b2eede0 LOKit: hide 'To document' dropdown
In Online sheets can be copied/moved only in current document

Change-Id: Ic30d9ae1e48184ab2aadccedcc670e0fea357296
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106844
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
(cherry picked from commit f5fe6046b2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106817
Tested-by: Jenkins
2020-11-30 11:17:53 +01:00
.git-hooks set all .ui min require version of gtk to 3.20 2020-10-22 22:27:50 +02:00
.github
accessibility a11y : avoid double locking 2020-11-29 10:59:57 +01:00
android Make sure $(SODEST)/libc++_shared.so target dir exists 2020-11-19 11:50:31 +01:00
animations tdf#42949 Fix new IWYU warnings in directories [ab]* 2020-11-05 14:57:25 +01:00
apple_remote tdf#123936 Formatting files in module apple_remote with clang-format 2020-11-16 12:29:44 +01:00
avmedia Player::processEvent return value is unused 2020-11-25 22:58:16 +01:00
basctl loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
basegfx replace std::min(std::max()) with std::clamp 2020-11-16 13:46:01 +01:00
basic tdf#136801 : IsNumeric("+2") and CInt("+2") return correct values 2020-11-27 10:14:56 +01:00
bean Move all public Java classes to libreoffice.jar 2020-05-06 14:48:21 +02:00
bin check-missing-unittests: add drawingml 2020-11-21 00:06:37 +01:00
binaryurp loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
bridges Improve the C++/UNO bridge for macOS on Apple Silicon 2020-11-13 20:01:51 +01:00
canvas tdf#123936 Formatting files in module canvas with clang-format 2020-11-21 13:15:48 +01:00
chart2 tdf#138561 OOXML Chart import: fix custom shape position 2020-11-30 10:23:29 +01:00
cli_ure tdf#123936 Formatting files in module cli_ure with clang-format 2020-11-13 15:14:18 +01:00
codemaker tdf#123936 Formatting files in module codemaker with clang-format 2020-11-13 15:13:38 +01:00
comphelper loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
compilerplugins loplugin:toolslong: Exclude some Windows-specific files 2020-11-29 17:45:13 +01:00
config_host update Skia to chrome/m88 2020-11-17 10:54:55 +01:00
configmgr loplugin:stringview (clang-cl) 2020-11-25 10:53:32 +01:00
connectivity tdf#137745: crash, when deleting tables and changed relationship isn't changed 2020-11-27 19:08:09 +01:00
cppcanvas make tools::Long 64-bit on Windows platform 2020-11-11 06:34:17 +01:00
cppu loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
cppuhelper tdf#123936 Formatting files in module cppu with clang-format 2020-11-13 15:14:36 +01:00
cpputools loplugin:stringview 2020-11-11 11:58:37 +01:00
cui tdf#127294 add ToD Previews 2020-11-27 09:35:38 +01:00
dbaccess Use sal_IntPtr to transport HWND to IDataSourceLocator::put_hWnd 2020-11-26 17:34:18 +01:00
desktop tdf#48413 handle wildcards on Windows 2020-11-30 10:35:37 +01:00
dictionaries@2bfbaa38e1 Update git submodules 2020-11-24 18:19:09 +01:00
distro-configs Add a LibreOfficeWinArm64.conf 2020-10-04 15:18:21 +02:00
drawinglayer remove fontattribute.cxx from clang-format excludelist 2020-11-23 10:35:51 +01:00
editeng Use sal_Int64 to printf tools::Long values 2020-11-25 14:07:07 +01:00
embeddedobj Remove unused OleComponent::SetHostName aContName parameter 2020-11-25 11:27:00 +01:00
embedserv tdf#123936 Formatting files in module embedserv with clang-format 2020-11-13 15:15:46 +01:00
emfio Instead of labs, use overloaded abs 2020-11-16 21:43:09 +01:00
eventattacher tdf#42949 Fix new IWYU warnings in directories [e-f]* 2020-11-12 10:53:07 +01:00
extensions CComVariant.lVal is of type LONG 2020-11-27 13:15:59 +01:00
external Fix Firebird build on macOS on arm64 2020-11-27 00:16:45 +01:00
extras tdf#127294 add ToD Previews 2020-11-27 09:35:38 +01:00
filter tdf#131269 - fix importing PPT with different notes/presentations order 2020-11-26 17:54:03 +01:00
forms loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
formula add <!-- n-columns=1 n-rows=1 --> before every GtkGrid 2020-11-15 20:14:10 +01:00
fpicker loplugin:stringview (clang-cl) 2020-11-25 10:53:32 +01:00
framework tdf#131441 Disable "UNDOCKTOOLBAR" when toolbar is locked 2020-11-25 10:35:49 +01:00
helpcompiler tdf#123936 Formatting files in module helpcompiler with clang-format 2020-11-13 15:18:57 +01:00
helpcontent2@f6efeaae23 Update git submodules 2020-11-29 11:28:17 +01:00
hwpfilter tdf#123936 Formatting files in module hwpfilter with clang-format 2020-11-13 15:19:32 +01:00
i18nlangtag loplugin:stringviewparam: No good reason to exclude operator functions 2020-11-18 10:22:44 +01:00
i18npool drop custom Indic grapheme rules and rely on contemporary icu defaults 2020-11-28 20:31:29 +01:00
i18nutil loplugin:stringviewparam check methods too 2020-11-17 09:57:35 +01:00
icon-themes elementary: Update arrow icon as upstream 2020-11-28 00:27:39 +01:00
idl loplugin:stringviewparam check methods too 2020-11-17 09:57:35 +01:00
idlc tdf#123936 Formatting files in module idl with clang-format 2020-11-13 15:19:47 +01:00
include Preparing for mathml support of custom entity references. 2020-11-29 19:53:20 +01:00
instsetoo_native Resolves tdf#137880 - Fix for Windows installer image 2020-11-01 14:50:43 +01:00
io tdf#42949 Fix new IWYU warnings in directories [h-r]* 2020-11-10 14:13:14 +01:00
ios tdf#123936 Formatting files in module ios with clang-format 2020-11-13 14:26:28 +01:00
javaunohelper Fix typo in code 2020-09-01 10:02:05 +02:00
jurt tdf#123936 Formatting files in module jurt with clang-format 2020-11-13 08:20:50 +01:00
jvmaccess tdf#123936 Formatting files in module jvmaccess with clang-format 2020-11-13 08:20:01 +01:00
jvmfwk loplugin:stringview (clang-cl) 2020-11-25 10:53:32 +01:00
l10ntools Clean up --disable-assert-always-abort loplugin:stringviewparam 2020-11-16 21:45:23 +01:00
librelogo Fix typos 2020-11-02 20:42:17 +01:00
libreofficekit tdf#123936 Formatting files in module libreofficekit with clang-format 2020-11-19 10:43:43 +01:00
lingucomponent tdf#123936 Formatting files in module lingucomponent with clang-format 2020-11-13 08:22:27 +01:00
linguistic loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
lotuswordpro FindActuralStyleName->FindActualStyleName 2020-11-24 14:17:03 +01:00
m4
nlpsolver value and targetValue cannot be null at this point 2020-09-25 17:56:55 +02:00
o3tl tdf#123936 Formatting files in module o3tl with clang-format 2020-11-18 12:55:43 +01:00
odk tdf#123936 Formatting files in module odk with clang-format 2020-11-21 13:18:11 +01:00
offapi Preparing for mathml support of custom entity references. 2020-11-29 19:53:20 +01:00
officecfg tdf#126166 Change the command label for "uno:WordRightSel" 2020-11-23 12:51:02 +01:00
onlineupdate tdf#123936 Formatting files in module onlineupdate with clang-format 2020-11-19 19:21:39 +01:00
oovbaapi Fix typo in code 2020-09-01 12:11:02 +02:00
oox tdf#138561 OOXML Chart import: fix custom shape position 2020-11-30 10:23:29 +01:00
opencl loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
osx Rename CLANG_CC, CLANG_CXX configuration vars (avoid clash with scan-build) 2020-10-16 11:21:27 +02:00
package tdf#123936 Formatting files in module package with clang-format 2020-11-19 19:23:33 +01:00
pch
postprocess tdf#137573: The fps_aqua component was missing for macOS 2020-10-18 13:22:14 +02:00
pyuno tdf#42949 Fix new IWYU warnings in directories [h-r]* 2020-11-10 14:13:14 +01:00
qadevOOo Fix typo in code 2020-09-26 12:50:19 +02:00
readlicense_oo set all .ui min require version of gtk to 3.20 2020-10-22 22:27:50 +02:00
registry tdf#123936 Formatting files in module registry with clang-format 2020-11-19 19:24:01 +01:00
remotebridges remotebridges: create instances with uno constructors 2020-07-14 12:03:12 +02:00
reportbuilder Fix typo in code 2020-09-01 12:12:12 +02:00
reportdesign tdf#123936 Formatting files in module reportdesign with clang-format 2020-11-19 19:22:35 +01:00
ridljar socket cannot be null at this point 2020-09-25 17:56:33 +02:00
sal Resolves: tdf#138360 better accuracy in rtl_math_round() 2020-11-28 23:09:02 +01:00
salhelper tdf#123936 Formatting files in module salhelper with clang-format 2020-11-19 19:24:26 +01:00
sax Preparing for mathml support of custom entity references. 2020-11-29 19:53:20 +01:00
sc LOKit: hide 'To document' dropdown 2020-11-30 11:17:53 +01:00
scaddins loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
sccomp replace std::max(std::min()) with std::clamp 2020-11-16 07:53:49 +01:00
schema tdf#137627 sw top page border orientation: add ODF 2020-10-29 17:52:48 +01:00
scp2 ScriptForge - Update build files 2020-11-07 07:33:06 +01:00
scripting loplugin:stringview 2020-11-11 11:58:37 +01:00
sd Notebookbar contextual remove extension widget 2020-11-28 16:12:56 +01:00
sdext loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
setup_native tdf#123936 Formatting files in module setup_native with clang-format 2020-11-19 19:28:45 +01:00
sfx2 LOK: send state of SheetRightToLeft 2020-11-29 14:37:35 +01:00
shell RegCreateKeyExW etc. return LSTATUS 2020-11-27 13:19:24 +01:00
slideshow tdf#123936 Formatting files in module slideshow with clang-format 2020-11-19 19:28:27 +01:00
smoketest Remove unmaintained Executable_libtest 2020-10-26 14:50:25 +01:00
solenv Adapt solenv/flatpak-manifest.in to 86744f0399 2020-11-28 09:08:12 +01:00
soltools tdf#123936 Formatting files in module soltools with clang-format 2020-11-19 14:46:26 +01:00
sot loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
starmath ofz#27892 recursion too deep 2020-11-30 11:06:08 +01:00
stoc loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
store Replace #if with if constexpr() 2020-11-18 15:18:25 +01:00
svgio remove left-over printf 2020-11-23 08:09:51 +01:00
svl DdeInitializeW, DdeGetLastError, etc. use UINT as status return type 2020-11-25 14:10:00 +01:00
svtools tdf#138430 schedule a reformat if we turned off the scrollbar 2020-11-24 13:31:05 +01:00
svx tdf#138307 Chart import: fix lost custom shape text 2020-11-27 13:09:33 +01:00
sw tdf#137683 writerfilter Char highlight: import "none" 2020-11-30 11:01:03 +01:00
swext Move all public Java classes to libreoffice.jar 2020-05-06 14:48:21 +02:00
sysui Remove obsolete GNOME 2 MIME types files 2020-11-14 16:30:58 +01:00
test Introduce BootstrapFixture::IsDefaultDPI convenience function 2020-11-26 10:59:15 +01:00
testtools Make bridgetest exercise parameter passing in the C++/UNO bridge harder 2020-11-13 20:01:08 +01:00
toolkit loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
tools loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
translations@63be3a74f7 Update git submodules 2020-11-22 14:05:05 +01:00
ucb loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
ucbhelper loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
udkapi unoidl-read: Avoid redundant redeclarations 2020-08-18 11:36:26 +02:00
uitest tdf#137930: uitest: Add assert to check values are not reset 2020-11-17 13:02:07 +01:00
UnoControls loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
unodevtools loplugin:stringview 2020-11-11 11:58:37 +01:00
unoidl loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
unoil cli_ure: Disable .NET for Windows Arm64 build 2020-09-17 09:23:55 +02:00
unotest tdf#123936 Formatting files in module unotest with clang-format 2020-11-18 12:30:50 +01:00
unotools loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
unoxml loplugin:stringview 2020-11-11 11:58:37 +01:00
ure Move all public Java classes to libreoffice.jar 2020-05-06 14:48:21 +02:00
uui loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
vbahelper loplugin:stringview: Flag empty string converted to string view 2020-11-19 07:09:58 +01:00
vcl split CopyBits into two functions 2020-11-30 11:06:51 +01:00
winaccessibility Strength-reduce ReplaceOneChar parameter from string to single character 2020-11-25 14:09:03 +01:00
wizards ScriptForge - (SF_DialogControl) set OnEvent properties 2020-11-29 12:05:09 +01:00
writerfilter tdf#137683 writerfilter Char highlight: import "none" 2020-11-30 11:01:03 +01:00
writerperfect loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
xmerge Move all public Java classes to libreoffice.jar 2020-05-06 14:48:21 +02:00
xmlhelp loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
xmloff fastparser in XMLEmbeddedObjectImportContext 2020-11-30 07:25:58 +01:00
xmlreader
xmlscript loplugin:stringviewparam extend to comparison operators 2020-11-24 09:45:04 +01:00
xmlsecurity pdfium: replace PDFiumSignature::getPointer() with typed getters 2020-11-26 09:06:04 +01:00
.buckconfig
.buckversion
.clang-format
.editorconfig
.git-blame-ignore-revs put clang-format commits to .git-blame-ignore-revs 2020-10-18 22:35:07 +02:00
.gitattributes
.gitignore Move compilerplugins-related .gitignore content to compilerplugins/.gitignore 2020-08-17 13:38:04 +02:00
.gitmodules gitmodules: use relative paths 2020-10-21 21:51:54 +02:00
.gitpod.dockerfile
.gitpod.yml
.gitreview
antivirusDetection.vbs
autogen.sh Enable building for WSL (Linux) on WSL 2020-10-09 17:27:24 +02:00
BUCK
config.guess Update config.{guess,sub} with latest versions and handle fallout of that 2020-08-07 11:34:28 +02:00
config.sub Fix typo 2020-08-07 17:11:39 +02:00
config_host.mk.in firebird: build fixes (incl. parallel build) 2020-11-21 14:44:49 +01:00
config_host_lang.mk.in
configure.ac bump product version to 7.2.0.0.alpha0+ 2020-11-22 15:04:15 +01:00
COPYING
COPYING.LGPL
COPYING.MPL
download.lst external: update libxmlsec to 1.2.31 2020-11-27 08:48:08 +01:00
g
hardened_runtime.xcent.in tdf#135479: Seems we need the more broad entitlement for Java's sake 2020-09-23 11:16:03 +02:00
install-sh
leak-suppress.txt ignore leaks in idlc 2020-05-07 19:28:07 +02:00
Library_merged.mk
lo.xcent
logerrit Add an optional Gerrit change ID to testfeature 2020-07-30 12:48:37 +02:00
Makefile.fetch external: bundle box2d 2020-05-17 02:21:54 +02:00
Makefile.gbuild Fix the minimal build-tools target 2020-09-11 18:34:48 +02:00
Makefile.in Allow --enable-macosx-sandbox without the codesigning identities 2020-11-21 16:26:17 +01:00
README.cross
README.md
README.Solaris
Repository.mk ScriptForge - Update build files 2020-11-07 07:33:06 +01:00
RepositoryExternal.mk pdfium: remove non-public headers from include path 2020-10-08 12:40:31 +02:00
RepositoryFixes.mk
RepositoryModule_build.mk build-tools: default to system PCH setting 2020-10-30 12:46:42 +01:00
RepositoryModule_host.mk Move MimeContentTypeFactory into vcl 2020-09-22 22:37:54 +02:00
sanitize-ubsan-excludelist replace usage of blacklist with denylist 2020-07-10 01:34:54 +02:00
setup.cfg
TEMPLATE.SOURCECODE.HEADER

LibreOffice

Coverity Scan Build Status CII Best Practices Translation status

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 2019 version 16.4
  • macOS:
    • Runtime: 10.10
    • Build: 10.14.4 + Xcode 11.3
  • Linux:
    • Runtime: RHEL 7 or CentOS 7
    • Build: either GCC 7.0.0; or Clang 5.0.2 with libstdc++ 7.3.0
  • iOS (only for LibreOfficeKit):
    • Runtime: 11.4 (only support for newer i devices == 64 bit)
    • Build: Xcode 9.3 and iPhone SDK 11.4
  • Android:
    • Build: NDK r19c and SDK 22.6.2

If you want to use Clang with the LibreOffice compiler plugins, the minimal version of Clang is 5.0.2. 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.

loplugin:includeform (compilerplugins/clang/includeform.cxx) enforces these rules.

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.