Welcome to The Document Foundation Planet

This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.

To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.

15 July, 2018



Week 27 start with the hard string freeze for 6.1 So I was a bit hurry to submit the last patches for Notebookbar implementations to get everything translated. Thanks to Cloph I get everything into 6.1. After that the second part was the Notebookbar codebase changes made from GSOC student Kshitij Pathania and his mentor Szymon Kłos. I don’t know how but everything was backported to 6.1 and so our experimental users can test the different Notebookbar implementations so that we hopefully get an awesome NB release with 6.2. Bugfixing was no on top of the todo list.

Icon Themes

Colibre icons get full support for 32px icon size so you can change in Options -> View -> Toolbar icon size -> Extra Large. General Colibre icon size bugfixing was always in focus to get an awesome initial Colibre icon theme release.


Elementary icon theme is now default on all GTK platforms so they get some updates to get ready for the 6.1 release.

Breeze icons get also some updated icons for a wonderful 6.1 release.

Tango icons was default on Windows and GTK platforms in 6.0 but in 6.1 it want be default any more. There are some reason first is the lack of maintainer. As galaxy icons were dropped from the core LibreOffice repository (available via the extension webpage) tango icons need some tweaks to get ready for 6.1 without galaxy.

In general Colibre, Breeze and Elementary should be ready for 6.1 and the new icons needed for the different Notebookbar implementations. Some minor work has to be done next week.


I love the LibreOffice menubar and Jay did a great work in the last releases but the layout of the different LibreOffice apps were not 100% consistent so I submit some patches to get a better synchronization between the different apps.


For the full list of changes check the gerrit history log I’m talking about 30 patches. In the next weeks I’ll work on the different icon themes I’m the maintainer and submit missing icons to Colibre, Breeze and Elementary icon theme to get a gread 6.1 release.

If you’d like to be part of the story become a Patreondownloads_wordmark_white_on_coral2x.jpg


This week I’ve submitted some patches which relates to unit testing, laying out of shapes, and supporting some parameter.

Support ctrShpMap(Center Shape Mapping) Parameter

It relates to the cycle algorithm. A value of none specifies to place nodes around a circle. A value of fNode specifies to place the first node in the center and the remaining nodes around the circle with default is none. In simple language it specifies where to place nodes in relation to the center circle.

Support parTxRTLAlign(Parent Text Right to Left Align) parameter

If the graphic is used with language settings that display text from right to left(like Hebrew), the text should align to the right. There are two parent text(LTR and RTL) alignment parameters that determine the value to use according to system settings. So for that graphic, we should also include parTxRTLAlign (parent text right-to-left align) with default is center.

SmartArt Pyramid

This algorithm was initially not implemented, because of that it was not able to show shapes which relates to pyramid, but with this patch, It rendered correctly except some minor adjustment values issues which can be fixed in the upcoming patches.

Pyramid before the implementation
Pyramid after the implementation

Node layout information

Added two cases in switch statement:

AnimLvl: This variable is used to indicate the animate by level string which is displayed to a user in the user interface. When animLvl is set to ctr. This is being defined in a radial type diagram which allows the user to specify that animation is to start at the center of the diagram.

AnimOne: This variable is used to indicate the string to use for one-by-one animation in the user interface. This is used primarily when defining hierarchical diagrams to specify different ways animations applies to different levels of the diagram.

Unit test: Smartart Pyramid

Added unit testing for Pyramid which tests the Y-position, text in shape and height of the child. But a error is creating problem for building it, tried rebase but it didn’t work, would be awesome if anyone can point to the cause of that error.

14 July, 2018


Yes, this year’s LibreOffice Conference takes place from September 25 – 28 in Albania. Register today, meet our community, and have fun! Here’s a quick preview:

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.

10 July, 2018


LibreOffice 6.1 is approaching, and the Turkish community is organising an RC1 Bug Hunting Session in Ankara on July 13. Here are the details:

  • Time: 14:00-17:00 (UTC+3)
  • Location: TUBITAK ULAKBIM, 7th Floor, Meeting Room 2
  • Registration form

Attendees will bring their own laptops. Registration until Thursday 17:00 (UTC+3) is required. There will be snacks, tea, and some swag! So if you’re in (or around) Ankara, join our friendly community, and let’s make LibreOffice 6.1 the best release ever!

09 July, 2018

This week, I first worked on improving the log interpreter. It can now open existing files (in addition to starting with blank documents).

I then moved the logAction function from ImplCallEventListenersAndHandler to CallEventListeners. Events from down in the class hierarchy which directly called CallEventListeners from vcl::Window (or ImplCallEventListenersAndHandler from Control) will now get interrupted by the new function, register a log statement, and then go to the class Window. This also allowed to log SpinFieldUp and SpinFieldDown.

According to the feedback from Raal, I worked on resolving the ID conflicts of UI elements in the same dialog. The patch can be seen here.

For week 9, I will keep working on improving UI testing, including the key input inside dialogs as suggested by Markus.


I’ve added the support to text anchor vertical parameter in text algorithm which specifies the y-axis anchoring of the text area in a shape according to: t(top), mid(middle, default), b(bottom).

If the text is text is a bulleted list, it should be left aligned and top aligned. For the first level of text within a shape, the default is to center the text vertically and horizontally, so these behaviors are changed using the parameters parTxLTRAlign (parent text LTR align) and txAnchorVert (text anchor vertical), setting them to l (left) and t (top), respectively. I’ve submitted the patch regarding this.

I’m trying to support more features which will improve the algorithms.

05 July, 2018


I wrote about ECDSA handling in LibreOffice last year, back then the target was to be able to verify signatures using the ECDSA algorithm on Linux.

Lots of things happened since then, this post is meant to summarize those improvements. My personal motivation is that Hungarian eID cards come with a gov-trusted ECDSA (x509) cert, so handling those in LibreOffice would be nice. My goals were:

  • platforms: handling Windows as well, not only Linux/macOS

  • operations: handling signing as well, not only verification

  • formats: cover all of ODF, OOXML and PDF

Let’s see what has happened:

  • Linux, ODF, sign: we had hardcoded RSA algorithm when generating a signature, now we infer the sign algorithm from the signing cert algorithm (commit)

  • Linux, OOXML, sign: same problem with hardcoded RSA (commit)

  • Windows, PDF, sign: the certificate chooser had to be ported to from CryptoAPI to CNG (commit)

  • Windows, ODF, verify / sign: this was the largest problem, this required a whole new libxmlsec backend (interface, implementation, all in C90) and also required conditionally using that new backend in LibreOffice (commit)

  • Windows, OOXML, sign: this was almost functional, except that the UI recently regressed, now fixed (commit)

  • Finally now that everything is ported on Windows to use CNG, I could enable it by default yesterday.

I could test hardware-based signing after this, which was fine out of the box on both platforms. Some screenshots:

  • Linux:

  • Windows:


(There is no reason why this would not work on macOS, but I did not test that.)

Thanks Gabor Kelemen who helped me to get a sane card reader that has reasonable driver support on Linux.

All this is available in master (towards LibreOffice 6.2), or you can grab a daily build and try it out right now. :-)


Did you know that LibreOffice Viewer is available for Android phones and tablets? Check it out:

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.

It’s available on the Play Store and on F-Droid, and includes experimental editing support. But we want to go much further! You can help our community to improve it:

  • Report any bugs you find so that our QA volunteers can investigate
  • If you have some technical knowledge, build the latest version and test it out (new features are being added regularly)
  • And if you have some experience developing Android apps, we’d love to have your help! Start with the README to get an overview of the app and source code tree, and see here for information on submitting patches

Together we can make the dream of a full-featured version of LibreOffice for Android a reality. Thanks for your help and support!

04 July, 2018


This is the first post that is published through Iris, the static website generator used by Testbit. Over the years I fine tuned and tweaked my editing and revisioning tools like probably all programmers/writers do and needed a way to apply this to the web. First Steps I’ve always felt at odds with…

03 July, 2018

  • Into Cambridge for an interview with Chris in the morning - had lunch together.
  • Thrilled to see Dennis' multivariate regression work for Calc pushed & published - go Dennis.
  • CP board meeting; drove home, customer call, took H., M., Elize & Alish to Soham for the Young Musician of the Year competition / concert - good music, home. Built ESC minutes, bed.


There’s a lot going on in the LibreOffice community, in the lead up to LibreOffice 6.1, in development, documentation, design, QA, translations and much more. Here’s a summary of news and updates in June…

  • LibreOffice 6.0.5 was announced, and includes almost 100 bug and regression fixes. See the announcement for the full details.
  • We started posting out stickers to contributors from the Month of LibreOffice, May 2018 – a big thanks to everyone who took part! We hope you enjoy receiving these in the post…

  • The LibreOffice Conference 2018 is coming up on September, and the call for papers is still open until July 15. If you’re attending the conference (and you totally should!), you can submit a presentation idea here.

Keep in touch – follow us on Twitter, Facebook and Google+. Like what we do? Support our community with a donation – or join us and help us to make LibreOffice even better!


Recently I added the support for doing multivariate regression in LibreOffice Calc via its regression tool along with other related improvements. Now the regression analysis output includes a lot more statistical measures including confidence interval for all estimated parameters.

The improved regression tool in Calc can be accessed via Data > Statistics > Regression
Here is a screenshot of the regression dialog box showing the new features highlighted with red boxes.


Lets go through each of these new features –

A.  Now you can enter a single range that contains multiple X variable observations (along columns or rows). In this example the data-set contains three X variables namely My_X1, My_X2 and My_X3 and the dependent variable My_Y. To do a regression on this data, enter the range A1:C11 to the “Independent variable(s) (X) range” box and the range D1:D11 to the “Dependent variable (Y) range” box as shown above in the figure. With this data we want to estimate the slopes and intercept of a linear function relating the Y and X variables given by :-

My_Y  =  Slope_1 * My_X1   +   Slope_2 * My_X2   +   Slope_3 * My_X3    +    Intercept

B.  The user can now let the regression tool know that the data ranges for X and Y have text labels (or variable names) in them.

C.  In earlier versions, the regression tool only computed the slope and intercepts, so there was no way of knowing how uncertain these numbers are. Now the users can specify confidence level as a percentage and the tool will compute the corresponding confidence intervals for each of the estimates (namely the slopes and intercept).

D.  Finally now there is a way to opt out of computing the residuals for all observations. This is beneficial to someone who is only interested in the slopes and intercept estimates and their statistics.

Following screenshot shows the output of the regression tool.


So, for our toy dataset the estimates for Slope_1 = 0.0075 (Cell B42), Slope_2 = 0.0343 (Cell B43), Slope_3 = 1.0663 (Cell B44) and the Intercept = 101.4513 (Cell B41). The 95% confidence interval for these estimates are in the columns F and G. For example Intercept’s 95% confidence interval is [98.6231, 104.2795].

Note that the above is the result of a linear regression. We can do logarithmic and power regression with multiple X variables as well in the same way.

These new features can be seen in the current development build of LibreOffice Calc and will be available in the 6.2 release. The source code patch for these features can be seen at https://bit.ly/2KI3aVk

I would like to thank Collabora Productivity for their continuous support and encouragement to work on this feature.


LibreOffice users around the world help developers to test new features and fix bugs before a new version is released. After the first and second Bug Hunting Sessions of LibreOffice 6.1, which were held on April 27th 2018 and May 28th 2018 respectively, we’re glad to announce the third Bug Hunting Session on July 6th – the last one before the release of LibreOffice 6.1!

LibreOffice 6.1 is due to be released in mid August with many new features described in the release notes and this is our last chance to test and find issues before its release.

In order to find, report and triage bugs, the tests during the Third Bug Hunting Session will be performed on the first Release Candidate version of LibreOffice 6.1, which will be available on the pre-releases server on the day of the event. Builds will be available for Linux (DEB and RPM), macOS and Windows.

Mentors will be available on July 6th 2018, from 7.00 UTC to 19:00 UTC for questions or help in the IRC channel: #libreoffice-qa (connect via webchat) and its Telegram bridge and there will be a dedicated session to test the new offline help system available in LibreOffice 6.1 from 14:00 and 16:00 UTC.

Of course, hunting bugs will be possible also on other days, as the builds of this particular Release Candidate (LibreOffice 6.1.0 RC1) will be available until the end of July, when the second Release Candidate will be available.

With your help, we can make LibreOffice 6.1 the best release yet – thanks!

02 July, 2018

  • Mail; admin, product team call, managed to finally get J's and my gmail / Android calendars to sync. up after another horrible scheduling conflict. Skype call with great news from Rob & Amelia.


LibreOffice is working and already can be installed via HaikuDepot. Here is the full announcement https://discuss.haiku-os.org/t/libreoffice-is-now-available-for-haiku/6917


I started this week with adding support to one of the feature “txAnchorVert” which specifies the y-axis anchoring of the text area in a shape, but due to the problem I was facing in git, I was unable to push the patch.

However, I think the problem is solved and I have pushed the patch of Unit test for snake algorithm based smartarts, which tests the position of the child nodes in normal from left to right layout and from right to left layout, but I think it should show merge conflict as it is related to one of the patch which is not merged, but it’s not showing merge conflict.

I’ll be including more unit tests in order to check the smartart features, smartart documents, and will fix some of the issues in the upcoming week.

During the 7th week, I sent 3 patches.

1) Gerrit change #56776

This change adds more features to the log interpreter. UNO commands, closing dialogs through buttons, sending UNO commands to open dialogs via keycode is now supported.

2) Gerrit change #56777

This change makes command-line argument parsing of interpreter more standard.

3) Gerrit change #56789

This change adds support for starting any of the 6 apps of LibreOffice through the create_doc_in_start_center() function.

Let's also have a look at a log file and the generated test file. 

Log File -

ButtonUIObject Action:CLICK Id:writer_all Parent:
CommandSent Name:.uno:FontDialog
ModalDialogExecuted Id:CharacterPropertiesDialog
RadioButtonUIObject Action:CLICK Id:90deg Parent:CharacterPropertiesDialog
ListBoxUIObject Action:SELECT Id:linestylelb Parent:CharacterPropertiesDialog {"POS": "6"}
ButtonUIObject Action:CLICK Id:ok Parent:CharacterPropertiesDialog

Test File -

from uitest.framework import UITestCase
import importlib

class TestClass(UITestCase):
def test_function(self):
MainDoc = self.ui_test.create_doc_in_start_center("writer")
MainWindow = self.xUITest.getTopFocusWindow()
CharacterPropertiesDialog = self.xUITest.getTopFocusWindow()
90deg = CharacterPropertiesDialog.getChild("90deg")
linestylelb = CharacterPropertiesDialog.getChild("linestylelb")
linestylelb.executeAction("SELECT", mkPropertyValues({"POS": "6"}))
ok = CharacterPropertiesDialog.getChild("ok")

01 July, 2018

  • Played at All Saints in the morning; stayed for meal with the church. Home to play Vive with Alfie; afternoon movie Wonder - interesting, read stories to babes.

30 June, 2018

  • J. out much of the day with Louise; riveted E's netball hoop and put it up on the trampoline; needs some adhesive to stop it rotating. Some mail bits.


I looked into a migration of the ODFAuthors site to a current Plone version with the data from the website yesterday. It took me a lot of hours to figure out the most easy way to do this. I tried to migrate from LinguaPlone to the new multilingual Plone plug-in first, but without success. I could update the buildout inside a test environment with the new plug-in, but I wasn’t able to migrate the content to the new framework. And even I wasn’t able to get rid of LinguaPlone. I didn’t get the option to remove it. I got always a traceback and found some users that run into the same issue without a solution. Thus I had to change my strategy. I exported the content that I need to migrate, set up a new and clean Plone 4.3.x environment and tried to updated it to the latest version of 4.3. I had to do some editing on the buildout and had to drop some Plone add-ons from the current buildout script of ODFAuthors. Once I had done this the buildout runs fine and I got a clean new Plone environment. Then I added the plug-ins plone.app.contenttypes and Products.contentmigration to the buildout script and run buildout again. I started the Plone instance, created a new Plone site and imported the content (exported from the current ODFAuthors site).
I activated the plug-in plone.app.contenttypes and run the migration scripts from Products.contentmigration. I had to migrate more than 4200 content objects and took a fair amount of time. But in the end the migration from the old Archetype content types to the new Dexterity ones was successful.
The next step would be the migration of the instance from Plone 4.3.x to Plone 5.0.x or 5.1.x.

29 June, 2018

  • Mail chew; call with Kendy & Miklos, a frenzy of estimating and processing the admin backlog.


At FOSS Backstage 2018 in Berlin I had the opportunity to give a talk about “The Document Foundation: The open, transparent and meritocratic future of free office software”. I’ll tell you what The Document Foundation is about, how it’s built and what our core values and principles are.

Find the full video here.
(External link to YouTube.)

The structure of The Document FoundationThe structure of The Document Foundation

Video of my talk about The Document Foundation

28 June, 2018


If the website ODFAuthors should be improved for the future use the first step would be the change of the localization framework from the old LinguaPlone to the current
plone.app.multilingual and migrate and reindex all content objects. It’s not possible to update the site to the latest Plone without that step.
I already created a Plone buildout for an upgraded ODFAuthors website that is based on version 5.1.x. This buildout is available from the Github repository of The Document Foundation: https://github.com/tdf/odfauthors.org

  • Lost most of this day travelling east, asleep. Poked mail on the Heathrow Express, Cambridge train standing room only & horribly delayed . Train to Newmarket. Simply lovely to see the family again.

27 June, 2018


I finished my work on the update of the two Plone add-ons which I used for the LibreOffice extensions and templates website. I published a new release for each of them. Today I updated the website with the new features of this add-ons. I run a buildout script for this. The  site was only a few minutes offline and is available already again.

It is possible to remove items from the list of available licenses without side effects for already published releases with the outdated (etc.) licenses now.

  • Up early, extensive slide-ware massage - meeting with Oscar interesting. Off to see Javier & the team, lunch, sync with Philippe. Back to the hotel for beers, and a trip to the airport. Managed to see ~nothing of Mexico somehow; sad.

26 June, 2018

  • Sync with Kendy; breakfast together; more slides; presentation, estimation, fun. Back, meaty dinner with Frank & Olivier - bed.


The LibreOffice extensions and templates website runs on the Content Management System (CMS) Plone and uses some plug-ins that I created. I’m currently working on a new feature for this plug-ins, which make possible to remove licenses from the selectable list without any issues for former releases with such licenses.

25 June, 2018

  • Breakfast together, meetings all day, a truck load of work landed on my desk for more work overnight.


This week, I have written unit test regarding the Basic block diagram, for normal i.e., from right to left as well as for reverse i.e., from left to right, but i don’t know why, jenkins is comparing that unit test with old code base that was without my change, I am working to find out what could be the possible cause for this.

I plan to write unit tests for various smartarts, such that when they are fixed we can find out by the unit test if anything is wrong or not.

Moreover, I am trying to fix some issues regarding smartart-pyramid and working to fix the issues where visibility of the bullets is off.

Older blog entries ->