| commit | af7516c81be02a3500a85a3c66923bb18afcd628 | [log] [tgz] |
|---|---|---|
| author | Eike Rathke <erack@redhat.com> | Sat Mar 09 01:20:46 2019 +0100 |
| committer | Andras Timar <andras.timar@collabora.com> | Wed Apr 24 22:48:14 2019 +0200 |
| tree | d31090a69accf6e12670fe2c1470752acdaaaea6 | |
| parent | c96b9c9fbed5d8b82dc90f6330256c1991b289cc [diff] |
Resolves: tdf#120013 tdf#123714 tdf#123736 shared formula group split This is a combination of 7 commits. Resolves: tdf#123714 tdf#123736 all split formula groups; tdf#120013 related Add all split shared formula groups to regrouping and mark for listening, even if the references had not be to adjusted. This partly also resolves tdf#120013 but there's more to that, a remaining partial group is not updated. Reviewed-on: https://gerrit.libreoffice.org/68951 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 7fdc5df36f5b50e0629405a47ff3d5765fcfeb93) Resolves: tdf#120013 tdf#123714 split-off group or single cell needs listening Reviewed-on: https://gerrit.libreoffice.org/69066 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 5c27a048658afcd2f78ef4d7e6c7128554ed3f4c) Resolves: tdf#123736 re-establish listeners for unshared formula groups ... when replacing one of their formula cells, with another formula cell or any other cell, passing through DetachFormulaCell() Reviewed-on: https://gerrit.libreoffice.org/69221 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 1634a6d926c6cfd8fe92be1f3ae6083d2fb80f5e) In case of sc::NoListening only SetNeedsListeningGroup(), tdf#123736 follow-up Reviewed-on: https://gerrit.libreoffice.org/69303 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 6160025b27e97841321be29863bb1efd8c194a5f) Related: tdf#123736 re-establish listeners also for vector unsharing ... via DetachFormulaCells() Reviewed-on: https://gerrit.libreoffice.org/69320 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 564d0d145cf9c164ea9c717b4b2113fd971fa0af) Reget position_type as the block or type may have changed, tdf#123736 related Reviewed-on: https://gerrit.libreoffice.org/69358 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit e5de84e73ffbaa1a45ab787750f5997582bbfa49) Listening when grouping in ScColumn::AttachNewFormulaCells(), (tdf#123736) Not directly related to tdf#123736 but similar approach. Setting a vector with ScColumn::SetFormulaCells() is currently only done for Undo documents, but implementation provided listening as only single cell listening for not-undo/clip documents, which wouldn't work if actually used in grouping context. The upcoming unit tests will use SetFormulaCells() for checks. Reviewed-on: https://gerrit.libreoffice.org/69371 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit de024e572dd7a588f82b84c68daa2051ec6b20e9) c511f618e9dde2288491c01cfcd889970fd6e4e5 d527307ef5278d87345c6dbfab9d05cb490dfe6c 3e5a5334dfe11002b526f942463626b62efbc340 a57308495a06e0df612eb1610b5f387d6b60ce08 2faf3e74d95cb1f3088f20cbb7de7ba965a6de21 990e6a5d6e1efcf70a2661b3a9a39c37d9e4c2e6 Change-Id: If6d1fef7e545017232a1b7e29b4d60dd58775e88 Reviewed-on: https://gerrit.libreoffice.org/69554 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
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.
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.
These are the current minimal operating system and compiler versions to run and compile LibreOffice, also used by the TDF builds:
If you want to use Clang with the LibreOffice compiler plugins, the minimal version of Clang is 3.4. 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.
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:
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. |
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.
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.