Annual Report 2018: LibreOffice development

In 2018, 17,473 commits were made to the LibreOffice source code, from 223 authors. Here’s an overview of what they worked on…

Behind the scenes of LibreOffice 6.2

Throughout the second half of 2018, the developer community worked on a new major release: LibreOffice 6.2. Details about the end-user-facing new features are provided on this page, and in the following video – so in the rest of this blog post, we’ll focus on developer-related changes.

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.

So, let’s get technical!

In terms of system requirements, the macOS minimum version was bumped up to 10.9 (and will be 10.10 in LibreOffice 6.3). Similarly, binary Linux x86 (32-bit) releases from The Document Foundation were deprecated, so there will be no Linux x86 builds produced by TDF after LibreOffice 6.2. However, this does not mean that Linux x86 compatibility will be removed; Linux distributions can still opt to build 32-bit binaries. See here for more details.

On the user interface front, there were other changes. Two new VCL plugins (qt5 and kde5) were implemented (with the KDE5 plugin extending the Qt5 one), to provide integration with KDE Plasma 5 and other Qt5-based desktop environments. These were mainly implemented by Katarína Behrens (CIB) and Jan-Marek Glogowski (City of Munich).

If the kde5 and the gtk3_kde5 plugins are installed, the desktop detection will now prefer the kde5 one. The qt5 plugin must be explicitly selected via SAL_USE_VCLPLUGIN=qt5, as it’s never selected automatically.

Native copy and paste of spreadsheet data in Writer tables was implemented by László Németh (NISZ): previously, you could paste a copied table as image, object, plain text, and as RTF; the latter resulting in a new table in Writer. In LibreOffice 6.2 you can paste directly in an existing table.

Data Validation now supports custom formulas thanks to Marco Cecchetti (Collabora), while Edit > Track Changes > Show no longer severely impacts performance in documents with many tracked changes. The document view is now capable of hiding the tracked changes, so they do not have to be rearranged in the document model to be hidden – implemented by Michael Stahl (CIB).

LibreLogo, the programming interface for graphic design and education got unit testing, IDE and compiler fixes and improvements (László Németh – FSF.hu Foundation). Meanwhile, work continued on the native GTK3 UI, as demonstrated by Caolan McNamara (Red Hat) at FOSDEM 2018:

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.

Google Summer of Code

The Google Summer of Code (GSoC) takes place every year, and provides university students with funding to work on free and open source software. For 2018, seven LibreOffice developers were accepted into GSoC, and they worked on various features and updates. These improvements were presented in a session at the LibreOffice Conference in Tirana, Albania.

Daniel Silva showed his work on the revamped print dialog, which reorganised options into two tabs, to make them easier to find: a General tab, covering all components of the suite, and then a separate tab for component-specific features (ie those found in Writer, Calc, Impress and so forth). Altogether, this makes it easier for end users to find the options they need, without having to look through many different tabs.

Meanwhile, Mert Tümer worked on the LibreOffice Android Viewer as part of GSoC: he produced 23 patches, made up of nine new features and 14 bug fixes. Some of the new features include Export to PDF, printing, customising worksheets, and better language support.

Saurav Chirania implemented a logger for user interface testing, which logs interactions and stores them in a file, while Vikas Mahato worked on features for importing data from external sources, along with transformations for the data (38 types of transformation were implemented). Finally, Hrishabh Rajput worked on updating listbox widgets to separate read values from input values, Kshitij Pathania added some improvements to the Notebookbar, and Shobhan Mandal focused on adding support for Python in the LOEclipse plugin.

A big thanks to everyone who contributed code last year! Why not join them?

You don’t need to be the world’s best C++ wizard to get involved – just some C++ knowledge and willingness to explore the codebase is great!

We have Easy Hacks to get your started, so check out this page for inspiration. Cheers!