The Document Foundation Planet


June 24, 2018

Saurav Chirania

GSoC work report - 24th June

Since my last update, I have
(1) Fixed the parent printing issue when logging keys - Gerrit #55675
(2) Made an interpreter for log statements - Gerrit #56120
(3) Changed some log statements - Gerrit #56305

About the interpreter -

The purpose of printing the log statements in a DSL is mainly to be able to interpret these log statements. The interpreter is written in python and is available at core/uitest/

The interpreter takes a log file as its input and outputs a python file which will act as a test case. It starts to read the log file line-by-line. Some events span two lines in log files, and others one. The first major task is done by the function get_coupling_type() which tells the interpreter whether the event being currently read spans over one line or two. Accordingly, either get_test_line_from_one_log_line() or get_test_line_from_two_log_lines() gets called. The interpreter then creates a python object corresponding to the UI element on which the action was performed. Finally, it calls a method from the created python object to actually perform the action. More information about the interpreter is in the commit message.

Coming up next -

After Gerrit change #56305, all the log statements are now in the appropriate DSL. The next task is to ensure their proper support. I will be working on the functions in the interpreter to support more types of log statements. After this, I will resume working on different UI wrapper classes.

Thank you for reading this :-)

by Saurav ( at June 24, 2018 12:27 PM

June 22, 2018

Caolán McNamara

LibreOffice color selector as GTK widgets

Here's what the native GTK widget mode for the color picker looks like at the moment under Wayland. A GtkMenuButton displaying a color preview of the currently selected color and a GtkPopover containing the color selection widgetry.

While under X, because there the GtkPopover is constrained to its parents size, falling back to using a GtkWindow to contain the widgetry

by Caolán McNamara ( at June 22, 2018 02:21 PM

Official TDF Blog

The Document Foundation announces LibreOffice 6.0.5

Berlin, June 22, 2018 – The Document Foundation (TDF) announces LibreOffice 6.0.5, which still represents the bleeding edge in terms of features – and as such is targeted at early adopters, tech-savvy and power users – but is also ready for mainstream users and enterprise deployments.

TDF recommends deploying LibreOffice in production environments with the backing of certified professionals, providing development, migration and training support (an updated list is available at This is extremely important for the growth of the LibreOffice ecosystem.

LibreOffice 6.0.5 change logs are available at the following links: (fixed in RC1) and (fixed in RC2).

Download LibreOffice

LibreOffice 6.0.5 is immediately available for download at the following link:

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at Donations help TDF to maintain its infrastructure, share knowledge, and fund the presence of volunteers at events like the LibreOffice Conference, where they can meet with free software advocates coming from all over the world (

Several companies sitting in TDF’s Advisory Board ( provide either value-added LTS versions of LibreOffice or consultancy services for migrations and training, based on best practices distilled by The Document Foundation.

by Italo Vignoli at June 22, 2018 09:23 AM

June 20, 2018

Olivier Hallot

LibreOffice Basic well hidden secrets

Last week I wrote a quite long help page on a poorly known feature of LibreOffice aimed to Basic macro programmers.

LibreOffice - since it was named long time ago - carried a set of Basic libraries with no documentation (that I was able to find). The libraries were created to support some important features such as Euro conversion or WikiEditor, but also had a set of modules and macro very handy for the ad-hoc or professional Basic programmer of LibreOffice.

The library is distributed in the LibreOffice installers and can be opened in the LibreOffice Macros container, accessible when opening the Basic IDE.

I got fond of the TOOLS library because it has many handy macros that otherwise requires quite a lot of hard code writing and LibreOffice API knowledge even for simple operations.

Things like getting the last used row in a spreadsheet, get the value of a cell, get the filename out of a long URI are the kind of Function's and Sub's we don't want to write again but use GetLastUsedRow, GetValueofCellbyName or FileNameoutofPath for the task.

To use the LibreOffice Tools library , add the statement


before the first macro of your module. The help page is already online in

Note that not every library is described in details in the set of Help pages but if you feel motivated to peek in the code and write a simple description of the remaining modules and macros, join our documentation team!

Happy macro programming!

by Olivier Hallot ( at June 20, 2018 10:51 AM

June 19, 2018

Official TDF Blog

Image handling rework for LibreOffice – Collabora’s tender results

Donations to The Document Foundation are used for many purposes, such as organising events, maintaining our infrastructure, and paying a small team to handle QA, marketing, documentation and other tasks. But donations are also used to fund tenders, whereby companies and individuals improve LibreOffice in specific areas and share knowledge with the community.

One such tender was posted in May 2017: “improve image handling in LibreOffice (#201705-01)“. When images are used in LibreOffice documents, the software manages them in a “life-cycle” which includes importing, displaying, modifying, exporting and more. To save memory – especially with large documents – images that are not currently on screen are sometimes moved out of memory and saved onto disk in a technique known as “swapping” or “paging”. The goal of the tender was to improve LibreOffice in these areas, making it more efficient at handling images and modernising the code base.

Collabora was selected to implement the tender; the work is now complete, and it will benefit all users in the upcoming LibreOffice 6.1 (due to be released in early August). Here are some technical notes about what was improved in the source code of LibreOffice, and what was achieved.

Problems with the image life-cycle

Currently, when an image is read from a document, a GraphicObject is created for the image and handled over to the GraphicManager which manages the life-cycle. When this happens we usually get back the string based unique ID of the GraphicObject with which we can always get access the image by creating a new GraphicObject with the unique ID (GraphicManager will look for the image with that unique ID).

Usually the unique ID is the one that is passed on between layers in LibreOffice (for example, from the ODF filter when loaded, to the model, where it is manipulated and then to the OOXML filter when saving) but the unique ID itself is just a “reference” to the image and by itself it doesn’t have any control over when the image can safely be removed and when not. It could happen that in a certain situation we would still have the unique ID referenced somewhere in the model, but the image would already be removed. This is dangerous and needs to be changed.

Usually for this kind of object we use a reference counting technique, where we pass an object around that holds a reference to the object resource. When the object is created, the reference count is increased; when destroyed, the reference count is decreased; when the reference count reaches zero, the resource object is destroyed.

The solution for the life-cycle

So instead of passing around a unique ID, the idea is to use the usual reference counting technique, which is normally used in this situation. The GraphicObject is mainly a wrapper around Graphic (which then holds a pixel-based image, or animated image, or possibly a vector image), and in addition it keeps additional attributes (gamma, crop, transparency etc.). It also has the implementation of swapping-in and out.

On the other hand, Graphic is properly reference-counted already (Graphic objects are reference counting the private ImpGraphic) so the solution to the life-cycle problem is that instead of GraphicObject unique ID, we would just pass along the Graphic object instead, or XGraphic, XBitmap which are just UNO wrappers around Graphic. Potentially we could also pass along the GraphicObject or XGraphicObject (UNO wrapper for the GraphicObject) when we would need to take into account the graphic attributes too. This should make the life-cycle much more manageable.

GraphicObject refactoring

GraphicObject and the implementation of XGraphicObject (UnoGraphicObject) and XGraphic (UnoGraphic) were located in module svtools, which is hierarchically above vcl. This is problematic when creating new instances like in Graphic.GetXGraphic method, which needs to bend backward to make it even work (ugly hack by sending the pointer value as URL string to GraphicProvider). The solution to this is to move all GraphicObject related things to vcl, which surprisingly didn’t cause a lot problem and once done, it looks like a much more “natural” place.

Managing memory used by images

Previously, the memory managing was done on the level of GraphicObjects, where a GraphicManager and Graphic-Cache were responsible to create new instances from uniqueID and manage the memory usage that GraphicObject take. Here’s the hierarchy before refactoring:

This is not possible anymore as we don’t operate with uniqueIDs anymore, but always use Graphic and XGraphic objects (in UNO), so we need to manage the creation of Graphic object or more precisely – ImpGraphic (Graphic objects are just reference-counted objects of ImpGraphic).

So to make this possible GraphicManager and GraphicCache need to be decoupled and removed from GraphicObject and a new manager needs to be introduced between Graphic and ImpGraphic, where the manager controls the creation and accounts for the memory usage:

Graphic swapping and swapping strategy

The new swapping strategy is relatively simple – if a lot of memory is needed by graphic objects in a certain time, we let it use it and don’t try to over-aggressively try to free it. In the past this cased swap-out and swap-in cycle that made the application completely unusable. In the future, external hints when a certain Graphic object can be swapped out may be added, so we can perform swapping more effectively. There are also several other ideas which will increase performance and reduce memory usage that can be implemented now with the new hierarchy where most all of the swapping is contained inside the Graphic itself, but all of this is currently out of the scope of this work.

In conclusion

Thanks to Collabora and TomaĹž Vajngerl for their work on this. Although the details are highly technical, the end result is a faster and more robust office suite. If you’re an end user of LibreOffice and your documents include lots of images, you will be able to enjoy the benefits of this work in future releases, starting with LibreOffice 6.1.

by Mike Saunders at June 19, 2018 08:43 AM

June 18, 2018

Andreas Kainz

New App icons

LibreOffice get new app icons. The style is the same than before cause I love the existing work. So in general it’s only a more flat app icon set cause it fit’s now better into the design language of the operation systems and desktop environmental.

As I don’t have OS-X it would be very helpful if someone can generate the (38) .icns icon files. All files are available in svg and png.

by kdeonlinux at June 18, 2018 09:41 PM

Michael Meeks

2018-06-18 Monday.

  • Presents at breakfast - seems having spent a year telling people I'm actually 41 (by mistake) I now am (I think); early onset senelity apparently.
  • Mail chew; plugged away at OpenSSL's BIO / handshaking pieces around outbound connections. Birthday tea - steak & baked alaska.

June 18, 2018 09:00 PM

Official TDF Blog

Simplicity and flexibility: choose the right LibreOffice interface for you

With free and open source software, you get back control – over your software, your data, and your computer as a whole. And in the LibreOffice community, we strive to create the best user experience, but we also recognise that different users have different requirements.

To this end, LibreOffice includes three main user interface designs, accessible via View > Toolbar Layout in the menu. Let’s go through them…

The first layout, Default, is what you see when you first install LibreOffice:

It’s a familiar layout with two toolbars containing various buttons. (Note that you can customise and add buttons to the toolbars if desired.)

Then there is the single mode, which opts for simplicity and minimalism, giving you more screen space to really focus on your content:

And finally, the third option is the sidebar, which uses horizontal space to provide buttons and options for your work:

So LibreOffice gives you the freedom and flexibility to choose the right interface for you. But we’re not finished yet! Our design community is working on the Notebookbar, another (optional) user interface:

It’s still experimental, but you can try it out and help us to improve it, so that we can polish it up and include it in future releases! Join our design community to provide feedback – and thank you!

by Mike Saunders at June 18, 2018 12:25 PM

June 17, 2018

Michael Meeks

2018-06-17 Sunday.

  • Woken unfeasibly early by small girls' six-in-two-beds experiment breaking down. To church to play bass & violin rather tiredly. Home for lunch joined by Margarit & Marius.
  • Packed up tent, dried blankets etc. straightened tent-pegs in the vice with E. Tea, bed.

June 17, 2018 09:00 PM

Andreas Mantke

New Buildout For ODFAuthors Nearly Finished

I worked very hard on the new Plone buildout for the ODFAuthors website during the last days. I nearly finished the buildout today. I created a new policy and a theming product for the site. I added a template for the frontpage of the new website and am waiting for the input about the content, that the new frontpage should show.

I also need some suggestions on the new publication workflow of the site. The Plone workflow tool is able to run very subtle grained ones.  The Plone Content Management System is also able to send automatic messages on all events like changing the workflow state.

by Andreas Mantke at June 17, 2018 07:00 PM

Ekansh Jha

GSoC’18: SmartArt Week 5

Last week was the week of evaluation with minor fixes in the code I submitted.

I got information about the Coverity error in my submitted patch “Corrected Line Algorithm” : “*** CID 1436015: Code maintainability issues (UNUSED_VALUE)”.

I’ve fixed that in this week. Moreover, child width and height doesn’t depend on nIncX and nIncY, so I’ve removed that code, it relates only to the position of the child. I’ve submitted the patch with the name “coverity#1436015 UNUSED_VALUE” and it has been merged.

Old Smartart Maxdepth
New Smartart MaxDepth

There is no such significant change in the rendering of the smartart but it was important for future changes.

I have also submitted the unit test for the Line Algorithm which asserts the position of the child nodes as well as it asserts that the child nodes are in the same horizontal level.

I’ll submit more unit tests in the coming week with some major changes in the smartarts, and will be adding the test documents to test the rendering of the shapes.

P.S. I passed my first evaluation. Thanks to the whole community.

by Ekansh Jha at June 17, 2018 02:16 PM

Andreas Mantke

Installation Of OpenSUSE Leap 15.0

I installed the latest OpenSUSE Leap distribution to a notebook. The installation tooks about half an hour and the new KDE Plasma desktop looks very well. It’s always easy and fast to install a new Linux distro these days. If I would have tried to do the same with a current MS Windows on the same machine, I wouldn’t have finished yet (but not sure, if the machine would be able to run a current version).

by Andreas Mantke at June 17, 2018 02:05 PM

Dennis Roczek

Some Statistics on Spam

Well, lately the TDF Wiki Admins luckily hadn’t much to do, but well I still do want to provide some statistics as the results are very impressive.

Our activated “abuse filter” has caught 2214 edits in the the time from 26 March 2018 to 12 June 2018 (so within 78 days) done by 1244 users. Be careful in interpreting the data as after many weeks the spammer detected the problem and tried to hit enter multiple times but with a new session (so all the accounts do not get blocked, part 2 of the rule was never hit except one false positive and by one of my test accounts!).


For a very short test in the night this filter seems very successful at the moment at least for my nerves for the last 3 months. Finger crossed that this stays so in our wiki (and of course all other platforms we provide – if they have spam problems, I do not know, except nabble)!

Some manually work still include 9 classical spammers (so it seems somebody other) who tried to post something in the “main space” / “article space” which we need to block and delete manually, but in 78 days this were only 9 times!!! That’s admin work as I love it: concentrate on the content, not fighting spam!

To mention: another abuse filter which hits much more the false positive, but is alive since ages has protected us from another 5 edits by 4 users from spam. This is ok, as the warning was reworked to make it more clearly what we do want and that most regular users also got excluded finally…

by dennisroczek at June 17, 2018 12:25 AM

June 16, 2018

Michael Meeks

2018-06-16 Saturday.

  • Put up tent in the garden for E's birthday sleepover; out into town to play at the Bill Tutt memorial - onto All Saints for a free out-door barbeque for the community - chatted to lots of people variously.
  • Home, dealt with six small, post-swimming girls at a party; got a movie on for them; tried to wrestle them to bed and calm them down in a tent; nearly got there - but eventually defeated by the sheer excitement of it (and ultimately fear of the dark). Not much sleep.

June 16, 2018 09:00 PM

June 15, 2018

Michael Meeks

2018-06-15 Friday.

  • Mail, sync with Kendy, mail; finally a bit of hacking - somewhat frustrated by needing python 3.6 - but not being able to install it without breaking / removing half my distribution; hmm - not optimal. Minimally implemented client websocket masking.

June 15, 2018 09:00 PM

Florian Effenberger

The Document Foundation – The open, transparent and meritocratic future of free office software (talk at FOSS Backstage 2018)

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.

The slides are available for download (PDF file, 7,8 MB).

The structure of The Document Foundation
The structure of The Document Foundation

Der Beitrag The Document Foundation – The open, transparent and meritocratic future of free office software (talk at FOSS Backstage 2018) erschien zuerst auf Florian Effenberger.

by Florian Effenberger at June 15, 2018 09:19 AM

Official TDF Blog

Posting stickers for the Month of LibreOffice – don’t forget to claims yours!

Currently we’re posting out the sticker packs for the Month of LibreOffice. Did you contribute to the project in May 2018, and your name (or username) is on this page?

If so, and you haven’t contacted us yet, email with your name (or username) from the wiki page, along with your postal address, and we’ll send you a bunch of stickers for your laptop, PC and other devices!

(Note: we will only use your postal address to send the stickers. No data will be transferred to third parties, and your address will be deleted as soon as the stickers are posted.)

by Mike Saunders at June 15, 2018 09:17 AM

>Marius Popa Adrian

C++ the Newest Old Language : presentation by Matt Godbolt (GOTO Chicago 2018)

This presentation was recorded at GOTO Chicago 2018 C++ is an old language only used by the unfortunate few that absolutely have to, right? Wrong! C++ is not the language it used to be: clunky, error-prone and lacking in tooling. A lot has changed in the last decade: three new language revisions, new compilers and all-new: [...] Download slides and read the full abstract here: https://

by Adrian Marius Popa ( at June 15, 2018 07:55 AM

June 14, 2018

Michael Meeks

2018-06-14 Thursday.

  • Mail chew; meetings, more mail, patch review, support ticketing.

June 14, 2018 09:00 PM

June 11, 2018

Official TDF Blog

IMPORTANT LibOCon Call for Paper Reminder

The Document Foundation reminds all members and contributors to submit talks, lectures and workshops for this year’s conference in Tirana (Albania). The event is scheduled for late September, from Wednesday 26 to Friday 28. Proposals should be filed by June 30, 2018, to be considered for inclusion in the conference program, so there are only 20 days left before the deadline.

The conference program will be based on the following tracks:

a) Development, APIs, Extensions, Future Technology
b) Quality Assurance
c) Localization, Documentation and Native Language Projects
d) Appealing LibreOffice: Ease of Use, Design and Accessibility
e) Open Document Format, Document Liberation and Interoperability
f) Advocating, Promoting, Marketing LibreOffice

Business track:

  • Enterprise Deployments and Migrations, Certifications and Best Practices, Building a successful business around LibreOffice
  • Roundtable with company representatives: enterprises, governments and non-profits

Presentations, case studies, workshops, and technical talks will discuss a subject in depth and will last 30 minutes (including Q&A). Lightning talks will cover a specific topic and will last 5 minutes (including Q&A). Sessions will be streamed live and recorded for download.

Please send a short description/bio of yourself as well as your talk/workshop proposal to the program committee address:

If you do not agree to provide the data for the talk under the “Creative Commons Attribution-Share Alike 4.0 License”, please explicitly state your terms. In order to make your presentation available on TDF YouTube channel, please do not submit talks containing copyrighted material (music, pictures, etc.).

If you want to give multiple talks, please send a separate email for each.

Thanks a lot for your participation!

by Italo Vignoli at June 11, 2018 06:00 AM

June 10, 2018

Saurav Chirania

GSoC work report - Week 4

This week involved completing the UI wrapper classes for combo-box and tab-control. The code can be found here.

I have proposed two ways for logging actions for the main LibreOffice writer window. The first one is by writing separate logger for the LibreOffice writer analogous to the VCL logger. The patch is here. The second is by simply sending log statements when the functions for "Go to Page" or "Zoom" are called. The patch is here. Of course, we will push only one of these two patches to master after the code review.

by Saurav ( at June 10, 2018 05:12 PM

June 09, 2018

Andreas Mantke

Continious Integration For New Plone Environment Passed

I worked on an update of my new Plone environment to the current version 5.1.x today. I had to add and edit some files to my git repository. I got a successful local build first. I added a travis.yml file to the repository and enabled the building process on Travis. It needed some further edits but in the end it builds on Travis too and the new development buildout for an updated odfauthors site showed a green button.

by Andreas Mantke at June 09, 2018 10:05 PM

June 08, 2018

Andreas Mantke

Creating A New Plone Development Environment

I worked on the first bits for a new Plone development environment. I’ll use this to create a new website for the ODFAuthors team. The new site should run on Plone 5.1 or later. Maybe it is possible to upgrade the site to a Plone version that runs on Python 3.

I read already on a blog of a Plone developer that Core-Plone is already ported to Python 3, but that there are a big bunch of tests that are not yet ported and need some love (and work time).

by Andreas Mantke at June 08, 2018 09:04 PM

Ekansh Jha

GSoC’18: SmartArt Week 4

I’ve learnt a lot this month and have solved issues regarding smartart import.

Quick Review

I started by adding the number of Microsoft Powerpoint 2007 test documents which were unable to load correctly in LibreOffice and pushing them.

Later on, I worked on Snake algorithm and first, I corrected Snake algorithm as it was not able to render the diagrams properly and then implementing the support to the same Direction and Reverse Direction. The algorithm works quite well. Now it displays correct position of child layout nodes along a linear path in two dimensions, with the correct number of rows and columns and aspect ratio, this algorithm is for smartarts like Basic Block List — grouped blocks of information. It also specifies the behaviour of the direction that additional nodes are added to new rows or columns in the snake algorithm.

I then changed my concentration to Line algorithm as it was also incorrectly rendered, I fixed the aspect ratio related problem, earlier it displayed odd height of the children nodes as compared to their width.

I have added the unit test for Line algorithm in that, TestMaxDepth test checks the linear (lin) algorithm such that it arranges child layout nodes along a linear path.

Present Week Work

I’ve added support to autoTxRot parameter in Text algorithm it specifies how text is oriented relative to the shape, according to values: none, upright(default) and gravity.

Enumeration Values and their description

I’ve changed just a bit in upright value as it rotates the text negative to the rotation of the shape.

Future Work

For autoTxRot: I’ll be creating a document that shows the various possibilities of the rotation, and a unit test that asserts that they are fine after the patch (and fail without it) — in a follow-up commit.

For Line Algorithm: will be creating a unit test that asserts that the shapes are at the same positions as in PowerPoint.

Test Documents: Adding more test documents to test the features of the shapes.

For Snake Algorithm: Adding unit tests for these changes & also for the revDir and sameDir.

There is a lot of work in improvement like rendering of pyramid shapes. I’ll be fixing more issues in the next month.

P.S. Please read my previous blog for project description and week-wise report.

by Ekansh Jha at June 08, 2018 08:41 PM

Google Summer of Code’18: First and Second Week

Google summer of code’s community bonding part has ended a week before and the coding period started.

My Project is on Smartart Editing in impress.

I’ll be describing my project in a separate blog.

There are so many smartarts which require proper rendering in LibreOffice and hence, I started with Snake Algorithm which is for basic block List.

SmartArt in Microsoft Office 2007

Here is the layout which LibreOffice render.

Incorrectly Implemented: SmartArt in Libreoffice

As it is clear the number of rows and columns were different from the Microsoft office designed layout as well as the last node position also differ from the original. I made some changes which fix this issue and I am happy to see the results.

Corrected SmartArt in Libreoffice

I have corrected the Snake Algorithm: Now it displays correct position of child layout nodes along a linear path in two dimensions, with the correct number of rows and columns and aspect ratio, this algorithm is for smartarts like Basic Block List — grouped blocks of information. It also specifies the behaviour of the direction that additional nodes are added to new rows or columns in the snake algorithm.

I have implemented for the same Direction and submitted it, waiting for the review:

To Do: If this patch got merged then, in the upcoming week I’ll be implementing this algorithm for the reverse direction:

I have learnt a lot, thanks to the whole community. I’ll be fixing more issues in the upcoming week.

by Ekansh Jha at June 08, 2018 08:38 PM

Andreas Mantke

View From Outside An Inner Circle

The perception of an organization most often differs between people who are members of the inner circle and the public (public area of the organization). As a member of the inner circle oneself may have a belief about this view from 10 thousend feet hight, but that’s often only an idea. So am I.

If you are inside the inner circle you get a lot of messages, take place in discussions and had to decide on some topics. You share the impression that the leading body of your organization is always busy and take action for the organizations good.

I left the inner circle (due to no further candidacy) some month ago and got a different view now. I got  – like others in the (organization) public – only little or no information about the work of the bodies of the organization (not even about the next meeting time etc. of the leading body).  This opens my eyes and I’m able to comphrehend the view of other project members much better now. Thus I’m very happy that I took the decision to not stand for a candidacy again. It’s always good to change your view, thus you could understand the other position (view).


by Andreas Mantke at June 08, 2018 01:00 PM

Florian Reisinger

Kotlin SI-GUI – Incompatible changes


From now on you need the newest updater JAR. I hate that this happened… Updater download

Bottom line: The main application is no longer a ZIP, which needs to be extracted. From now one it is a JAR file, which can be started by a double click…. Therefore the updater procedure had to be changed.

I am sorry for this change, but I am quite sure that should not happen too often ( I do not want to say “should not happen again”, but I would not know a reason to change that again…)

by Florian Reisinger at June 08, 2018 06:01 AM

June 05, 2018

Miklos Vajna

Editing ReqIF-XHTML fragments in LibreOffice Writer

I worked on a small feature to use Writer as an editor for the XHTML fragments inside Requirements Interchange Format (ReqIF) files. First, thanks to Vector for funding Collabora to make this possible.

Writer already supported XHTML import and export before (see my previous post) as a special mode of the HTML filter, this work builds on top of that. The main speciality around XHTML as used for fragments inside a ReqIF file is embedded objects.

The special mode to opt-in for ReqIF-XHTML behavior can actived like this:

  • during import: --infilter="HTML (StarWriter):xhtmlns=reqif-xhtml"

  • during export: -convert-to "xhtml:HTML (StarWriter):xhtmlns=reqif-xhtml"

Three different cases are handled:

  1. Image with native data we don’t understand and just preserve.

  2. Image with OLE2 data, which we hand out to external applications (at least on Windows). On the above video this is an embedded PPSX file, handled by PowerPoint.

  3. Image with ODF data, which we handle internally. This is a Draw document on the above video.

Regarding how it works, the import is a series of unwrapping containers till you get to the real data and the export is the opposite of this. Here are the layers:

  • Larger ReqIF files have the .reqifz extension, and are ZIP files containing an XML file, having the XHTML fragments. This is not relevant for this post, as Writer assumes that extracting the XHTML fragment from ReqIF is done before you load the content into Writer.

  • XHTML always has a PNG image for the object, and optionally it has RTF as native data for the object.

  • The RTF file is a fragment, containing just an embedded OLE1 container.

  • The OLE1 container is just a wrapper around the real OLE2 container.

  • The OLE2 container either has the data directly or MSO has a convention on how to include OOXML files in it (see the PPSX example above), and we handle that.

On export we do the opposite: save the file, put it into OLE2, then into OLE1, then into RTF, finally into XHTML.

There is no specification on how to put ODF files into OLE2, so I extracted the relevant code from LibreOffice’s binary MSO filters and now the Writer HTML filter uses that as well. This avoids code duplication and also could avoid inventing some new markup this way.

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

June 05, 2018 08:43 AM

June 03, 2018

Saurav Chirania

GSoC work report - Week 3

This week started with extending the UI logging infrastructure for logging list-box related events. The events ListboxSelect and ListboxFocus will now be recorded in the log file. Here's the patch.

Next, I started to develop logging framework for LibreOffice's writer. The idea is to enumerate the events we need for logging and then have a logger similar to what we have for VCL events. The code can be found here. The patch is under review.

The patch sent in the last week has received a positive review and is ready to be merged.

by Saurav ( at June 03, 2018 02:59 PM

Ekansh Jha

GSoC’18: SmartArt Week 3

Week 2 of the GSoC coding period is completed successfully. I have been successful in upgrading the existing Smartart Algorithm.

In Week 1 and 2, I added new methods to Snake Algorithm which is for Basic Block list smartart types. Please Click here if you want to read the previous Blog.

This Week I started with Line Algorithm which displays odd ratio of height and width.

Old Chevron Smartart
Old Smartart MaxDept

Changed some code so that Smartart displays Satisfying height to width ratio, will improve height to width ratio if asked by mentors.

New Smartart MaxDept
New Chevron Smartart

I’ve written a unit test for Line Algorithm, particularly for Smartart MaxDepth, such that the child spreads across the x-axis.

Last Week, I mentioned about adding some new Style to Snake Algorithm with reverse Direction.

Reverse Direction

When we pass reverse Direction(revDir) parameter in the code it should behave as mentioned above, but it was not implemented until now. I’ve added support to this feature as the child nodes will be displayed in the snake manner described above. Please see the below image for a more clear idea.

‘Test’ is the first node and ‘a’ is the second node and normally will be spread along the x-axis, but when smartart changes row, third node ‘b’ should be placed below the second node and this pattern will continue until the last node.

Basic Block LIst with reverse Direction for 5nodes

Below is the behavior when Basic Block list is applied to 8 nodes.

Basic Block LIst with reverse Direction for 8 nodes

I have learnt a lot, thanks to the whole community. I’ll be fixing more issues in the upcoming week.

by Ekansh Jha at June 03, 2018 01:44 PM

June 01, 2018

Naruhiko Ogasawara

LibreOffice Kaigi 2018

On May 12th, 2018, LibreOffice Japanese community had done our annual LibO event "LibreOffice Kaigi 2018" successfully, gathered around 30 people.

We had the Keynote from Mr. TomaĹž Vajngerl, 6 long talks, 5 lightning talks, and Writer hands-on for end-users.

You can watch these videos on the YouTube playlist (most of these are in Japanese except the keynote and one lightning talk).  And you can find slides on our event site.

Hope I'll write a recap article of the event here near future ;)

by Naruhiko Ogasawara ( at June 01, 2018 02:41 PM

May 29, 2018

Andreas Kainz

Check the defaults

Please check the new default icon themes for LibreOffice 6.1.

  • Windows switch from Tango to Colibre tdf#90194
  • Gnome and GTK switch from Tango to Elementary tdf#116695
  • Linux KDE stay with Breeze
  • OS-X discussion is still open tdf#116916

Windows: Tango to Colibre

Gnome based desktops: Tango to Elementary

Download LibreOffice 6.1 Beta

If you like my work, become a Patreon.

by kdeonlinux at May 29, 2018 11:18 PM

Florian Effenberger

Piramida, Protik and party – my first visit to OSCAL

Two weeks ago I had the honour of being a speaker at OSCAL in Tirana, the Albanian Open Source Conference. Still having vivid memories of this remarkable event, let me share my impressions with you while they’re fresh.

One of the most beautiful things about working in an open source project is having friends and colleagues around the world. They not only give you insight into different cultures and languages, but eventually will also lead you to countries and places you might have not seen otherwise.

Throwback in time. LinuxTag in Berlin, 2014. Redon, an Albanian free software enthusiast, visits us at the LibreOffice booth and talks about an open source conference they plan in Tirana. I was flattered to be invited, but Albania not being the closest destination and me travelling a lot at that time, I somehow didn’t manage to follow-up. Time passes by and I lose track of the event. Entirely my fault.

Another throwback in time. LibreOffice Conference in Brno, 2016. After the opening ceremony, someone in the room starts handing out candy, a nice conference tradition. “Llokumi” the candy is called, as I learn later on. I took a bite and was impressed how it’s possible to get so many calories into so little space. ;-) Later on it turned out it was a present from the Albanian community and so I got to talk with Jona. Over the course of the conference I learn that this is the local community who organizes OSCAL, the Albanian Open Source Conference and they would be happy to have LibreOffice contributors as speakers. It rings a bell, but I am not sure if I made the direct link to the meeting in Berlin a few years ago at that time already. In any case, not having travelled a lot for a while, going there sounded very much tempting, but sometimes life comes in between and so it didn’t work out for me in 2017 either.

Third throwback in time. FOSDEM in Brussels, 2018. “You really need to come to OSCAL”, I am told with a smile by many of my Albanian friends – an offer I neither would nor could refuse. This year, life’s surely not coming in between, the calendar looks good as well and so I decide to file two papers. And, d’oh, stupid mistake, Florian – eventually both of them get accepted! :-) So – seems I’m gonna talk about The Document Foundation as well as about open source cooking in Tirana this year! And actually it’s a perfect year to go, because in September, the Albanian community will organize the annual LibreOffice Conference as well, so why not get to know the country before?

I never made it to Albania, so I’m excited! I love travelling, I love flying – and escaping the bad German weather at that time sounded tempting, too. Having heard the exciting reports from my colleagues who went the year before, I was super happy to go – so, yes, Tirana in May it is! The flight worked like a charm and went pretty well. Just one word of warning: If they try to sell you “three unique bottles of Bavarian beer” at the duty free store for “just” 9,90 â‚Ź – better run away…

Well, to be fully transparent, not all went so well – my hand luggage and my beloved headphones both broke at the same day, but that’s just bad luck and I at least got the music issue fixed afterwards. ;-) And luckily I travelled together with my colleague Sophie, so we had a good time to talk.

I was already very much impressed by the Albanian community before I went to Tirana and my experience was more than confirmed during my stay. Already their airport pick-up service made a big difference. Having left the customs area, Izabela was already waiting for us, welcoming us with a smile and took the bus to get us to our hotel. Now that really is a welcoming atmosphere! Instead of being lost in a foreign country, someone picks you up, shows you around, brings you to the hotel and has some helpful hints for your first evening. Wow!

This wasn’t the only positive surprise for the day. Shortly after I checked into the hotel, I found a wonderfully wrapped welcome package on my desk. It contained a letter with warm words of welcome, including two phone numbers in case we need help and also had some local food and a small bottle of Raki. Again, wow! Such a nice gesture makes everyone feel home and appreciated after a long travel.

OSCAL organizers really care for the speakers
OSCAL organizers really care for the speakers

For the evening, we went to a welcome party and it felt good to celebrate the first evening together. Agreeably, we didn’t stay too long and after some really good sleep in my cozy hotel bed, the next day saw the opening ceremony of OSCAL. Located at the Piramida, whose history was explained to us by the organizers, from the beginning it had a very special atmosphere. Welcomed by an enthusiastic group of organizers, we got our badge and entered the building. Old and new, present and past, all combined in one venue. Piramida was equipped with lights, speakers, a big screen, wifi and everything else a conference needs. To be honest, I have no idea how they managed to get everything in there – it must have been a lot of logistics and sleepless nights to get that done!

Piramida was the main venue for OSCAL in 2018
Piramida was the main venue for OSCAL in 2018

The conference was opened by Kristi and Boris and once again, I was amazed. The first two talks were held in Albanian language, but we got simultaneous translation to English – in perfect quality! I’ve been to conferences near and far, free and expensive and have seen a broad range of “somehow acceptible translation” to “we don’t mind at all if you understand us”. But this was outstanding – we got a professional translation, absolutely well done. That’s how it’s supposed to be, and many others could learn a lot from you for sure!

The conference itself was split into two venues that were connected by a beautiful park, with flowers blooming all along during these wonderful days in spring. Piramida was the main venue and Protik offered further rooms for talks at just five minutes walking distance. As an additional benefit of walking from one venue to another, there were quite some good bars and restaurants nearby where we could stop, have a little break, enjoy a good espresso and relax in the sunshine. There was no lack of food during the conference either, as the organizers have prepared a wonderful speaker’s lunch with a variety of food of all sorts – and it all was extremely tasty. The conference itself had various exciting talks of all sorts, covering different aspects of free software and open culture, and many old and new friends were met. We’ve learned about the business behind free software, about security problems in governmental websites, about diversity in free software communites and in the evening I’ve seen many people trying their luck in lockpicking that was obviously explained in a talk, too!

The main venue was in the middle of a beautiful park
The main venue was in the middle of a beautiful park

Not only the organization at the venue was brilliant, but also the communication and coordination upfront. Speakers and attendees were connected via Telegram groups, and e-mails gave all details for the event. In one of those announcement mails we learned that there might be possibly eventually maybe a little party planned perhaps… and there are drinks involved! :-) After a delicious buffet that even had a chocolate birthday cake, the lovely streets of Tirana further invited for a stay during a long summer night. In other words: We essentially crashed into one sempty bar and completely took over the space with the sheer crowd of people joining. Rumors have it the last went home just after 4am in the morning. (Not me!)

Nightlife, sort of... ;-)
Nightlife, sort of… ;-)

The next morning day we went back to the venue. Lesson learned from the day before is that getting some sunscreen could be helpful as well as wearing a hat, as the sun is burning much harder already than in Germany. There’s an interesting side story of me “lending out” my hat, but in the end I managed to get it back in return for the promise to bring some as presents during my next visit. ;-)

While the first day of OSCAL had my talk about The Document Foundation, I was also excited to talk about open source cooking during the second day. Having held this talk just twice before in German, it was the first time actually to have it in English and I was very keen to see how the audience would react. I turned out they were as open, friendly and crazy as the organizers, and I was very happy to hear I actually was able to make people hungry. Who knows, maybe we see an open source cooking in Albania soon as well? ;-) Count me in!

Me talking about open source cooking at OSCAL (picture by Silva Arapi)
Me talking about open source cooking at OSCAL (picture by Silva Arapi)

Afterwards, I spent parts of the afternoon outside of Piramida in the beautiful park, taking pictures and talking to friends and colleagues. The second evening, of course, had a party as well. :-) Having had a short trip through the city organized by my colleague Italo, that covered Skanderbeg place, the market and other venues, we went to a bar to celebrate this edition of OSCAL with many speakers and attendees.

A fountain is ideal for hot summer days
A fountain is ideal for hot summer days

While for the conference attendees, the organizers offered a tour through the city, for us Monday started with a meeting about the upcoming LibreOffice Conference, to discuss details with the organizers, plan for hotels, logistics and other bits and pieces and I am very much looking forward to being in Tirana in September again.

A beautiful sunset in Tirana
A beautiful sunset in Tirana

This was my first OSCAL and my first visit to Albania, but clearly not my last. I’ve rarely been to a conference where organizers cared so much, were I felt so welcome and accepted and where ideals of friendship, community and hospitality were so strong and ever-present. I could literally breathe so many of the ideals that free software communites mean to me and OSCAL was an outstanding, remarkable event.

I am happy and thankful for the wonderful experience, for having the opportunity to meet such amazing people from all around the world and that I made new friends in Albania. I miss all of you already and look forward to be back again soon!

Faleminderit, everyone and kudos to the amazing organizers!

Der Beitrag Piramida, Protik and party – my first visit to OSCAL erschien zuerst auf Florian Effenberger.

by Florian Effenberger at May 29, 2018 10:44 PM

The Document Foundation – The open, transparent and meritocratic future of free office software (talk at OSCAL 2018)

At OSCAL 2018 in Tirana 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.

The slides are available for download (PDF file, 1,2 MB).

The structure of The Document Foundation
The structure of The Document Foundation

Der Beitrag The Document Foundation – The open, transparent and meritocratic future of free office software (talk at OSCAL 2018) erschien zuerst auf Florian Effenberger.

by Florian Effenberger at May 29, 2018 08:08 PM

May 28, 2018

Florian Effenberger

Rückblick auf’s LibreOffice Community-Treffen in Hamburg

Das LibreOffice-Projekt besteht aus einer Vielzahl von Sprachprojekten weltweit, die LibreOffice in ihrer Sprache testen, vermarkten, lokalisieren und dokumentieren. Wir treffen uns regelmäßig, um über die lokalen Aktivitäten zu sprechen, uns auszutauschen und Pläne für die Zukunft zu schmieden. Im April 2018 war es im deutschsprachigen Projekt wieder soweit.

In den Räumen von in Hamburg, bei denen ich mich an dieser Stelle ganz herzlich bedanken möchte, fanden gleichzeitig das LibreOffice-Hackfest im neuen Format und das deutschsprachige Community-Wochenende statt. Meine Kollegen Mike, Thorsten und Björn, dem ich für die klasse Initiative und die tolle Organisation danken möchte, haben bereits dazu in den verschiedenen Blogs berichtet. Heute möchte auch ich meine ganz persönlichen Eindrücke mit euch teilen. ;-)

Wie ihr euch vorstellen könnt, ist bereits die Terminfindung zu so einer Veranstaltung alles andere als trivial – Feiertage, Urlaube und andere Konferenzen wollen berücksichtigt werden, sodass die Zusammenlegung mit dem Hackfest sich auch, aber nicht nur, aus diesem Grund angeboten hat.

Die Location war dabei ziemlich “stylish”. Ein modernes Bürogebäude, mit schönem Blick über Hamburg – und auch das Wetter hat super mitgemacht. Alles in allem waren wir ca. 30 Leute aus verschiedenen Ländern, die das Interesse an LibreOffice eint und für die das Community-Treffen eines der Highlights im Jahr ist, an denen man sich persönlich sieht. Als Gast durften wir in diesem Jahr Silva von der albanischen Community begrüßen, was uns sehr gefreut hat, gehört sie doch zum Team derjenigen, die im September die LibreOffice-Konferenz in Tirana organisieren.

Ein wunderbarer Sonnenuntergang durfte nicht fehlen ;-)
Ein wunderbarer Sonnenuntergang durfte nicht fehlen ;-)

Ein großes Thema für die deutschsprachige Community ist seit einiger Zeit die Nachwuchsförderung. Viele von uns sind bereits seit langem mit dabei, aber wie in anderen Projekten auch, ändert sich die Lebenssituation bei einzelnen: der ehemalige Student ist im Vollzeitjob, andere haben Familie, wiederum andere sind ins Ausland gezogen – kurzum, die Prioritäten verschieben sich und nicht jeder hat Kapazitäten frei, größere Projekte zu stemmen.

Umso schöner ist es zu sehen, dass sich viele weiterhin als Teil der deutschsprachigen Gemeinschaft sehen und bei den Treffen mit dabei sind. Das ist ja das Schöne an Open-Source-Communities: Aus Kollegen werden schnell Freunde, die einen über viele Jahre begleiten. Man kennt sich, man hat gemeinsame Interessen und kann nach all den Jahren auch in ein paar Erinnerungen schwelgen. ;-) Und, ganz nebenbei bemerkt, auch die Stiftung selbst stellt für die Aufnahme als Mitglied im Kuratorium keine unüberwindbaren Hürden.

Das Zusammenlegen von Hackfest und Community-Treffen hatte dabei den Vorteil, dass wir als deutschsprachiges Projekt auch mal über den Tellerrand schauen konnten. Ein Großteil der Programmentwicklung findet auf den internationalen, englischsprachigen Mailinglisten statt, sodass die gemeinsame Veranstaltung für viele die Gelegenheit bot, mehrere Entwickler persönlich kennen zu lernen und ein Gesicht zum Namen zu bekommen. Solche Kontakte sind viel wert, gerade in einem großen Projekt wie dem unseren und ich bin mir sicher, dass einige Fragen und Vorschläge dadurch direkt auf den Weg gebracht werden konnten.

Einer der Diskussionspunkte war die Teilnahme an Veranstaltungen. Hier wollen wir als DE-Projekt unseren eingeschlagenen Weg fortsetzen und künftig weniger an großen und teuren Messen teilnehmen, als vielmehr kleinere und lokale Events unterstützen. Zum einen ist das deutlich günstiger, denn eine große Messe kann schnell Kosten im fünfstelligen Bereich produzieren, zum anderen erreichen wir auf diesem Weg deutlich einfacher neue Mitwirkende als auf den klassischen Veranstaltungen. Wir wollen in Zukunft verstärkt darauf setzen, die Mitarbeit im Projekt zu bewerben, denn LibreOffice als Produkt ist auf den meisten Open-Source-Events bereits bekannt.

Ein erster Erfolg ist dabei die Teilnahme am Linux-Infotag in Augsburg Ende April, bei dem das LibreOffice-Projekt zum ersten Mal mit einem eigenen Stand vertreten war. Mit etwas Glück sind wir auch auf den Linuxwochen Linz mit dabei und versuchen zudem, einen Stand auf der FrOSCon zu bekommen. Ich selbst freue mich, im Juni auf der FOSS Backstage in Berlin einen Vortrag zur Stiftung zu halten. Parallel dazu haben wir Ideen für die weitere Überarbeitung unserer Mitmachseiten gesammelt, die wir nach und nach ausrollen werden.

Silva hatte zudem wertvolle Eindrücke aus der albanischen Community im Gepäck. Der große Vorteil in Albanien ist, dass sich nahezu die gesamte Open-Source-Aktivität um die Hauptstadt Tirana konzentriert und es mit Open Labs einen gemeinsamen Hackerspace gibt, der sowohl als spontaner Treffpunkt als auch für geplante Veranstaltungen genutzt wird. Im deutschsprachigen Raum verteilt sich die Community über eine deutlich größere Fläche und selbst für mich, der schon nahe München wohnt, beträgt die einfache Fahrtzeit locker 90-120 Minuten, mit eher bescheidener Verkehrsanbindung am Abend – ungeeignet für einen spontanen Abstecher zum gemütlichen Feierabendtreff. Eine der Ideen ist es, lokale Treffen wie den Stammtisch West oder auch die Münchener Open-Source-Treffen wieder vermehrt zu Community-Treffpunkten auszubauen. Ich kann mich noch gut an die ehemaligen Stammtische in München erinnern, die regelmäßig gut zwei Dutzend Teilnehmer begeistert haben – das sollten wir wieder in’s Leben rufen.

In diesem Zusammenhang kam auch die Idee erneut auf, eine deutschlandweite Karte mit allen Aktiven im Projekt zu erstellen, damit wir einen besseren Überblick bekommen, welche “Hotspots” wir im Projekt haben und wo sich lokale Treffen lohnen. Diejenigen, die kein Treffen in der Nähe haben, sind natürlich weiterhin eingeladen, an unseren monatlichen Telefonkonferenzen teilzunehmen, bei der sich Community-Mitglieder zu den aktuellen Entwicklungen im Projekt austauschen.

Das Wochenende ging, wie jedes Community-Treffen, viel zu früh vorbei. Für mich war es schön, all die Kollegen, Mitwirkenden und Freunde im Projekt wiederzusehen und ich freue mich schon auf das nächste Treffen, das wir noch in diesem Jahr organisieren wollen.

In diesem Sinne: Happy Hacking!

Der Beitrag Rückblick auf’s LibreOffice Community-Treffen in Hamburg erschien zuerst auf Florian Effenberger.

by Florian Effenberger at May 28, 2018 02:09 PM

May 25, 2018

Mike Kaganski

Auto-hiding empty mail merge fields

Managing empty fields: the status quo

When doing mail merge, it’s often (even usually) desirable that if a database field is empty for a recipient, then the corresponding line be hidden in the generated document. LibreOffice has always allowed doing this using special Hidden paragraph fields – which is very flexible, though not too user-friendly, because of its complexity in creation and support. E.g., one needs to remember to move the field along with the database field when one edits the document; or change the field’s conditions when renaming database fields or combining fields in a single paragraph.

There are situations when using Hidden paragraph fields is even impossible. Since the condition in the said field depends on a registered database name, it cannot be used when there’s no registered database (which happens when one wants to connect to data sources dynamically, when one is actually performing the merge).

Meet the convenience

Today we have released the new Collabora Office 5.3-49, which includes the improvement that we at Collabora Productivity have implemented: now database fields also hide paragraphs themselves when the field value is empty: now there’s no need to use separate fields for that. This allows for easier creation and management of the auto-hiding empty database values.


With the change, we are also more interoperable with other office suites that behave that way, including Microsoft Office.

This feature is controlled by a new compatibility option, which is enabled by default in all new documents. If one wants to return to old behaviour, however, one can easily do that using Writer’s compatibility options.


As usual, the improvement is also available in the next major release of LibreOffice, which is to be released in August.

by mikekaganski at May 25, 2018 12:49 PM

Even easier configuration of AD integration for LibreOffice

What we had achieved previously

After we at Collabora Productivity had improved existing LDAP configuration backend to be relatively easily configurable for Windows clients in ActiveDirectory-based domain environment, we started to prepare a further improvement in this area, which purpose was to overcome the problems of LDAP-based backend. The said problems are caused by the fact that LDAP backend needs to have proper credentials for server connection explicitly configured, which leads to requirement to have a dedicated restricted service account which would have a fake password (which would be written in clear text on each configured workstation), and which only purpose is connecting to LDAP server and retrieving user information. The said approach hardly fits into Active Directory’s concept with single sign-on (SSO) in its heart. Of course, the preferable solution would be to have a configuration backend that could get user data from AD using current user’s credentials, without the need to have a service account for that.

Collabora makes the next step

In the past weeks, we have merged a brand new backend plugin (WinUserInfoBe), which uses the improvements in core made when working on LDAP backend, and which implements the said concept. It is, naturally, even easier to configure than LDAP backend (the only thing required is to set a user data field to be taken using the said plugin); neither server connection configuration, nor further LO data field to LDAP object property mapping is needed. And of course, we have made the necessary changes to our ADMX template to make this configurable using convenient GPO editor interface.

Upgrade and benefit

This change is immediately available in the released Collabora Office 5.3-49 for our customers – why not upgrade now and have a play? – and it will also be in the next major release of LibreOffice 6.1 due to be released in August 2018.

by mikekaganski at May 25, 2018 07:38 AM

Ekansh Jha

Google Summer of Code’18: Project Description

Project Motivation

SmartArt is a nice feature that allows users to quickly add charts/diagrams to presentations. LibreOffice has a partial implementation as an experimental feature, I plan to add some of the features in SmartArt by the end of GSoC period and keep fixing bugs reported during the GSoC period.

At the moment, we are able to import SmartArt as a stream of shapes that is available in the pptx presentations generated by Microsoft Office 2010 and later, but not compatible with Microsoft Office 2007.

● The rendering of such shapes is not correct

● We are unable to edit the imported SmartArt.

Below is the example of the smartart which is not rendered correctly in Libreoffice:

SmartArt in Microsoft Office 2007
SmartArt in Libreoffice

Brief Description

As a result of last year GSoC, there are few implementations of SmartArts which contain smartarts like composite, cycle and line etc. This year task will be to extend the list. The main implementation of the smartart resides in, ​ oox/source/diagramml/diagram/*​ .

➔ Improving the rendering of the shapes
There are many smartarts which are made in Microsoft office are not rendered correctly in LibreOffice and that’s where the problem arises.

Unit Testing Details

This task will focus on testing and implementing the correct rendering of the shapes of smart arts which can be achieved by : The deliverables for the task is to generate test documents in MSO, each document for one diagram type, and create unit tests that assert that each document lays out the same in LibreOffice as it does in Microsoft Office.

Basic Implementing of Unit test

The file that will be created in Microsoft Office will be Copied in
s​d/qa/unit/data/pptx/* . This will be followed by creating a unit test for that smartart shape in sd/qa/unit/import-tests-smartart.cxx​ .

Prototype of writing Unit test

If I complete correct rendering of enough SmartArts, I’ll be adding more exciting features in the SmartArt import.

Apart from fixing some smartarts, I’ll be fixing some errors which are reported during the GSoC period.

Looking forward to a great Summer:)

by Ekansh Jha at May 25, 2018 05:57 AM

May 24, 2018

Saurav Chirania

GSoC 18 work report - 23rd May

The coding period of GSoC started 10 days ago. I'm working with LibreOffice's UI logger. The aim of first two weeks is to support logging for UNO commands, dialogs, radiobuttons, checkboxes, and buttons.
To get a summary of what has been done so far, let's perform a couple of steps and look at the generated log file.

1) Click on "Writer Document" button
2) Go to Format -> Character to open the Character Properties Dialog.
3) Check the radiobutton 90 degrees and check the checkbox "Fit to line".
4) Click ok
5) Type "hi" in the main wrier_edit window


The generated log file contains the following -
  1. ButtonUIObject Action:CLICK Id:writer_all Parent:
  2. CommandSent
  3. ModalDialogExecuted Id:CharacterPropertiesDialog
  4. RadioButtonUIObject Action:CLICK Id:90deg Parent:CharacterPropertiesDialog
  5. Action on element: 90deg with action : CLICK
  6. CheckBoxUIObject Action:CLICK Id:fittoline Parent:CharacterPropertiesDialog
  7. Action on element: fittoline with action : CLICK
  8. ButtonUIObject Action:CLICK Id:ok Parent:CharacterPropertiesDialog
  9. DialogClosed
  10. SwEditWinUIObject Action:TYPE Id:writer_edit Parent:UNKNOWN {"TEXT": "h"}
  11. SwEditWinUIObject Action:TYPE Id:writer_edit Parent:UNKNOWN {"TEXT": "i"}

As evident, the log file logs about-
1) Opening and closing of dialogs
2) UNO commands
3) Radiobuttion, checkbox and button click
4) Keys pressed

I'm stuck with printing the top parent of a generic UI element (so that the Parent:UNKOWN in the log file in lines 10 and 11 start giving some useful information)

The code of my work can be found here:

Suggestions for what I have done so far, or what I should be working on next are welcome!

by Saurav ( at May 24, 2018 05:28 AM

May 22, 2018

Andreas Kainz

Breeze icon theme

The breeze icon theme was my first task for LibreOffice back in 2014. 4 Months later I proudly present the new LO Breeze icon set with more than 2.500 icons for LibreOffice.


Breeze get the default icon theme for the KDE desktop with LibreOffice 5.0. Ubuntu switch to breeze cause they stop the development of there own icon theme and prefer breeze. As LibreOffice Online was announced 2016 they ship breeze cause it was the only icon theme with full svg support. And Breeze was also the default on OSX cause sifr lack of icons.

With breeze big success story started. If you’d like to be part of the story become a Patreondownloads_wordmark_white_on_coral2x.jpg

You can read the full story on the following blog posts:

by kdeonlinux at May 22, 2018 10:22 PM