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.

27 July, 2018


I’m on vacation and take a brake from my volunteer work since the beginning of July. This brake will last at least for this month. I enjoy the current weather and the temperature in the office, when I got back to my payed day job ;-(. It’s about thirty or more degree in the rooms (and it seems that the conditions will last for about a week or more ;-(. No need to do some extra hours during the evening in front of a PC.
But it’s also not pleasant, if you read complaints like this on Twitter about TDF volunteer work and nobody stepped in: ‘(…)yet the official website for extensions is so buggy… I added an release and it wouldn’t turn up in hours.(…)’. Make me thinking about my further volunteer work, in particular if you see in addition, that there is no line about your contributions (with investment of a lot of my spare time) in the annual report.

26 July, 2018

[en] Michael Meeks: 2018-07-26 Thursday.

21:00 UTC

  • Mail chew, strained away at JQuery with George - eventually finding that we need a tabindex to make something focus-able; interesting - progress at least.
  • Partner call, sales call, assembled a screen stand with George - hopefully gives one better posture; lets see. Still far too hot.

25 July, 2018

  • Mail, admin. Talked through researching data and writing logs with George; poked at some JQuery-ness. Bruce & Anne, S,C,A&J over - out to Prezzo for a lovely birthday lunch.
  • Back, more hacking, code review; ESC call, sync with Dennis, dinner. Very hot ...


In my 4th blog post about database migration I’ll explain most of the bugs or missing features which were discovered after publishing the migration work, and the solution for them. After that I’ll show some opportunities for further improvement. My previous post can be found here.

One of the most critical missing chunk was the migration of views and relationships. For that I had to improve the SQL parser to interpret statements like “create view..”. Some of the View definitions are still not working at the time of writing this post. The reason of this is that there are a bunch of database specific functions and keywords, like “concat” or “weekday”, which have to be handled specially for each database. For example Firebird’s dialect uses two vertical lines “||” instead of “concat”.

After that I fixed some bugs related to the migration of specific types, and I added a few types which I generously forgot to implement before. That’s how I fixed the migration of numeric and time/date columns. I also added the “REAL” type, which is something like “FLOAT”. In some databases REAL can store floating-point number of 4 bytes, while FLOAT is somewhat bigger. In case of a HyperSQL database, REAL, FLOAT and DOUBLE should be all mapped to the C++ double

There were also some general bugs which I can’t classify to a category, but they are still interesting. One of my favorite bug was that the parser had not been able to parse multi-column primary keys. The “create table” statements had specified the primary key right after the column definition. The solution was a more general approach, where the primary key is defined after all the column definitions. Another bug which was fun to fix was the migration of default values for columns, which was entirely missing. For that I had to improve the parser to interpret the “DEFAULT ” part of the SQL statement.

And now I’d like to explain what could be done to make the whole migration library work better. There is an SQL parser implemented in LibreOffice called SQLParser in module connectivity. I decided not to use this parser in the migration library, because I had problems with it.

This SQL parser can parse the statements in a tree structure. Each element of a node can be reached by the method “getChild(int idx)”, where idx is the index of the element. The problem with this approach is that you can find method-calls all over the code with magic numbers. For example if you’d like to get the referenced column name of a node representing a foreign key definition, you may call getChild(7). The real pain comes when you realise that you want to modify the tree structure, because a DBMS figured out a new keyword somewhere in the middle. Then all the magic numbers after that node have to be incremented. Instead of this, a wrapper should be created around SQLParser, which translates

24 July, 2018

[en] Michael Meeks: 2018-07-24 Tuesday.

21:00 UTC

  • Freed up J's laptop, and got G. working with a Mac + remote-X. I am still astounded that you can go for this amazing UX decision of having a minimalist single button on the mouse - while simultaneously infesting the keyboard with an additional 'Mac' modifier in addition to Ctrl and Alt - making a foul confusion of keybindings cross-platform, and having no obvious # key either.
  • Got G's first commits pushed.


Firebird has now AppVeyor CI builds, like we have them with travis, but appveyor is for Windows related compilers (Visual Studio) https://ci.appveyor.com/project/FirebirdSQL/firebird

23 July, 2018

[en] Michael Meeks: 2018-07-23 Monday.

21:00 UTC

  • Mail chew, bid a sad au-revoir to Gerd's team. George arrived in the morning - moved some hardware around to make a space for him, and got him going on some tasks. Encouraging to see his C++ & JS progress in a day.
  • Product team meeting; some code reading; customer call.

I first worked on adding logs for more events. The selection of symbols from "element_selector" in the math app now gets logged. Also, the selection of objects now gets logged in the writer, calc and impress. The patch is here - https://gerrit.libreoffice.org/#/c/57368/
I also worked on changing from multiple functions for logging to one generic function logEvent in the same patch.

Additionally, I also did some work for adding support of sending parameters in executeCommand function of the UI testing framework. The progress can be seen here - https://gerrit.libreoffice.org/#/c/57857/


This week I focused on supporting inverted pyramid and implementing it’s unit test with unit test of smartart chevron which supports on line algorithm.

Smartart Pyramid: Support Inverted Pyramid

I’ve worked to implement the support such that when powerpoint presentation imported from MS PPT 2007 it shows the inverted pyramid. If you want to test it you can go to libreoffice/sd/qa/unit/data/pptx and open smartart-invertedPyramid.pptx on libreoffice impress.

Inverted Pyramid after implementation.

There are some parameters which needs to be supported and they can be done in followup patches.

Smartart Inverted Pyramid Unit test

This unit test is regarding the inverted pyramid which tests the parameters and appearance for example it’s rotation and text etc.

Unit test: Smartart-Chevron

This Unit test is regarding the smartart which relates to line algorithm but it was not implemented until now, it’ll test the linearity when spreading the children by asserting the number of shapes, Y position and text inside the shapes.


Via Firebird-devel : Here is the first README version for the time zone feature in Firebird 4.0 https://github.com/FirebirdSQL/firebird/blob/work/time-zone-support/doc/sql.extensions/README.time_zone.md


Hello Testers,

The LibreOffice Quality Assurance ( QA ) Team is happy to announce the creation of this blog in order to give more visibility to what the team is doing.

In this first post we will talk about LibreOffice 6.1 Release Candidate 2 ( RC2 ), which was released just a few days ago.

As you might know, LibreOffice 6.1 will be released as final in mid August, 2018, and the Release Candidate 2 is just one release away from the final release, being the Release Candidate 3 ( RC3 ) the last one.

LibreOffice 6.1 RC2 has been released just 2 weeks after the first release candidate ( RC1 ), and 84 bugs have been fixed in this version compared to the previous one.

It can be downloaded from this page, and it’s available for Linux, MacOS and Windows. NOTE: it will replace your actual installation.

In case you find any problem with this release, please report it to Bugzilla ( You just need a legit email account in order to create a new Bugzilla account in case you haven’t done it yet. ).

For help, you can contact us directly in our IRC channel.

Thank you all for making Libreoffice rock!

The post LibreOffice 6.1 RC2 ready for testing appeared first on LibreOffice QA Blog.

22 July, 2018

[en] Michael Meeks: 2018-07-22 Sunday.

21:00 UTC

  • Up early; H's birthday - croissants & presents at breakfast. Out to All Saints for an early communion - then off into Cambridge together. Enjoyed wandering the town, looking at the architecture.
  • Picnic on Jesus green, played in the play-ground. Punting action together along the mayhem of the Cam - punted alongside a few daughters happily.
  • Home for some Vive goodness, and a buffet tea; bed lateish.

21 July, 2018

[en] Michael Meeks: 2018-07-21 Saturday.

21:00 UTC

  • Julia's birthday, presents in bed, sogging with N. and H. variously. Breakfast, out to Anglesy Abbey for a fine picnic lunch in the sun with everyone and a wander.
  • Back to see Gerd, Kerry, Sarah & Liam - visiting from Australia, played games with them - up late talking to Gerd & Kerry.

文件基金會2017年的年度報告現在已在文件基金會的 Nextcloud 上提供,並有兩種不同的版本:低解析度 (6.8MB)與高解析度 (29.6MB)。這份年度被告是基於四月份時遞交給德國主管單位的德文版本。

這份 48 頁的文件完全使用自由開放原始碼軟體所建立:其中文字內容使用 LibreOffice Writer(桌面版),並使用線上版協作修改,圖表則是使用 LibreOffice Calc 建立,並使用 LibreOffice Draw 進行出版的準備作業,圖片是使用 GIMP 製作,最後使用 Scribus 在既有的排版佈局下建立。

裡面的圖片是由下列 LibreOffice 社群的成員所提供:阿爾巴尼亞、巴西、德國、義大利、日本、臺灣與土耳其。

文件基金會的年度報告很快就會在 Lulu 上提供,以讓有需要的人按照其需求印刷。此外,在今年位於地拉那的 LibreOffice 大會上將會有一些印好的版本可供索取。

新聞來源:TDF Annual Report 2017

20 July, 2018

[en] Michael Meeks: 2018-07-20 Friday.

21:00 UTC

  • Up at 2:30am for some reason - mail chew - admin. Breakfast, sync call with Eloy. Played a little with Android, sync with Kendy, filed tickets.
  • National Treasure 2 in the evening - a re-make of the first version it seems; hmm.

19 July, 2018

[en] Michael Meeks: 2018-07-19 Thursday.

21:00 UTC

  • Mail; built metrics with Tor. Booked travel to the ownCloud conference too.
  • Interested by Bradley arguing for reduced restrictions on speech in codes of conduct: an encouraging direction of travel. Personally, I think protecting speech, academic freedom, and more is well worth the cost of hearing some unpleasant opinions. Having said that - one of the things that dismays me about FLOSS conferences are the tedious, low-level and lazy attacks on Trump voters and their mental capacity (I have no vote in any US election). I really dislike political polarization as a modern-day US export: the idea that by painting your opponent as completely evil you galvanize your support base is not new, but getting worse. Carefully re-reading some various recent polarizing views from some emminent lawyers, it seems that it is possible to be deeply concerned about the US's direction of travel and the role of the judiciary without being unhinged. I can believe such concern might move some to the point of drastic action - such as voting for the only plausible short-term protection from some perceived long-term evil - without actually having a pro-incoherence approach themselves. I can also imagine economic concerns, perhaps unfairly conflated with immigration being a key issue - under-addressed by the mainstream (as arguably in the Brexit vote). It would be good to hear some more balanced criticism of the lamentable failures of the alternatives in both parties too - as well as in the electorate (or the media) for following their long term trend of being more interested in politics & news as entertainment, rather than policy & information.
  • ESC meeting; posted minutes, dinner, TDF Advisory Board call.

18 July, 2018

  • Mail; admin, monthly all-hands call. A little hackery, some estimation, worked late on proposals.

17 July, 2018

[en] Michael Meeks: 2018-07-17 Tuesday.

21:00 UTC

  • Sync with Miklos, Eloy, Foad, lunch, projections, partner bits. Monthly mgmt call. Patch review, admin. Built ESC bug stats.

16 July, 2018

[en] Michael Meeks: 2018-07-16 Monday.

21:00 UTC

  • Mail, catch-up call with Eloy, admin, lunch. Sync with Lubos, Miklos & Tor. Status report. Booked travel to the Nextcloud conference and some hack-festery - Mon/Tues. Pair of partner calls in the evening.

At first, I worked on the keylogging issue. Key presses are now logged according to DSL inside the dialogs too (in ComboBoxes and SpinFields). The patch is here - https://gerrit.libreoffice.org/#/c/57233/

Then I worked on logging more events (https://gerrit.libreoffice.org/#/c/57368/). These are the events which this patch logs -
  • Writer
    • Goto Page
    • Set Zoom
  • Calc
    • Launch Autofilter
    • Select Cell/Range/Table
  • Impress
    • Set Zoom
In addition to this, I realized that we might also need to log the arguments sent with a UNO command, in addition to the UNO command itself. The patch has also done some work in that direction.

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

[en] Michael Meeks: 2018-07-15 Sunday.

21:00 UTC

  • Breakfast, off to All Saints with Tim, who spoke briefly of their work, back for Pizza lunch, much slugging & digesting, a walk on the heath; bid 'bye to Tim, Suzie & Simon, put babes to bed and read to them.


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

[en] Michael Meeks: 2018-07-14 Saturday.

21:00 UTC

  • Up late, odd jobs around the house; got into window-cleaning unfortunately my squeegee (a birthday present) got left leaning on a sharp wood edge so leaves a lovely line down the window; bother. First clean in 12 years or so (now convinced this is a good cadence for window-cleaning). Turns out there is a whole world of colour outside - I should get out more.
  • Watched National Treasure with the family, SHIELD in the evening, caught up with Tim & Suzie; bed.


是的,今年的 LibreOffice 大會於9月25至28日於阿爾巴尼亞舉辦。今天就報名,來看我們的社群,並玩得開心!下面是快速預覽:

新聞來源:Join us at the LibreOffice Conference 2018 in Tirana!

13 July, 2018

[en] Michael Meeks: 2018-07-13 Friday.

21:00 UTC

  • Mail; sync with Miklos, support bits, admin, patch review, Tim, Suzie & Simon over in the evening - talked Graphite, and SIL much of the evening.

12 July, 2018

[en] Michael Meeks: 2018-07-12 Thursday.

21:00 UTC

  • Mail chew; finally got a chunk of admin / documentation done. Sales & Marketing call. Customer mail.
  • Interested to hear of a peer of E's being sick in a Sex & Relationships Education (SRE) class covering prophylactics - 10 year olds not loving that.
  • Babes to music; fixed a pivot table regression for fun.

11 July, 2018

  • Finally got around to building ESC proto-agenda. Bug review, admin, started to fit fun tasks between the annoyance again to make at least some progress. ESC call in the evening. Band practice, Julie back to stay for a bit.

10 July, 2018


LibreOffice 6.1 即將到來,土耳其社群組織了一個在7月13日於安卡拉舉辦的 RC1 臭蟲狩獵季活動。下面是詳細資訊:

  • 時間:14:00-17:00 (UTC+3)
  • 位置:TUBITAK ULAKBIM,七樓第二會議室
  • 報名表單
參與者必須帶自己的筆記型電腦過去。報名一直持續到週四下午五點 (UTC+3)。現場就會有零食、茶飲和一些紀念品!所以如果你正在安卡拉(或附近),加入友善的社群,並讓 LibreOffice 6.1 變成最好的版本!

新聞來源:Live LibreOffice 6.1 RC1 Bug Hunting Session in Ankara on July 13

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.

<- Current blog entries