The Document Foundation Planet


November 11, 2019

Official TDF Blog

Community Member Monday: Celia Palacios

Today we’re talking to Celia Palacios, who has recently become a member of The Document Foundation, the non-profit entity behind LibreOffice:

To start, tell us a bit about yourself!

I am a Mexican old-guard user of Linux since 2001. I studied Electronic Engineering, and I have been working in thatfield since 1989. I learnt all sorts of Linux stuff because I love to learn by myself. In addition, I love to read historical detective novels, lots of science fiction, and go to the movies with my husband.

I love philosophy, symbolism and many alternative ideas about everything. I also like to have long, friendly debates about everybody’s presumptions (or assumptions?). I try to be open-minded, specially in this times when everyone’s getting polarized Mexico about our President. I used to be an athletic gal, but now I am a total coach-potato! Thanks, Netflix!

Why did you decide to become a member of TDF?

Because LibreOffice is one the leaders in free/libre software, and it is a real example of a community with many faces and one heart. And also because people in the Spanish LibreOffice Telegram channel are so intelligent, bright, open and charming: many of them working truly to help others. That moved me deeply.

What are you working on in the LibreOffice project right now?

I am helping the Spanish documentation team. I have an idea of asking university students to help us finish the first-steps guides. If we succeed, we will have an updated introductory guide, which is really needed in Spanish.

Anything else you plan to do in the future?

It is too early to answer that without saying “in the regular places”. But it is in my plans to update every module’s guide in Spanish. And also some advanced guides/tutorials, with practical cases, for Calc and Base, specially to equal the outcomes that Microsoft Excel’s Power Business Intelligence is achieving.

Thanks to Celia for all her help and input! If you’re reading this and also want to join our friendly community, see here to get started (or visit the Spanish page). And if you’re already active in the LibreOffice project, consider becoming a member, so you can vote for TDF’s Board of Directors and help to make other important decisions:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

by Mike Saunders at November 11, 2019 04:01 PM

November 09, 2019

Roman Kuznetsov

The best LibreOffice Extensions. Remove Duplicates Fast

There are many good extensions for LibreOffice. You can find it all on site I want to tell you about the best from it.
So, there is an enhancement 85976 about adding of Remove Duplicates feature to LibreOffice Calc. That is really useful function and LibreOffice Calc isn't having it now.
However, there is Remove Duplicates Fast extension that adds need feature to Calc. It's a fork of another extension Remove Duplicates.
RDF allows you delete all row duplicates from selected range using values from one or more column. Just download it by link above, install and use it from Data menu.
Thanks to Mike Kaganski for great code writing.

by Roman Kuznetsov ( at November 09, 2019 11:12 PM

Luboš Luňák

Clang precompiled headers and improving C++ compile times, take #2

It's been almost half a year since I mentioned how precompiled headers do (not) improve C++ compile times. Quite a long time, filled with doing other things, life, occassionally working on getting my patch production-ready and, last but definitely not least, abandoning that patch and starting from scratch again.
It turns out, the problems I mentioned last time had already been more or less solved in Clang. But only for C++ modules, not for precompiled headers. *sigh* I had really mixed feelings when I finally realized that. First of all, not knowing Clang internals that well, it took me quite a long time to get to this point figuring it all out, probably longer than it could have. Second, I've been using C++ modules when building Clang itself and while it's usable, I don't consider it ready (for example, sometimes it actually makes the build slower), not to mention that it's non-trivial to setup, not standardized yet and other compilers (AFAIK) do not yet support C++ modules. And finally, WTH has nobody else yet noticed and done the work for precompiled headers too? After all the trouble with finding out how the relevant Clang parts work, the necessary patches mostly border on being trivial. Which, on the other hand, is at least the good news.
And so I'm switching for LibreOffice building to my patched build of Clang. For the motivation, maybe let's start with an updated picture from the last time:
This is again column2.cxx, a larger C++ file from Calc. The first row is again compilation without any PCH involved. The second row is unpatched Clang with --enable-pch=full, showing again that way too large PCHs do not really pay off (here it does, because the source file is large, but for small ones such as bcaslots.cxx shown last time it makes things slower). In case you notice the orange 'DebugType' in the third row that looks like it should be in the second row too, it should be there, but that's one of these patches of mine that the openSUSE package does not have.
The third row is with one patch that does the PerformPendingInstantiations phase also already while building the PCH. The patch is pretty much a one-liner when not counting handling fallout from some Clang tests failing because of stuff getting slightly reordered because of this. Even by now I still don't understand why PCH generation had to delay this until every single compilation using the PCH. The commit introducing this had a commit message that didn't make much sense to me, the test it added works perfectly fine now. Presumably it's been fixed by the C++ modules work. Well, who cares, it apparently works.
The last row adds also Clang options -fmodules-codegen -fmodules-debuginfo. They do pretty much what I was trying to achieve with my original patch, they just approach the problem from a different side (and they also do not have the technical problems that made me abandon my approach ...). They normally work only for C++ modules, so that needed another patch, plus a patch fixing some problems. Since this makes Clang emit all kinds of stuff from the PCH into one specific object file in the hopes that all the compilations using the PCH will need that too but will be able to reuse the shared code instead, LibreOffice now also needs to link with --gc-sections, which throws away all the possibly problematic parts where Clang guessed wrong. But hey, it works. Even with ccache and Icecream (if you have the latest Icecream, that is, and don't mind that it "implements" PCHs for remote compilations by simply throwing the PCH away ... it still pays off).
So, that it's for a single compilation. How much does it help with building in practice? Time for more pretty colorful pictures:

This is a debug LO build on my 4-core (8 HT) Ryzen laptop, Library_sm is relatively small (36 source files), Library_scfilt is larger (154 source files). Plain 'Clang' means unpatched Clang(v9), 'Clang+' is with the PerformPendingInstantiations patch (i.e. the third row above), 'Clang++' is both patches (i.e. the fourth row above). The setting is either --enable-pch=base for including only system and base LO headers in the PCH, or --enable-pch=full for including everything that makes sense. It clearly shows that using large PCHs with GCC or unpatched Clang just doesn't make sense.
Note that GCC(v9) and MSVC(v2017) are there more as a reference than a fair comparison. MSVC runs on a different OS and the build may be possibly slightly handicaped by some things taking longer in Cygwin/Windows. GCC comes from its openSUSE package, which AFAICT is built without LTO (unlike the Clang package, where it makes a noticeable difference).
And in case the graphs don't seem impressive enough, here's one for Library_sc, which with its 598 source files is too big for me to bother measuring it in all cases. This is the difference PCHs can make. That's 11:37 to 4:34, almost down to one third:
As for building entire LO from scratch, it can be like in the picture below (or even better). The effect there is smaller, because the build consists of other things than just building libraries, and some of the code built doesn't use PCHs. And it's even smaller than it could be, because I used --enable-pch=base, as that's what I've been using up to now (although now I'll switch to a higher level). That's about 1h42m without PCHs to 1h14m with unpatched Clang (27% percent saved), and 1h06m with patches (and the 8minutes difference is still 11% of the unpatched time). Not bad, given that this is the entire LO build. Those 6 minutes for ccache are there to show the maximum possible improvement (or rather nowhere near possible, since the compiler normally still has to do the work of actually compiling the code somehow).
In case you'd want to use this too, that's not up to me now. The patches are now sitting and waiting in the LLVM Phabricator. Hopefully somebody there still cares about PCHs too.

by llunak ( at November 09, 2019 08:01 PM

Official TDF Blog

Four more videos from the auditorium at LibreOffice Conference 2019

We’ve uploaded some more videos from our recent LibreOffice Conference 2019 in Almeria, Spain! First up, “Databases in LibreOffice” with Tamás Bunth:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Next, “Scripting LibreOffice Python macros” with Alain Romedenne:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

“Custom Widget Themes” with Tomaž Vajngerl:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

And the Google Summer of Code (GSoC) panel:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

by Mike Saunders at November 09, 2019 03:03 PM

Mike Kaganski

When Legacy Justifies Errors

Since forever, Basic in had a bug: it didn’t properly check closing parentheses in expressions like

FirstUpper = UCase( Left( sString, 1 ) + LCase( Mid( sString, 2 ) )

(example taken from this AskLibO question). Note the mismatch between opening and closing parentheses: four opening, and only three closing. The author missed one to close UCase function after Left( sString, 1 ), and any compiler would naturally point out to this common mistake – any but StarBasic in OOo and derivatives.

What StarBasic did was auto-closing the expression in the end when compiling. It would only complain if the result of such auto-closing would be ill-formed; sometimes (as in the example above), the result would be syntactically correct – but not necessarily semantically correct: the example above compiled with StarBasic did not what author expected (a text with first character capitalized, and the rest of the text in lowercase), but returned text in all caps instead. For some similar cases, such errors could be not easy to find in the absence of compiler check, especially in a large project.

This has been reported to LibreOffice bug tracker as tdf#80731 back in 2014; and it was addressed in 5.4 development cycle, with the fix backported into 5.3.1. A nice and correct fix, isn’t it?

Well, not actually. It turned out, that over the years, the amount of existing and actually used legacy code having the error has become so big, that it was unrealistic to make sure that all of it is checked and fixed. Of course, some errors were found in the code bundled with LibreOffice itself – and naturally, it was fixed. Some third-party extensions – quite a number of them – also happened to have it; and all authors who could be contacted, had released updated releases with the mistake corrected; thank you! But it wasn’t possible to test any extension out there; and besides publicly available and supported extensions, there were also unsupported (but still used, and useful) ones; and private ones (used by those who developed/paid for their development); and also uncountable macros outside of any extensions, and all of them having the error, that happily worked before, suddenly stopped working for their users … so after some time, the fix was reverted both from 5.3.3, and from still developing 5.4 (tdf#106529). By the way, I was enjoying reading “AltSearch extension put a bugfix release 1.4.2 to work around this bug” there, as if pointing to syntax error was actually a LibreOffice’s bug, not a mistake in the extension’s code.

So LibreOffice kept silently allowing the wrong syntax ever after 5.3.3, until now. Today I have reinstated the original fix by Pierre Lepage from 5.4, with one modification: the check is only active when compiling the code from within Basic IDE. What does it mean? It means, that for anyone writing a new code in the Basic IDE, the syntax error will be properly found and shown. When one opens an existing module in the IDE, and makes a modification (which would of course trigger recompilation), the existing errors in the same module (even in different routines) would be found, too. But if the code is compiled not from the IDE (as when a macro is executed from an event handler; or when an extension runs its code), the old permissive handling is kept, and the code with errors will continue working as before.

I consider this an acceptable compromise, which would both allow existing users of legacy code to keep using their code, and still prevent creation of new buggy code (and also help gradually cleaning up the existing errors in supported Basic programs).

The change will appear in coming version 6.4. It’s still to be seen if this change will survive, or will it also uncover a different can of worms, and be eventually reverted, as its predecessor 😊

by mikekaganski at November 09, 2019 10:17 AM

November 08, 2019

Roman Kuznetsov

Footnotes and Endnotes in LibreOffice Writer

It's translation of my Russian post about Footnotes and Endnotes to English.
What's Footnote? Wiki says us next:
A note is a string of text placed at the bottom of a page in a book or document or at the end of a chapter, volume or the whole text. The note can provide an author's comments on the main text or citations of a reference work in support of the text. Footnotes are notes at the foot of the page while endnotes are collected under a separate heading at the end of a chapter, volume, or entire work.
It looks in the text document so:
Note, the notes in the text are highlight by gray color. It made for help of users and will not be print on paper.
LibreOffice Writer can insert both types of notes: Footnotes and Endnotes.
On image above you see that footnotes places in bottom of page and endnotes places on latest page in the document. Page with endnotes is always latest page in the document. If you have last "empty" page in your document with even only one empty paragraph, then the endnotes page will be next page anyway.
Font size for footnotes and endnotes is smaller than basic font size in text body by default.
Use menu "Insert->Footnote and Endnote->Footnote" and "Insert->Footnote and Endnote->Endnote" to insert notes.
Notes have own options. You can find it in "Tools->Footnotes and Endnotes...". I think it needs to rename that item to something like "Foot/Endnotes settings".
The dialog has two tabs:
Here can set up numbering type, for Footnotes can to set up counting per page, per chapter or per document, can select paragraph ans symbol styles, etc.
Footnotes have else one place with some parameters. It's "Page style" dialog, "Footnote" tab:
Look at two options in Footnote area section. Its are responsible for footnotes area height on the page. If you select "Maximum footnote height" with small value and your footnote's text will be too long, then that text could be move to next page to its footnotes area. It may be unwanted. Also here you can customize Separator line between text body and footnotes area.
Next place with some parameters for notes is "Paragraph style" dialog for Footnote or Endnote. Select your Footnote (or Endnote), open Styles tab in the Sidebar, select Footnote (or Endnote) in the list of styles, right click and select "Modify":
Here you can change many options for text of footnotes.
Note, you can select any paragraph style for footnotes (or endnotes) text. Just for your convenience LibreOffice already has predefined styles. Footnote paragraph style is just style by default for footnotes.
Next thing that you'll want customize is note number view in the text body. Use options of Footnote (or Endnote) anchor symbol style. Find that style in the list of symbol styles in the Sidebar, right click on style name and select "Modify". Use "Font" and "Position" tabs in the dialog to customize view of note number.
Also Footnote text in bottom of the page has a number. If you want customize that number view, then use changing of "Footnote (or Endnote) characters" character style.
And, finally, there are pair of lifehacks for work with Footnotes and Endnotes in Writer text document.
First. Possibly you'll want to have two or more the same footnote number in the text body that will be link with only one footnote text in bottom of the page:
Make follow steps:
1. Insert first Footnote using menu "Insert->Footnote and Endnote->Footnote"
2. Second and all next the same number we'll be insert using dialog "Insert->Cross-reference...". In "Type" list select "Footnote", in "Insert reference to" list select "Reference, then press "Insert" button. You got link to the same footnote. But it looks like text body text. So...
3. Select your second footnote number in text body and apply to it "Footnote anchor" symbol style!
Second. Normally Endnotes place on latest page of the document. But there is a method for placing of Endnotes after end of text body at once.
1. Make sure you have all need Endnotes in the your document. 
2. Select all text using Ctrl+A.
3. Select menu "Insert->Section"
4. Go to Footnotes/Endnotes tab
5. Check "Collect at end of section" in Endnotes section
6. Press "Insert" button
Voila, we have Endnotes after text body at once.

by Roman Kuznetsov ( at November 08, 2019 08:05 AM

November 07, 2019

Rewriting large parts of Beast and Bse

Last Tuesday Beast 0.15.0 was released. This is most probably the last release that supports the Gtk+ Beast UI. We have most of the bits and pieces together to move towards the new EBeast UI and a new synthesis core in the upcoming months and will get rid of a lot of legacy code along the way. For a…

November 07, 2019 03:00 PM

LibreOffice QA Blog

QA Report: October 2019

General Activities

  1. The first Bug Hunting Session for LibreOffice 6.4 took place on October, 21
  2. The last release of the 6.2 family ( LibreOffice 6.2.8 ) was released on October, 17
  3. LibreOffice 6.3.3 was released on October, 31
  4. Jan-Marek Glogowski (CIB ) fixed a slide tearing issue that affected many users
  5. Andreas Kainz reworked the layout of many dialogs. E.g. Autocorrect Dialog
  6. The GTK UI backend now uses native dialogs thanks to the tireless work of Caolán McNamara (Red Hat)
  7. Miklos Vajna (Collabora) finished implementing continuous endnotes compatibility setting in Writer layout, allowing rendering endnotes in a way which is closer to what Word users expect
  8. Miklos Vajna (Collabora) added support for allow-overlap shape property
  9. Muhammet Kara (Collabora) implemented full-sheet previews for Calc and harmonised UI references to “pages” and “slides” in Draw and Impress
  10. Tamás Zolnai (Collabora) added a table section to the Writer’s sidebar
  11. Luboš Luňák (Collabora) and Tomaž Vajngerl (Collabora) are working on a replacement of cairo with skia
  12. Gülşah Köse (Collabora) added support for text camera z rotation while pptx import
  13. Noel Grandin (Collabora), Aron Budea (Collabora) and Eike Rathke (Ret Hat) are adapting the code base to allow Calc to have more than 1024 columns
  14. On MM:SS or [MM]:SS or MM:SS.00 or [MM]:SS.00 pre-formatted cells a two digit groups input like 12:34 is now accepted as minutes:seconds value instead of the usual hours:minutes:00 value. Eike Rathke (Red Hat)
  15. Fix missing change tracking layout of numbers and bullets of lists. tdf#42748 (László Németh, NISZ)
  16. Xisco Fauli fixed some PPTX import/export bugs
  17. Balazs Varga (NISZ) keeps improving OOXML Charts interoperability
  18. Improved scalability of formula-groups computation on CPUs with large number of cores by potentially threading multiple independent formula-groups together. Dennis Francis (Collabora)
  19. Michael Stahl (CIB) did a bunch of improvements related to Fieldmarks in Writer
  20. Jan-Marek Glogowski (CIB) improved how DOCX footnotes are imported
  21. Michael Weghorn fixed some issued related to the Mail merge

Reported Bugs

622 bugs, 99 of which are enhancements, have been reported by 371 people.

Top 10 Reporters

  1. Nicolas Christener ( 39 )
  2. Xisco Faulí ( 34 )
  3. Mike Kaganski ( 16 )
  4. John ( 15 )
  5. Roman Kuznetsov ( 13 )
  6. Regina Henschel ( 13 )
  7. NISZ LibreOffice Team ( 11 )
  8. andreas_k ( 10 )
  9. Cor Nouws ( 9 )
  10. Gerry Garvey ( 8 )

Triaged Bugs

664 bugs have been triaged by 70 people.

Top 10 Triagers

  1. Xisco Faulí ( 225 )
  2. Dieter Praas ( 70 )
  3. Heiko Tietze ( 50 )
  4. V Stuart Foote ( 39 )
  5. Oliver Brinzing ( 39 )
  6. Julien Nabet ( 37 )
  7. Timur ( 27 )
  8. Alex Thurgood ( 17 )
  9. raal ( 17 )
  10. Roman Kuznetsov ( 16 )

Resolution of resolved bugs

618 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

218 bugs have been fixed by 38 people.

Top 10 Fixers

  1. Caolán McNamara ( 25 )
  2. Eike Rathke ( 12 )
  3. Miklos Vajna ( 9 )
  4. Mike Kaganski ( 9 )
  5. Jim Raykowski ( 8 )
  6. László Németh ( 7 )
  7. Xisco Fauli ( 7 )
  8. Tor Lillqvist ( 7 )
  9. Balazs Varga ( 7 )
  10. Muhammet Kara ( 5 )

List of critical bugs fixed

  1. tdf#127306 CRASH: Closing LibreOffice after deleting a chart ( Thanks to Samuel Mehrbrodt )
  2. tdf#128013 Crash when linking an odp file ( Thanks to Julien Nabet )

List of high severity bugs fixed

  1. tdf#115967 Distorted formulas on printing to PDF or exporting to PDF for RTL text ( Thanks to Xisco Fauli )
  2. tdf#120209 crash while changing language of formula to english ( Thanks to Caolán McNamara )
  3. tdf#125585 Filesave: OLE objects corruption and missing (per Comment 12) – repair damaged documents with fixed LO per Comment 25 ( Thanks to Regina Henschel )
  4. tdf#127450 Impress crashes by changing the symbol of a bulleted list (GTK crash with 3.18, no crash 3.22) ( Thanks to Caolán McNamara )
  5. tdf#127896 “Exchange database” leads to crash (non-gtk3) ( Thanks to Caolán McNamara )
  6. tdf#127913 CRASH: applying popart filter to an image ( Thanks to Noel Grandin )
  7. tdf#127958 Crash in: mergedlo.dll (adding 2 or more ODT files into Writer master document) ( Thanks to Noel Grandin )
  8. tdf#128037 GTK3: insert caption crash ( Thanks to Caolán McNamara )
  9. tdf#128232 Crash when trying to delete unused User Field ( Thanks to Julien Nabet )
  10. tdf#128313 LibreOffice Calc Editing Find&replace results in Failure to respond – Program hangs ( Thanks to Caolán McNamara )
  11. tdf#128418 print preview with writer crash LO ( Thanks to Samuel Mehrbrodt )
  12. tdf#40534 slide tearing or not shown in LARGE screens (high resolution) with hardware acceleration enabled (a buffer issue per comment 58) ( Thanks to Jan-Marek Glogowski )

List of crashes fixed

  1. tdf#120209 crash while changing language of formula to english ( Thanks to Caolán McNamara )
  2. tdf#123733 Crash when loading the same file twice but first load was not “complete” ( Thanks to Tor Lillqvist )
  3. tdf#126974 iPad OS 13: closing (killing) the app results in a crash ( Thanks to Tor Lillqvist )
  4. tdf#127306 CRASH: Closing LibreOffice after deleting a chart ( Thanks to Samuel Mehrbrodt )
  5. tdf#127450 Impress crashes by changing the symbol of a bulleted list (GTK crash with 3.18, no crash 3.22) ( Thanks to Caolán McNamara )
  6. tdf#127711 A runtime-switch for the MiniCrashDump ( Thanks to Juergen Funk )
  7. tdf#127766 Saving PPT leads to crash on iOS ( Thanks to Tor Lillqvist )
  8. tdf#127882 Libreoffice 6.3.2 crashes on document properties (gtk3 3.18) ( Thanks to Caolán McNamara )
  9. tdf#127896 “Exchange database” leads to crash (non-gtk3) ( Thanks to Caolán McNamara )
  10. tdf#127913 CRASH: applying popart filter to an image ( Thanks to Noel Grandin )
  11. tdf#127941 iOS: crash in impress when opening spellcheck dialog ( Thanks to Jan Holesovsky )
  12. tdf#127946 CRASH closing LibreOffice with the tip of the day dialog open (reintroduced) ( Thanks to Caolán McNamara )
  13. tdf#127953 CRASH: Closing Edit Style dialog ( Thanks to Caolán McNamara )
  14. tdf#127958 Crash in: mergedlo.dll (adding 2 or more ODT files into Writer master document) ( Thanks to Noel Grandin )
  15. tdf#128013 Crash when linking an odp file ( Thanks to Julien Nabet )
  16. tdf#128037 GTK3: insert caption crash ( Thanks to Caolán McNamara )
  17. tdf#128139 CRASH: typing text while macro recording is active ( Thanks to Mike Kaganski )
  18. tdf#128177 Inserting “Bibliography Entry…” leads to crash on iOS ( Thanks to Tor Lillqvist )
  19. tdf#128209 CRASH: Opening file with rotated text ( Thanks to Gülşah Köse )
  20. tdf#128232 Crash when trying to delete unused User Field ( Thanks to Julien Nabet )
  21. tdf#128241 Crash when opening print dialog (gtk3 only) ( Thanks to Caolán McNamara )
  22. tdf#128393 gtk3: insert -> fields -> more fields crashes ( Thanks to Caolán McNamara )
  23. tdf#128418 print preview with writer crash LO ( Thanks to Samuel Mehrbrodt )

List of performance issues fixed

  1. tdf#126021 Calc – the time required to save some files (in xls or xlsx format) is up to 20x longer in 6.2.4 versus 6.1.6 ( Thanks to Noel Grandin )

List of old bugs ( more than 4 years old ) fixed

  1. tdf#40534 slide tearing or not shown in LARGE screens (high resolution) with hardware acceleration enabled (a buffer issue per comment 58) ( Thanks to Jan-Marek Glogowski )
  2. tdf#42748 EDITING: Numbering in numbered list doesn’t show when affected by tracked changes ( Thanks to László Németh )
  3. tdf#52316 UI: Page count in Status bar does not respect setting “Print automatically inserted blank pages”; Incorrect value for page count field (see comment #16) ( Thanks to László Németh )
  4. tdf#62955 UI When opening a Macro (Alt-F11) allow searching a module/ function name with typing the first letter ( Thanks to Andreas Heinisch )
  5. tdf#76441 FORMATTING: MM:SS time input if formatted as such ( Thanks to Eike Rathke )
  6. tdf#79007 FILEOPEN PPTX Shapes with washout mode are not displayed ( Thanks to Xisco Fauli )
  7. tdf#81100 FILEOPEN: tblHeader property of the table is not being imported correctly ( Thanks to László Németh )
  8. tdf#84257 Menus, dialogs and sidebar having the word ‘page’ rather than ‘slide’ ( Thanks to Muhammet Kara )
  9. tdf#86188 FILESAVE Comments to footnotes corrupt layout when converted to DOCX or DOC ( Thanks to Kelemen Gábor )
  10. tdf#92845 changing value in Tools-Options-LibreOffice Writer-Comparison is not persistent after restart ( Thanks to Gabor Kelemen )
  11. tdf#94117 Windows 64-bit and executable name of 64-bit build of ghostscript — gswin64c.exe ( Thanks to Mike Kaganski )


80 bugs have been retested by 41 people.

Top 10 testers

  1. Buovjaga ( 16 )
  2. Xisco Faulí ( 9 )
  3. Julien Nabet ( 7 )
  4. Timur ( 6 )
  5. Roman Kuznetsov ( 4 )
  6. Dieter Praas ( 4 )
  7. Telesto ( 2 )
  8. raal ( 2 )
  9. Heiko Tietze ( 2 )
  10. Dennis Roczek ( 1 )


131 bugs have been duplicated by 31 people.

Top 10 testers

  1. Xisco Faulí ( 33 )
  2. V Stuart Foote ( 22 )
  3. Timur ( 10 )
  4. Oliver Brinzing ( 7 )
  5. Alex Thurgood ( 6 )
  6. m.a.riosv ( 5 )
  7. Buovjaga ( 4 )
  8. Mike Kaganski ( 4 )
  9. Roman Kuznetsov ( 4 )
  10. Eike Rathke ( 3 )

Verified bug fixes

90 bugs have been verified by 13 people.

Top 10 Verifiers

  1. Xisco Faulí ( 60 )
  2. Dieter Praas ( 8 )
  3. Buovjaga ( 7 )
  4. Timur ( 5 )
  5. Patrick Jaap ( 2 )
  6. NISZ LibreOffice Team ( 1 )
  7. kabilo ( 1 )
  8. Harald Koester ( 1 )
  9. Ming Hua ( 1 )
  10. Roman Kuznetsov ( 1 )

Categorized Bugs

307 bugs have been categorized with a metabug by 33 people.

Top 10 Categorizers

  1. Dieter Praas ( 71 )
  2. Roman Kuznetsov ( 39 )
  3. oesterblog-admin ( 26 )
  4. Xisco Faulí ( 23 )
  5. V Stuart Foote ( 22 )
  6. Thomas Lendo ( 18 )
  7. Aron Budea ( 15 )
  8. Buovjaga ( 10 )
  9. NISZ LibreOffice Team ( 10 )
  10. Eyal Rozenberg ( 9 )

Regression Bugs

103 bugs have been set as regressions by 24 people.

Top 10

  1. Xisco Faulí ( 39 )
  2. Timur ( 9 )
  3. Oliver Brinzing ( 9 )
  4. Cor Nouws ( 6 )
  5. Alex Thurgood ( 6 )
  6. raal ( 5 )
  7. Roman Kuznetsov ( 5 )
  8. Dieter Praas ( 4 )
  9. Telesto ( 3 )
  10. Michael Weghorn ( 2 )

Bisected Bugs

71 bugs have been bisected by 13 people.

Top 10 Bisecters

  1. Xisco Faulí ( 42 )
  2. Oliver Brinzing ( 7 )
  3. Timur ( 5 )
  4. raal ( 5 )
  5. NISZ LibreOffice Team ( 2 )
  6. Justin L ( 2 )
  7. Michael Weghorn ( 2 )
  8. Aron Budea ( 1 )
  9. V Stuart Foote ( 1 )
  10. Telesto ( 1 )

Evolution of Unconfirmed Bugs

Check the current list of unconfirmed bugs here

Evolution of Open Regressions

Check the current list of open regressions here

Evolution of Open bibisectRequests

Check the current list of open bibisectrequests here

Evolution of Highest Priority Bugs

Check the current list of highest priority bugs here

Evolution of High Priority Bugs

Check the current list of high priority bugs here

Thank you all for making Libreoffice rock!
Join us and help to keep LibreOffice super reliable!
Check the Get Involved page out now!

by x1sc0 at November 07, 2019 12:01 PM

Official TDF Blog

The Document Foundation welcomes the release to OASIS of the TC Committee Draft of ODF Version 1.3 for ratification

Editor of the new version of the ODF standard document format sponsored by the Community of ODF Specification Maintainers (COSM) *

Berlin, November 7, 2019 – The Document Foundation welcomes the release to OASIS of TC Committee Draft of ODF Version 1.3 for ratification. At the end of the process, ODF Version 1.3 will be submitted to ISO to become a standard. The final approval is expected in late 2020 or early 2021.

Editing of ODF Version 1.3 Committee Draft has been sponsored by the Community of ODF Specification Maintainers (COSM), a project launched by The Document Foundation in 2017 with the donation of a seed of euro 10,000 to get the COSM project started, plus up to euro 20,000 to match each euro donated by other stakeholders.

So far, the COSM project has been backed by Microsoft, Collabora, the UK Government Digital Services, CIB, the European Commission’s StandICT project and Open-Xchange. The money has been used to pay an editor to finalize the ODF 1.3 specification and manage it through the OASIS review and ratification process.

Major new features of ODF 1.3 are digital signature and OpenPGP-based XML encryption of documents, plus several improvements to features already available in ODF 1.2 like new polynomial and moving average regression types for charts, a new specification for number of decimal digits in number formatting, a special header/footer style for first page of documents, contextual spacing for paragraphs, additional type argument values for the WEEKDAY function, and the new text master template document type. Most of these new features have been contributed by developers at CIB, Collabora, Microsoft and The Document Foundation.

“The third revision of ODF is now well on the way to becoming a ratified standard and confirms that the crowdfunding approach TDF seeded at COSM is an effective way to have the open document standard maintained without needing a deep-pocketed international corporation behind them”, said Thorsten Behrens, TDF board member.

by Italo Vignoli at November 07, 2019 11:05 AM

November 06, 2019

Roman Kuznetsov

New Table section was added to Writer Sidebar

Tamás Zolnai from Collabora added to Writer Sidebar new Table section. Now when you click inside a Writer table then you'll see in Sidebar new section with controls for handling of the table like "Add row", "Add column", etc.
It will be available in LibreOffice 6.4 that will be release in February 2020 year

by Roman Kuznetsov ( at November 06, 2019 05:20 PM

November 05, 2019

Roman Kuznetsov

Changing of cairo to skia inside LibreOffice

Developers of LibreOffice are making an experiment. They make changing of cairo to skia inside LibreOffice.
That change will be merge in to the master after branch of LibreOffice 6.4

by Roman Kuznetsov ( at November 05, 2019 08:59 PM

LibreOffice Design Blog

Proposal to conveniently highlight and inspect styles in LibreOffice Writer

Styles are the essence of a text processor. And while experts love to unleash the power of LibreOffice Writer, it’s at the same time a major source of nuisance. In particular when you receive documents from other people, it can be quite difficult to understand the applied formatting and to fix issues around.…

by Heiko Tietze at November 05, 2019 01:38 PM

Official TDF Blog

Tender for consultancy on implementing ODF 1.3 conformance in LibreOffice (#201911-01)

The Document Foundation (TDF), the charitable entity behind the world’s leading free office suite LibreOffice, seeks for companies or individuals to

provide consultancy on implementing ODF 1.3 conformance in LibreOffice

to start work as soon as possible. TDF is looking for an individual or company to give technical consultancy on ensuring that LibreOffice will properly implement the Open Document Format (ODF) version 1.3 for both importing and exporting. This can involve one or more of the following tasks:

Required skills

  • Extensive knowledge of C++
  • Experience working on the LibreOffice source code
  • Experience with implementing and testing the Open Document Format

We exclusively use free, libre and open source (FLOSS) software for development wherever possible, and the resulting work must be licensed under the Mozilla Public License v2.0.

Other skills

  • English (conversationally fluent in order to coordinate and plan with members of TDF)

TDF welcomes applications from all suitably qualified persons regardless of their race, sex, disability, religion/belief, sexual orientation or age.

Bidders will get a preference for including a partner or independent developer who has not been involved in a successful tender before.

As always, TDF will give some preference to individuals who have previously shown a commitment to TDF, including but not limited to certified developers and/or members of TDF. Not being a member, or never having contributed before, does not exclude any applicants from consideration.

The task offered is a project-based one-off, with no immediate plans to a mid- or long-term contractual relationship. It is offered on a freelance, project basis. Individuals and companies applying can be located anywhere in the world.

TDF is looking forward to receiving your applications for one or more of the aforementioned tasks, your financial expectations and the earliest date of your availability, via e-mail to a committee at no later than November 15, 2019.

Applicants who have not received feedback by November 29, 2019, should consider that their application, after careful review, was not accepted.

Additional information as per 2019-11-06: When budgeting, we anticipated that this project to take in the region of 20 (twenty) days of work

by Italo Vignoli at November 05, 2019 01:25 PM

November 01, 2019

Official TDF Blog

Starting today: The Month of LibreOffice, November 2019 – get cool swag!

Thanks to our worldwide community of developers and supporters, every release of LibreOffice includes new features, bugfixes, compatibility boosts, translations, and other improvements. This month, we want to say a big thanks to everyone who helps out – and encourage more people to join our friendly community as well! So how are we going to do this?

Well, everyone who contributes can claim an awesome sticker pack at the end of the month:

And even better, we’ll also choose 10 contributors at random to receive an exclusive glass LibreOffice mug – there aren’t many of these in the wild:

How to take part

So, let’s get started! There are many ways you can help out – and you don’t need to be a developer. For instance, you can be a…

  • Handy Helper, answering questions from users: over on Ask LibreOffice there are many users looking for help with the office suite. We’re keeping an eye on that site so if you give someone useful advice, you can claim your shiny stickers.
  • First Responder, helping to confirm new bug reports: go to our Bugzilla page and look for new bugs. If you can recreate one, add a comment like “CONFIRMED on Windows 10 and LibreOffice 6.3.3”. (Make sure you’re using the latest version of LibreOffice!)
  • Drum Beater, spreading the word: tell everyone about LibreOffice on Twitter or Mastodon! Just say why you love it or what you’re using it for, add the #libreoffice hashtag, and at the end of the month you can claim a sticker. (We have a maximum of 100 stickers for this category, in case the whole internet starts tweeting/tooting!)
  • Globetrotter, translating the user interface: LibreOffice is available in a wide range of languages, but its interface translations need to be kept up-to-date. Or maybe you want to translate the suite to a whole new language? Get involved here.
  • Code Cruncher, contributing source code: The codebase is big, but there are lots of places to get involved with small jobs. See our Developers page on the website and this page on the wiki to get started. Once you’ve submitted a patch, if it gets merged we’ll send you a sticker!
  • Docs Doctor, writing documentation: Another way to earn a badge is to help the LibreOffice documentation team. Whether you want to update the online help or add chapters to the handbooks, here’s where to start.

So there’s plenty to do! As the contributions come in, we’ll be updating this page every day with usernames. So dive in, get involved and help make LibreOffice better for millions of people around the world – and enjoy your sticker as thanks from us. We’ll be posting regular updates on this blog and our Mastodon and Twitter accounts over the next four weeks!

by Mike Saunders at November 01, 2019 02:00 PM

October 31, 2019

Michael Meeks

2019-10-31 Thursday.

  • Call with MikeK, calc renderiing code reading, ESC call, call with Marco, Felipe, mail & more code review.
  • Encouraged to see the Nodepad++ release. Obviously it is uncomfortable for rulers to have another authority capable of questioning the authority of the state.

October 31, 2019 09:00 PM

Caolán McNamara

Native GTK Dialogs in LibreOffice

LibreOffice Native GTK Dialog Status

The LibreOffice UI was traditionally implemented with its own VCL toolkit which via theming emulated the host desktop toolkit.

Then we migrated the file format the dialogs were described in to the GtkBuilder file format. But still implemented with VCL widgetry, though with additional GTK-alike layout widgets.

Then migrated the translation format to gettext .mo files, which added plural form translation support we had lacked.

Then incrementally migrated the code driving the dialogs to a new API with two implementations, one for VCL widgetry and one for GTK.

Over the last few major releases the GTK version of LibreOffice has increasingly had true GTK dialogs and less VCL dialogs and in master, as of this week, there are now no direct uses of the VCL dialog APIs.

There are still some non-dialog utility windows and other elements to port over, but dialogs are complete.

LibreOffice has a lot of UI. There are 1029 XML UI definition files in master. 480 definitions of a GtkDialog and 75 additional GtkMessageDialog definitions. The remainder of the files typically describe a single page of a Notebook, Assistant or Sidebar, often appearing in multiple dialogs.

Here are some gifs of a small set of the dialogs from master under Fedora 31, taken under Wayland with peek, showing some of the stock animations of the default GTK 3.24 Adwaita theme

The Writer Character dialog

Notebook, Color Selector MenuButton, and ToggleButton animations

The Calc Page dialog

SpinButtons and legacy Preview widgets hosted in a native dialog

The Writer Paragraph dialog

"Double Decker" Notebook and Scale widgets

The Writer AutoCorrect dialog

Smooth scrolling of huge Emoji autocorrect list

Chart 3D View dialog

Amusingly Over-engineered custom lighting direction widget

The Options dialog

TreeView, Overlay ScrollBar, fade in animation of CheckButtons

by caolan ( at October 31, 2019 08:01 PM

October 30, 2019

Michael Meeks

2019-10-30 Wednesday.

  • Mail; testing, code reading and more patch merging. Sales & Marketing call, back to calc tile rendering oddities.
  • All-Saints band-practice; pleased to see Barak Obama's "People who do really good stuff have flaws" commentary on our messy and ambiguous world. Personally I have the flaws, but sadly they don't guarentee doing the really good stuff. I'd also love all (particuarly old) media outlets to have a cultural shift to systematically provide a: "see this clip in its full context" button ~everywhere.

October 30, 2019 09:00 PM

October 29, 2019

Michael Meeks

2019-10-29 Tuesday.

  • Mail, admin, tech mgmt call; more patch merging action, up late on a client proposal.

October 29, 2019 09:00 PM

Muhammet Kara

Redaction Feature in LibreOffice - Phase 1: Manual Redaction

Now it is possible to redact your documents with LibreOffice to remove/hide sensitive information, and I’ll try to share some info about it via a 2-part series of blog posts. You can also check out the Collabora’s blog post for some more information probably with a better presentation, and a more user-centric view. Redaction tool in LibreOffice


Redaction in its sanitization sense is the blacking out or deletion of text in a document, or the result of such an effort. It is intended to allow the selective disclosure of information in a document while keeping other parts of the document secret. Typically the result is a document that is suitable for publication or for dissemination to others than the intended audience of the original document. For example, when a document is subpoenaed in a court case, information not specifically relevant to the case at hand is often redacted. Redaction in Wikipedia

Although there are some proprietary software applications in the market for this purpose, they have their own limitations like lack of support for open/libre document formats. Thanks to LibreOffice’s great support for various file formats, and our recent work on implementing this new feature on top of it, it is now possible to redact most of your documents without leaving the comfort of your favourite office suite.


  • Open your document in LibreOffice
  • Click (Tools ▸ Redact) from the main menu, and wait for your document to be prepared for redaction (converted to an internal meta-format, and transferred to Draw)
  • Do the redaction by using the “Rectangle Redaction” and the “Freeform Redaction” tools on the “Redaction Toolbar”
  • Save & share the in-redaction copies of the document with peers either in the modifiable (odg) or the verbatim (pdf) format at your option
  • Once you are ready to finalize the redaction, click the desired option on the “Redacted Export” tool on the Redaction toolbar

Redaction command in the Tools menu of Writer: Redaction Command in Tools Menu of LibreOffice 6.3

Starting redaction in Draw (Redaction toolbar is in the green rectangle): Redaction Start in Draw Libreoffice 6.3

Screenshot while redacting a document in LibreOffice: In-Redaction Screenshot from Libreoffice 6.3

Screenshot of a redacted document, finalized and exported as PDF: Redacted Finalized PDF Screenshot from Libreoffice 6.3

Where and when?

The feature was developed for Collabora Office 6.0, directly on LibreOffice core master, and is already available in LibreOffice 6.3, and also on all recent snaphots of Collabora Office. If you are going to try it with a Collabora Office snapshot, I recommend getting an 6.2 snapshot.


  • As a result, you will have a pixellized version of the redacted document in PDF. There will be no selectable text in it, and the redacted content will be non-existent.
  • During redaction, the redaction shapes will be transparent and in grey so that the user can see what they are redacting.
  • There are currently 4 tools on the Redaction toolbar (from left to right): Rectangle Redaction, Freeform Redaction, Redacted Export, Direct Export to PDF Redaction Toolbar in Libreoffice 6.3
  • The Rectangle Redaction tool allows the user to mark the content for redaction by drawing transparent rectangles covering the content
  • The Freeform Redaction tool allows the user to mark the content for redaction by drawing freeform lines/polygons covering the content
  • The “Redacted Export” button box has two options: “Redacted Export (Black)” and “Redacted Export (White).” When clicked, it will finalize your document (by converting the transparent grey redaction shapes to opaque black or white shapes), and export as a pixellized PDF file. The “White” option might be preferred to save toner while printing.
  • The Direct Export to PDF button allows the user to take an in-redaction copy of the document in PDF to share as a verbatim copy for review

Dev Notes

  • Most of the redaction related methods are in the SfxRedactionHelper class.
  • Redaction toolbar is defined in sd/uiconfig/sdraw/toolbar/redactionbar.xml.
  • When user clicks the “Redact” option on the menu, we;
    • Create GDIMetaFile objects (one for each page),
    • Open a new Draw document
    • Insert each GDIMetafile into a new Draw page
    • Make sure position and size is correct
    • Adjust the page size and margins to match the source document
    • Automatically open/show the redaction toolbar if it isnot already opened
  • When user clicks on one of the two Redacted Export buttons on the toolbar, we;
    • Make all redaction shapes opaque and black/white (based on user choice)
    • Ask for save location for the pdf
    • Catch the page objects in the pdfexport filter, and pixellize
    • Change the redaction shapes back to transparent/gray after export

And here is a list of related commits if you would like to see what other changes were done:

  1. Redaction: Handle multiple Writer pages
  2. Add Redaction Toolbar
  3. Forge the freeform redaction tool
  4. Make the text on Redaction toolbar buttons visible
  5. Support bitmap PDF export for Redaction
  6. Handle redaction finalization: Black
  7. Use named shapes for redaction
  8. Add style options to redaction export
  9. Temp icons for the redactedexport commands
  10. Create the SfxRedactionHelper class
  11. Handle different page sizes for redaction
  12. Enable redaction for Impress
  13. Add RedactDoc to Tools menu of Impress
  14. Protect page position during redaction
  15. Add direct pdf export to the Redaction toolbar
  16. tdf#125063: Don’t depend on content size for Page sizing
  17. Respect page margins of the source doc during redaction
  18. Redaction: First steps
  19. Add method DocumentToGraphicRenderer::getPageCount()
  20. Redaction: Adjust offset for multiple Calc pages
  21. Add Redaction toolbar icons from colibre to tango (by Noel Grandin)
  22. tdf#124377: enable anti-aliasing metafile during redaction (by Aron Budea)

by Muhammet Kara ( at October 29, 2019 12:00 AM

October 28, 2019

Michael Meeks

2019-10-28 Monday.

  • Mail chew, poked at code - somewhat alarmed to discover the wavey-red-lines under mis-spelled words being rendered with drawPixel and each pixel working some amazingly expensive system-dependent polygon caching mechanism noticably slowly; not great, fixed it.
  • Added some tile cache size management code to master online - probably a good idea now its not on-disk. Some client proposal writing.

October 28, 2019 09:00 PM

>Marius Popa Adrian

Replication in Firebird 4: Configuration and practical examples

Replication is a long-awaited feature that allows the creating of reliable high-performance database replicas without user-defined triggers and with full DDL support. This talk presents the replication subsystem architecture, possible replication modes, their impact on performance and available tuning options. We'll demonstrate how to set up a simple standby configuration

by Popa Adrian Marius ( at October 28, 2019 03:43 PM

Firebird on the road from v4 to v5

This talk done at Firebird Conference 2019 describes the current state of the v4 development and reviews its key features (new data types, Batch API, timezones). Dimitry Yemanov spoke about the future of Firebird development, including the updated release plan and expected post-v4 features. Review of upcoming features for Firebird 5

by Popa Adrian Marius ( at October 28, 2019 03:40 PM

October 27, 2019

Michael Meeks

2019-10-27 Sunday.

  • Up late, played at All Saints, Zoe spoke; back for a fine roast lunch. Out to Cedric's East Anglian Air Ambulance fund-raising concert at All Saints - H. played the organ; somewhat alarmed by the church mouse.

October 27, 2019 09:00 PM

October 22, 2019

LibreOffice QA Blog

LibreOffice 6.4 Alpha1 is ready for testing

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.4 Alpha1 is ready for testing!

LibreOffice 6.4 will be released as final at the beginning of February, 2020 ( Check the Release Plan ) being LibreOffice 6.4 Alpha1 the first pre-release since the development of version 6.4 started in the beginning of June, 2019. Since then, 4600 commits have been submitted to the code repository and more than 720 bugs have been set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 6.4 Alpha1 can be downloaded from here for Linux, MacOS and Windows, and it can be installed alongside the standard version.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Telegram.

Happy testing!!


by x1sc0 at October 22, 2019 11:37 AM

October 21, 2019

Miklos Vajna

Continuous endnotes in Writer

Writer now has a new "continuous endnotes" compatibility setting in its layout, allowing rendering endnotes in a way which is closer to what Word users expect.

First, thanks TU Dresden who made this work by Collabora possible.

Here is how it looks:
Figure 1. Writer, new ContinuousEndnodes layout flag enabled
Figure 2. Reference rendering
Figure 3. Writer, old separate endnote page layout

What you can see is that endnotes unconditionally start after the end of the document content in Word, while endnotes are unconditionally on separate endnote pages in Writer. The new ContinuousEndnotes layout compatibility flag in Writer allows rendering endnotes the Word way.

This new flag is enabled by default for DOC files, disabled otherwise.

All this is available in LibreOffice master (towards 6.4), so you can try it out right now, if interested.

by Miklos Vajna at October 21, 2019 08:24 AM

October 20, 2019

Andreas Kainz

AutoCorrect Dialog

I add an additional item on my (very long) todo list:

  • Update LibreOffice Dialogs

One Dialog is finished AutoCorrect tdf#127773 (left 6.3, right 6.4)

In addition to an better placement the Word Completion Tab should be now easier to understood.

Character Dialog tdf#127927, Paragraph Dialog tdf#128239 and > 100 Dialogs are on my todo list. If you like my work, become a


by kdeonlinux at October 20, 2019 09:50 PM

October 18, 2019

Jean Hollis Weber

Self-publishing using LibreOffice Writer 6

Self-publishing with LibreOffice Writer 6My new book, Self-publishing using LibreOffice Writer 6, is now available in paperback or PDF.

Printed copies are available from for US$15.00. Pay at

Download PDF here. Cost is US$5.00, on the honor system. Please pay using the button below (Paypal or credit card). If you buy a printed copy, you are welcome to a free copy of the PDF.

by Jean at October 18, 2019 06:24 AM

Muhammet Kara

New Feature in Libreoffice: Full-Sheet Previews

Have you ever wanted to have a way to see the full content of a spreadsheet document in a pdf form, without the usual slicing of the sheets into printable pages?

Why would I need that?

Here is the screenshot of a sheet containing some data and graphics: Sample Sheet And this is how it looks like when exported to pdf in the old/usual way: Usual PDF Output

Also read the blog on the Collabora-website for more explanation.

How do I use it?

  • Open your spreadsheet document in LibreOffice Calc
  • From the menu, select File - Export as PDF…
  • On the General tab of the PDF Options dialog, check the option named Full-Sheet Previews
  • Click the Export button, and choose a location for your preview pdf
  • Enjoy your pdf file of full sheet previews

Full-Sheet Preview PDF

Option on the dialog

Full-Sheet Previews option on the PDF Export Dialog

Also available in the LibreOffice/Collabora Online api

If you happen to use the LibreOffice/Collabora Online REST api for document conversions, here is a command to get a preview output of your sheet:

curl --insecure -F "data=@YourSpreadSheetDocument.ods" -F "FullSheetPreview=true" https://localhost:9980/lool/convert-to/pdf > out.pdf

More info about the REST api

Where and when?

The feature was developed on the cp-6.2 branch of LibreOffice code-base (which is basicly Collabora Office 6.2), and is already available in Collabora Office snaphots. And is being backported to LibreOffice master, so it will be also available in LibreOffice development builds and soon in the Collabora Office snapshots.

For more info and the snapshot


  • Currently, this option disregards most of the other options on the pdf export dialog
  • Preview pages will have different sizes (same as the source sheets)
  • This is not meant for printing
  • The export dialog remembers your last choice, so better not forget to uncheck this option next time you would like to get a regular (for-printing) output

Dev Notes

  • The PDF export dialog’s UI description is in filter/uiconfig/ui/pdfgeneralpage.ui
  • The class for the dialog is named ImpPDFTabGeneralPage
  • To introduce a new option, you need to add the widget to the .ui file, then add a proper item to the class, and connect the two in the constructor
    • In our case, the id of the new checkbox on the ui file is singlepagesheets

      <object class="GtkCheckButton" id="singlepagesheets">
                  <property name="label" translatable="yes" context="pdfgeneralpage|singlepagesheets">Full-Sheet Previews</property>
                  <property name="visible">True</property>
                  <property name="can_focus">True</property>
                  <property name="receives_default">False</property>
                  <property name="use_underline">True</property>
                  <property name="xalign">0</property>
                  <property name="draw_indicator">True</property>
    • And the corresponding member in the ImpPDFTabGeneralPage class is named as mxCbSinglePageSheets

      std::unique_ptr<weld::CheckButton> mxCbSinglePageSheets;
    • We connect the two via this line in the constructor of the class:


And here is a list of related commits if you would like to see what other changes were done:

  1. Add ‘SinglePageSheets’ option to the PDF export dialog
  2. Handle SinglePageSheets option for pdf export
  3. Add FullSheetPreview support for convert-to endpoint of online
  4. Rename ‘Single-page sheets’ to ‘Full-Sheet Previews’ to avoid confusion

by Muhammet Kara ( at October 18, 2019 12:00 AM

October 15, 2019

Thorsten Behrens

Statement on the RMS situation

On Monday September 16th, Richard Stallman, long-time president and founder of the FSF, has resigned from both his position at the FSF, and the MIT.

There’s a plethora of reporting around that – if you’re short on time, then I recommend reading Thomas Bushnell’s rather excellent medium piece in full.

Many things can be said about this event, but immediately coming to defend RMS as a principled old man, who was the victim of a witch hunt, is not it. I fundamentally disagree with Michael here, and like to point out (though its obvious), that his point of view is not shared nor endorsed by The Document Foundation, albeit aggregated on their planet.

This is what I posted last night to the TDF board, when we discussed the implications on Michael’s post being on that planet:

Dear board,

Björn wrote:

Or to put it much better argumented and better informed than I ever could:
View at

Please do read the linked article in full. It echos my thoughts
exactly, but with much more authority & eloquence than I could have.

If you have some extra time, the entire story is many years, and
probably thousands of pages worth of words - but it's not a happy
story (it includes, at various occasions, RMS endorsing child
pornography and pedophilia).

For me, the sticking point is a slight remix of one of Thomas'
sentences: Michael treated the problem as being “let’s make sure we
don’t criticize RMS unfairly”, when the problem was actually, “how can
we come to terms with a decades-long history of RMS’s own mistreatment
of women and held views incompatible with broad societal norms &

In light of the above, I reject, in the strongest possible terms,
being seen near a statement that starts with "Really disappointed to
see the outcome with RMS". The blog post is offensive to women, the
victims in particular, tone-deaf to the wider issues at stake, and
harmful for TDF's reputation when issued by a board member on a
TDF-imprinted site.

It would have been better to stay silent.

Can someone please fix this?


-- Thorsten

Update 2019-09-23: Perhaps not entirely unambiguous – I wasn’t suggesting here that Michael would fully endorse RMS, but coming to his defense at this incident. Also adding the real name of my fellow TDF director, whom I was responding to in the mail above.

Update 2019-10-15: Bradley Kuhn’s statement after leaving the FSF is worth reading in its entirety, and well reflects what I believe leaders should aspire to.

by thorstenb at October 15, 2019 11:01 PM

October 06, 2019

Andreas Kainz

GUI widget prototyping


If you think nothing happens in LibreOffice, that’s not true. I for example prepair some new Templates and Galleries for LibreOffice.

GUI Widgets for LibreOffice (Draw)

If you are interested, join the LibreOffice Design Team.

by kdeonlinux at October 06, 2019 09:39 AM

October 04, 2019

LibreOffice QA Blog

QA Report: September 2019

General Activities

  1. LibreOffice 6.3.1 and LibreOffice 6.2.7 were released on September 5
  2. LibreOffice 6.3.2 was released on September 26
  3. The PPT/PPTX Team was created and announced publicly.
  4. The Macro Team was created and announced publicly.
  5. Roman Kuznetsov changed fonts in Help installer to Segoe UI 9 pt
  6. Many problems with bullets and numbering in DOCX files were fixed: tdf#64222 (Michael Stahl, Samuel Mehrbrodt CIB) tdf#95848 (Michael Stahl) Timur was able to close many reports as duplicates of the fixed bugs
  7. Caolán McNamara (Red Hat) did a massive amount of UI work under the hood, for example renovating the wizard dialogs
  8. Caolán McNamara (Red Hat) removed the gtk+2 backend from master
  9. Miklos Vajna (Collabora) solved a cluster of issues related to textbox alignment and spacing in DOCX files
  10. Tünde Tóth (NISZ) fixed a bunch of OOXML hyperlink issues
  11. László Németh (NISZ) improved the workflow of manipulating tables in Writer tdf#84806 and tdf#118311
  12. Balazs Varga (NISZ) keeps improving OOXML Charts interoperability
  13. Xisco Fauli fixed some SVG issues
  14. Björn Michaelsen keeps fighting against the SwClient monster. Check his last update

Reported Bugs

627 bugs, 87 of which are enhancements, have been reported by 394 people.

Top 10 Reporters

  1. NISZ LibreOffice Team ( 33 )
  2. andreas_k ( 16 )
  3. nd101 ( 14 )
  4. Regina Henschel ( 12 )
  5. Mike Kaganski ( 12 )
  6. Nicolas Christener ( 11 )
  7. Thomas Lendo ( 9 )
  8. Eyal Rozenberg ( 9 )
  9. pedro.silva ( 8 )
  10. Roman Kuznetsov ( 8 )

Triaged Bugs

608 bugs have been triaged by 82 people.

Top 10 Triagers

  1. Xisco Faulí ( 152 )
  2. Dieter Praas ( 66 )
  3. Heiko Tietze ( 45 )
  4. V Stuart Foote ( 41 )
  5. Julien Nabet ( 36 )
  6. Oliver Brinzing ( 30 )
  7. Timur ( 26 )
  8. m.a.riosv ( 21 )
  9. Roman Kuznetsov ( 21 )
  10. Alex Thurgood ( 13 )

Resolution of resolved bugs

551 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

166 bugs have been fixed by 43 people.

Top 10 Fixers

  1. Caolán McNamara ( 22 )
  2. Julien Nabet ( 9 )
  3. Heiko Tietze ( 9 )
  4. László Németh ( 8 )
  5. Tünde Tóth ( 8 )
  6. Xisco Fauli ( 6 )
  7. Michael Weghorn ( 5 )
  8. Tamás Zolnai ( 5 )
  9. Miklos Vajna ( 4 )
  10. Michael Stahl ( 4 )

List of critical bugs fixed

  1. tdf#127695 CRASH: Inserting textbox in a particular document ( Thanks to Caolán McNamara )

List of crashes fixed

  1. tdf#127258 Impress Crash after Presentation Finished ( Thanks to Stephan Bergmann )
  2. tdf#127272 odt document + UI “registers” etc.: Writer crashes when UI will be set to “registers” etc. resp. after this when odt file should be opened ( Thanks to Sumit Chauhan )
  3. tdf#127461 data provider crashes LibreOffice when clicking “Apply Changes” ( Thanks to Julien Nabet )
  4. tdf#127546 Calc Crashes if I click in to the Range-select fied of the ‘Define Label Range’ dialog (gen) ( Thanks to Caolán McNamara )
  5. tdf#127646 GTK3 crash when create new macro ( Thanks to Caolán McNamara )
  6. tdf#127652 After deleting some text the LibreOffice Writer crash ( Thanks to Michael Stahl )
  7. tdf#127673 Crash when double tap’ing a table copyed from calc to writer in iOS ( Thanks to Jan Holesovsky )
  8. tdf#127682 New Print dialog: Crash selecting (*) Even/Odd Pages with a 1 page document ( Thanks to Caolán McNamara )
  9. tdf#127683 Crash when restart LO after having changing language ( Thanks to Caolán McNamara )
  10. tdf#127695 CRASH: Inserting textbox in a particular document ( Thanks to Caolán McNamara )
  11. tdf#127748 crash on modify a frame style, which has previously got writing-mode bt-lr ( Thanks to Julien Nabet )
  12. tdf#127859 pressing edit button in footer or header make LO crash ( Thanks to Caolán McNamara )
  13. tdf#127863 Crash when trying to edit macro assigned part for a button ( Thanks to Julien Nabet )

List of performance issues fixed

  1. tdf#127786 LibreOffice hangs for a few seconds clicking on the title/subtitle textboxes (ca-ES-valencia) ( Thanks to Eike Rathke )

List of old bugs ( more than 4 years old ) fixed

  1. tdf#42990 EDITING Spreadsheet: Different handling of Text Cells in Calculations with SUM or addition of multiple cells ( Thanks to Olivier Hallot )
  2. tdf#45789 automatic row height in reports ( Thanks to Ilhan Yesil )
  3. tdf#50846 Macros: Wrong type of function GetLastUsedRow (standard library Tools, module Misc) ( Thanks to Andreas Heinisch )
  4. tdf#55436 Need another numbering scheme: *, †, ‡, §, etc. (mainly for footnotes) ( Thanks to Tim Bartlett )
  5. tdf#62326 Instruction Cint fails when converting Hex strings of a negative value to a 16-bit integer value. ( Thanks to Andreas Heinisch )
  6. tdf#64222 FORMATTING: A DOCX-file in Writer shows different size of list elements (numbering) ( Thanks to Michael Stahl )
  7. tdf#81436 Add Formula Numbering autotext to all l10n ( Thanks to Laurent BP )
  8. tdf#84806 Apply actions to full table without the need to select paragraph before/after (to prevent e.g. an empty table is left) ( Thanks to László Németh )
  9. tdf#94765 FILEOPEN: SVG: URL fails is the reference is not in the mapper (gradients/patterns) ( see comment 17 ) ( Thanks to Xisco Fauli )


99 bugs have been retested by 30 people.

Top 10 testers

  1. Xisco Faulí ( 23 )
  2. Timur ( 14 )
  3. Buovjaga ( 13 )
  4. Julien Nabet ( 8 )
  5. Roman Kuznetsov ( 4 )
  6. Dieter Praas ( 4 )
  7. Aron Budea ( 3 )
  8. Heiko Tietze ( 3 )
  9. raal ( 3 )
  10. Thomas Lendo ( 2 )


136 bugs have been duplicated by 27 people.

Top 10 testers

  1. Xisco Faulí ( 41 )
  2. V Stuart Foote ( 18 )
  3. Timur ( 11 )
  4. Gabor Kelemen ( 8 )
  5. Heiko Tietze ( 7 )
  6. Oliver Brinzing ( 7 )
  7. Julien Nabet ( 6 )
  8. Justin L ( 4 )
  9. m.a.riosv ( 4 )
  10. Dieter Praas ( 4 )

Verified bug fixes

110 bugs have been verified by 12 people.

Top 10 Verifiers

  1. Dieter Praas ( 47 )
  2. Xisco Faulí ( 42 )
  3. Timur ( 6 )
  4. Julien Nabet ( 6 )
  5. Alex Thurgood ( 2 )
  6. Harald Koester ( 1 )
  7. Michael Weghorn ( 1 )
  8. Patrick Jaap ( 1 )
  9. Markus ( 1 )
  10. Roman Kuznetsov ( 1 )

Categorized Bugs

399 bugs have been categorized with a metabug by 36 people.

Top 10 Categorizers

  1. Dieter Praas ( 59 )
  2. Thomas Lendo ( 48 )
  3. oesterblog-admin ( 44 )
  4. NISZ LibreOffice Team ( 38 )
  5. LibreOfficiant ( 37 )
  6. Roman Kuznetsov ( 32 )
  7. himajin100000 ( 26 )
  8. V Stuart Foote ( 18 )
  9. Buovjaga ( 17 )
  10. Rizal Muttaqin ( 14 )

Regression Bugs

97 bugs have been set as regressions by 22 people.

Top 10

  1. Xisco Faulí ( 31 )
  2. NISZ LibreOffice Team ( 18 )
  3. Timur ( 9 )
  4. Alex Thurgood ( 4 )
  5. m.a.riosv ( 4 )
  6. raal ( 3 )
  7. V Stuart Foote ( 3 )
  8. Oliver Brinzing ( 3 )
  9. MM ( 3 )
  10. Julien Nabet ( 3 )

Bisected Bugs

81 bugs have been bisected by 10 people.

Top 10 Bisecters

  1. Xisco Faulí ( 42 )
  2. NISZ LibreOffice Team ( 17 )
  3. raal ( 11 )
  4. Michael Weghorn ( 3 )
  5. LE GARREC Vincent ( 2 )
  6. Aron Budea ( 2 )
  7. Terrence Enger ( 1 )
  8. Justin L ( 1 )
  9. Roman Kuznetsov ( 1 )
  10. Buovjaga ( 1 )

Evolution of Unconfirmed Bugs

Check the current list of unconfirmed bugs here

Evolution of Open Regressions

Check the current list of open regressions here

Evolution of Open bibisectRequests

Check the current list of open bibisectrequests here

Evolution of Highest Priority Bugs

Check the current list of highest priority bugs here

Evolution of High Priority Bugs

Check the current list of high priority bugs here

Thank you all for making Libreoffice rock!
Join us and help to keep LibreOffice super reliable!
Check the Get Involved page out now!

by x1sc0 at October 04, 2019 02:53 PM

Miklos Vajna

Allow-overlap shape property in Writer

Writer now has a new "allow overlap" shape property for anchored objects, which can ensure that objects with overlapping positioning properties don’t actually overlap.

First, thanks TU Dresden who made this work by Collabora possible.

Here is a video showing how it works:

Figure 1. Allow-overlap shape property in Writer

Under the hood, this is a full new Writer feature, since previously shapes were always allowed to overlap with each other:

  • macros get a new AllowOverlap shape property (true by default)

  • layout takes this into account if you set the property on the UI

  • both DOCX and ODT filters serialize and load this property (ODT proposal)

All this is available in LibreOffice master (towards 6.4), so you can try it out right now, if interested.

by Miklos Vajna at October 04, 2019 07:28 AM

October 03, 2019

Luboš Luňák

LibreOffice drawing using Skia

This below is a screenshot of my LibreOffice build using the Skia library.
Now, admittedly, this looks way better than it should, as it is actually still far from finished. It is so far X11-only, using the venerable not-that-performant XPutImage(). No Windows, no Vulkan. Yet. Also, while it passes all VCL unit tests, that rather says something about the poor state of coverage of those tests, as they fail to hit any of those abort() calls I still have in a number of places. Well, maybe I should rather post the screenshot from yesterday:

by llunak ( at October 03, 2019 02:13 PM

October 02, 2019

>Marius Popa Adrian

Embedded Firebird 3 Framework on MacOSX

Paul Beach has finally managed to get around to preparing a mechanism for creating an embedded Firebird Framework on MacOSX.If you can’t build Firebird from scratch you can download a copy of the embedded framework (currently Firebird 3.0.4) from IBPhoenix. (Approx 15mb)32bit Embedded Framework64bit Embedded Framework

by Popa Adrian Marius ( at October 02, 2019 03:18 PM

September 28, 2019

Tamás Bunth

VS code IDE integration for LibreOffice

Successfully submitting a very first patch to LibreOffice can be quite challenging. Not only because you have to deal with the build dependencies first, but because the project doesn’t come with a default/suggested development environment. Even though it can be annoying, it is actually a good thing, because you can use your favorite. In this blog post I want to show you how to use VS code for LibreOffice hacking:

      1. Build LibreOffice.. (make check)
      2. Create compile_commands.json with the following command:
        make vim-ide-integration
      3. Install VS code, but I guess you did it already.
      4. Install the C++ extension.
      5. File -> Preferences -> Settings -> Workspace Settings -> Extensions -> C/C++. Find a link to your settings.json file.
      6. Insert the following line:

The compile_commands.json file helps the IDE find all the include paths/dependencies. Luckily, VS code can use the same structure as the YouCompleteMe code-completion engine for vim. The above line in settings.json specifies the location of the file relative to the workspace folder.

After this the semantic code completion features (code completion, Goto Definition, …) should work. In order to get debug working, you can follow this description. For handy tricks you should take a look at this and this.

Disclaimer: I couldn’t configure the debugger which symbols to load. It doesn’t affect the code completion features, but for the debugging – unless you know how to restrict symbol loading (then tell me in a comment) – you’ll need more than 8 GB of RAM.

by Bunth Tamás at September 28, 2019 01:10 PM

Florian Effenberger

Happy Birthday, LibreOffice!

Nine years ago, something very special was created. It changed my life a lot for sure, it gave me new challenges too, and I am proud and eternally honoured to be part of this amazing community of friends. Happy Birthday, LibreOffice!

Happy Birthday, LibreOffice!

by Florian Effenberger at September 28, 2019 05:56 AM

September 25, 2019

Andreas Kainz

pin gallery

this is the simpliest extension I ever did, but it’s also one of the coolest.


This extension add you an 📌 pin gallery on top of each galleries so if you switch to galleries you can drag & drop your favorite drawings, images, … simple but usefull.

by kdeonlinux at September 25, 2019 07:56 AM

September 24, 2019

Björn Michaelsen

Yak Shaving Progress Report

Take out the papers and the trash
Or you don’t get no spendin’ cash

— Yakety Yak, The Coasters


At last years LibreOffice conference in Tirana I gave a talk on how SwClient is considered harmful. At this years LibreOffice conference in Almeria, I presented a lightning talk, giving some updates on the progress.

Additionally, with some recent idle changes not only the unocore directory in Writer is free of the error prone old SwClient/SwModify combo, but also the directories:

  • sw/source/core/view
  • sw/source/filter/html
  • sw/source/filter/basflt
  • sw/source/filter/ww8
  • sw/source/filter/xml
  • sw/source/ui
  • sw/source/uibase

So far, it seems the hope I expressed at the conference that getting rid of SwClient and SwModify (leaving aside the core layout for now) seems to be quite doable and well worth it for the errors and fragility this will prevent in those areas of code.

by bmichaelsen at September 24, 2019 05:31 PM

September 23, 2019

>Szymon Kłos

Native widgets on mobile for Online - prototype

In the desktop suite we have the sidebar which is a context dependant feature improving user performance eg. in chart editing. Unfortunately it's not the perfect UI for a mobile clients, so the new concept is to tunnel the UI description to the browser and create native widgets there. I did some prototyping work in this area and I can see first results:

As we can see all basic widgets and layout are preserved. All sections are visible, it will be possible to create an UI where user will see only one section at time for better mobile experience. Complex controls like color selectors are not available yet (I'm going to use our color selector present in the toolbar). The development takes place in the feature branch.

by Szymon Kłos ( at September 23, 2019 07:12 AM

September 21, 2019

Luboš Luňák

Icecream 1.3 and Icemon 3.3 released

A new version 1.3 of the distributed C/C++ compilation tool Icecream has been released. To accompany it, version 3.3 of the GUI monitor Icemon has been released as well.

The changelogs are here and here. In a less changelog-y way, the changes are:
  • Compiler location are no longer hardcoded anywhere. Previously the compiler automatically packaged and sent to remote nodes was always /usr/bin/gcc (g++, clang, clang++). That might not match the actual compiler used and the workaround was to manually package the proper one using icecc-create-env. But now it's possible to build even with e.g. CXX=/my/own/build/of/clang and it'll simply work. This should also mean that explicitly setting $ICECC_VERSION now should be needed only for cross-compiling.
  • Slightly better job scheduling, both for remote and local builds. For example, the local machine should no longer be possibly overloaded by running way too many local preprocessor steps.
  • Better compression, both for sending data and packaged compilers. Compilation data is compressed using zstd if the other node supports it, compiler environments can be compiled using zstd or xz. This improves performance by reducing both network and CPU usage. Note that while compilation compression falls back to the older method if not supported by the other side, for compiler environments this is more tricky and so it has to be set up manually. You can set e.g. ICECC_ENV_COMPRESSION=xz , but the daemon will not fall back to using any other mechanism. Which means it will use only nodes that are at least version 1.3, the scheduler should also be from 1.3 (run another one if needed, the newest one wins) and the remote node needs to support the compression (1.3 uses newly uses libarchive, which supports zstd only in its relatively recent releases). So this is mainly useful if you have full control over the Icecream cluster, but by default the compression is the old gzip, for backwards compatibility.
  • Speaking of which, the maximum cache size for compiler environments now defaults to 256MiB. Use the --cache-size option of iceccd for different sizes.
  • Objective C/C++ support has been fixed.
  • Some special workarounds for GCC's -fdirectives-only option that is used when sending sources to remote nodes, as it breaks in some corner cases.
  • The --interface option of the daemons (and scheduler) now allow binding only to a specific network interface, if needed. Note that Icecream still assumes it runs in a trusted network and if that's not so it's up to you to ensure it by using tools such as a firewall.
  • Icemon now displays in the defailed host view what protocol a node supports (1.3 has protocol version 42, env_xz/env_zstd mean it supports compiler environments compiled using xz/zstd).
  • And various other fixes.

by llunak ( at September 21, 2019 10:48 AM