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.

11 August, 2020

  • Mail chew, misc. bug fixing.
  • Interested to see the lay-offs at Mozilla; and some intriging quotes from Mitchell:
    "Recognizing that the old model where everything was free has consequences, means we must explore a range of different business opportunities and alternate value exchanges,"

    The moral for FLOSS projects that care is really clear: get a grip on economics, before economics gets a grip on you. Spend some time listening to people who have to sell something to fund the fun.


This week, I was mainly working on cleaning up and migrating the patches from my experimental branch to LO master.

merged patches were:

there was also two minor patches that were merged [1] [2]

patches that are still in review are:

Here’s the file for last weeks demo but updated for this week (Simulated/Simulation was renamed to Physics across the whole implementation last week so it needed an update):

Here’s how the animation effect is expressed in the content.xml of the demo file:

<!-- excerpt from customshapesfalling.odp:content.xml -->
<anim:par smil:begin="0s" smil:fill="hold" presentation:node-type="on-click" presentation:preset-class="emphasis" presentation:preset-id="libo-physics-basic">
		  <loext:animatePhysics smil:dur="4s" smil:fill="hold" smil:targetElement="id1"/>

If you’d like to play around with animation effects and create new ones that combine physics based and existing ones. First you should pull the current implementation from my experimental branch. After that, you should create a dummy animation containing odp file and manually edit it’s content.xml creating an altered animation effect. Finally to see it in action use File -> Reload option.

Here is a file that has two example animations that I’ve created this way which combines physics animations with others:

Below I’ve tried to explain what’s going on in the smil hierarchies of two-example-animations-with-physics.odp:content.xml

<!-- excerpt from two-example-animations-with-physics.odp:content.xml that is padded with comments & prettified -->
	<anim:par presentation:node-type="timing-root">
	  <anim:seq presentation:node-type="main-sequence">
<!-- start of the first animation effect -->
	    <anim:par smil:begin="next">
	      <anim:par smil:begin="0s">
		<anim:par smil:begin="0s" smil:fill="hold" presentation:preset-property="Direction" presentation:node-type="on-click" presentation:preset-class="emphasis" presentation:preset-id="experimental-drop-and-wipe-out" presentation:preset-sub-type="horizontal">
<!-- animatePhysics: is the node for physics based animation effects.
     there's no smil:begin so it'll start with the parent node without a delay -->
		  <loext:animatePhysics smil:dur="4s" smil:fill="hold" smil:targetElement="id1"/>
<!-- blindsWipe that is delayed for 3.5s since smil:begin="3.5s" -->
		  <anim:transitionFilter smil:begin="3.5s" smil:dur="0.5s" smil:targetElement="id1" smil:type="blindsWipe" smil:subtype="horizontal" smil:mode="out"/>
<!-- making the shape disappear proper way at the end -->
		  <anim:set smil:begin="4s" smil:dur="0.001s" smil:fill="hold" smil:targetElement="id1" smil:attributeName="visibility" smil:to="hidden"/>
<!-- start of the second animation effect -->
	    <anim:par smil:begin="next">
	      <anim:par smil:begin="0s">
		<anim:par smil:begin="0s" smil:fill="hold" presentation:preset-property="Direction;Accelerate;Decelerate" presentation:node-type="on-click" presentation:preset-class="entrance" presentation:preset-id="experimental-fly-in-and-drop" presentation:preset-sub-type="from-bottom">
<!-- fly in animation effect -->
		  <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" smil:targetElement="id2" smil:attributeName="visibility" smil:to="visible 


Hello, I want to share with you the progress of this week. Last Week: I implemented an ExtensionManager object to establish connection between Additions and Extensions dialog. With this object, I got all installed extensions and disabled their install buttons on the Additions list. Patch Finally, I fixed the crash. The crash was related to the use of smart pointers. I was storing UI components in a vector. But now, the shared:ptr of components are stored in the vector.

10 August, 2020


The Annual Report of The Document Foundation for the year 2019 is now available in PDF format from TDF Nextcloud in two different versions: low resolution (6.4MB) and high resolution (53.2MB). The annual report is based on the German version presented to the authorities in April.

The 54 page document has been entirely created with free open source software: written contents have obviously been developed with LibreOffice Writer (desktop) and collaboratively modified with LibreOffice Writer (online), charts have been created with LibreOffice Calc and prepared for publishing with LibreOffice Draw, drawings and tables have been developed or modified (from legacy PDF originals) with LibreOffice Draw, images have been prepared for publishing with GIMP, and the layout has been created with Scribus based on the existing templates.

All pictures are licensed under the Creative Commons Attribution-Share Alike 4.0 License, courtesy of TDF Members from Albania, Brasil, Czech Republic, Germany, Italy, Japan, Nepal, Paraguay, Taiwan, Uganda and Turkey. Stock photos are CC0 by Pixabay.

Lothar Becker, Chairman of TDF Board of Directors, has written in the welcome address:

What we have achieved so far goes beyond the most optimistic forecasts of the project’s founders back in 2010. After ten years, the challenge is still to further grow the project by leveraging the contributions of both volunteers and ecosystem members, engage new enthusiastic supporters in both areas, and increase the number of happy users worldwide. Our manifesto, the vision behind all our work, has to evolve in a new era of office productivity, with versions of LibreOffice on the desktop, in the cloud and on mobile devices!

I look forward to another great year for our global community, even with the current challenge of lockdowns in many locations, and the lack of in-person meetings and events because of the pandemic. I’m proud, honored and humbled to be part of this amazing project, and invite you all to keep on contributing to it in one of the many possible ways, and have fun together while achieving our common dream!

  • Mail chew, planning call, ice-creams for over-heated builders. Lengthy partner call late into the evening.
  • Cutting noggins with J. even later into the night - and strengthening the ceiling for the future.


General Activities

  1. LibreOffice 6.4.5 was announced on July, 2
  2. A Bug Hunting Session for LibreOffice 7.0 RC1 took place on July, 6
  3. Olivier Hallot (TDF) added a help page for Calc cell styles
  4. László Németh (NISZ) documented the new “Localized options” of AutoCorrect in help and fixed DOCX import issues concerning paragraph spacing and rotated text in table cell
  5. Octavio Alvarez made Clear Direct Formatting help match reality
  6. Stanislav Horacek, Mihkel Tõnnov, Ilmari Lauhakangas (TDF), Olivier Hallot (TDF) and Johnny_M made many Help improvements and cleanups
  7. Caolán McNamara (Red Hat) fixed a print preview clip region issue and a mismatch of document names with their thumbnails in the Start Center with right-to-left UI. He also continued the crucial user interface backend work and did many cleanups and crash fixes
  8. Eike Rathke (Red Hat) improved the correctness of Calc’s input field number scanner, made it so TIMEVALUE() accepts minutes or seconds > 59 and improved handling of decimal separators
  9. Stephan Bergmann (Red Hat) made many cleanups, C++ conformance fixes and build and test fixes
  10. Luboš Luňák (Collabora) fixed saving big documents with a password and continued with the Skia graphics engine integration
  11. Noel Grandin (Collabora) made many code cleanups and improved the performance of undoing sheet deletion in Calc
  12. Miklos Vajna (Collabora) fixed an issue with DOCX chart labels, semi-transparent text in exported SVGs, made it so only built-in fonts are used for forms in order to export working PDFs, fixed handling soft hyphens in Writer’s find & replace, fixed a DOCX issue with overlapping floating tables anchored inside a table, made it possible to add visible signatures to existing PDF files in Draw
  13. Xisco Faulí (TDF) made nearly 30 additions and fixes to unit tests
  14. Szabolcs Tóth and Regényi Balázs (NISZ) fixed several issues with imported and exported DOCX shape width, height and position
  15. Jan-Marek Glogowski fixed some Qt5 issues and made updates and improvements to the build process and dependencies
  16. Szymon Kłos (Collabora) continued working on the styles preview widget for the Tabbed Notebookbar user interface and made many Notebookbar-related code cleanups
  17. Julien Nabet fixed issues in Swarm Non-Linear Solver, an issue with exported image file extension, made PNG export remember the previously selected transparency option and made some improvements to the auto-redaction feature
  18. Rizal Muttaqin made many improvements in the icon themes
  19. Adolfo Jayme Barrientos improved the layout of the About and Auto-redaction dialogs
  20. Tor Lillqvist (Collabora) worked on the iOS app, did code cleanups and macOS build improvements
  21. Mike Kaganski (Collabora) improved the Windows installation process for locales other than en-US, prevented unwanted view scrolling in Writer after certain operations and did code cleanups and crash fixes
  22. Pierre Marty (Linagora) fixed viewing PDF after export and updating the state of slide master option buttons in Tabbed interface
  23. Dante Doménech added func and oper to Math Elements pane and introduced a symbol for Fourier transform
  24. Jim Raykowski added the much-requested outline folding feature to Writer

09 August, 2020

  • Morning worship with the family; sermon on Genesis 2, and the goodness of marriage. Pizza lunch, watched Unforgettable with J. out for a walk on the near deserted race course in the late afternoon. Groundhog Day with babes in the evening.

08 August, 2020

  • Off to Holkham beach with the family, lovely to spend a day in the sun, with a cool on-shore breeze with the family.

07 August, 2020

  • So hot, I even took my black socks off under duress, and considered wearing shorts.
  • Sync. with Aron & Andras, partner call. Run in the evening with J.

06 August, 2020

  • Intern interview, mail chew, couple of 1:1's, planning.

Hello all,

The last week was the 9th week of coding weeks in GSoC program. I almost finished my final exams period I will start to work again with the regular rate.

 Report in points:
  • Problems in Menu Button objects .
  • Final support demo in Menu Button objects.

1) I asked Markus to help me in the Menu Button objects because I tried to add a demo for the Menu Button. The problem was that the test case stop responding after executing any action from the actions that added to the support.

For example, If I executed this line:
>>self.ui_test.execute_dialog_through_action( xmenugearbtn , "OPENFROMLIST" , mkPropertyValues({"POS": "0" }) )

The test case opens the desired dialog and stops responding until I close it. Markus found out that the problem was that We have a way to handle these cases but the dialog was incorrectly marked as modeless dialog which meant that we have a modeless dialog on top of a modal one. That case is not correctly tracked as it is usually not possible.

He managed to solve this by make the dialog that will apear in top of the main dialog also model dialog by this patch. Not the demo works well and the support merged to the master.


2) Finally the patch is merged here for the support and this patch has a demo for this support. you can use Thisto test any Menu Button like "gear button menu in Tools->Customize". You can test this type of button by excuting this actions:

var_name.executeAction("OPENLIST", mkPropertyValues({}))
var_name.executeAction("CLOSELIST", mkPropertyValues({}))
var_name.executeAction("OPENFROMLIST", mkPropertyValues({"POS": "0" }))

Then you can check on it using this lines:

This video shows you how the Menu Button will preform with you while testing:

Next week Tasks:
  • Start working on the interpreter part of the objects that has new support in phase 1 & 2.
  • Work on another unsupported item.
Thanks for reading. And I am really interested to hear all your feedback and comments.

05 August, 2020

  • Various house viewings, energy certificate assessment. J got a job at the YMCA, nice.

Jim Raykowski, one from LibreOffice developers, realized so much requested feature - Writer Outline folding mode. You should enable Experimental features in Tools ▸ Options ▸ LibreOffice ▸ Advanced dialog to see "Show outline content visibility button" checkbox in Tools ▸ Options ▸ LibreOffice Writer ▸ View dialog.
After checking it you'll can see a button with arrow near any selected heading in your document. Click on it to fold all text from the current heading to next heading. Right click on it to fold all text from current heading to next the same level heading with all its subheadings.
Look at videos created by Jim (I downloaded it from bug report) below for some explanation:

It will be available in next 7.1 release in early February 2021.
Thanks Jim for your great work!


LibreOffice 7.0: the new major release of the best FOSS office suite ever is available on all OSes and platforms, and provides significant new features

Berlin, August 5, 2020 – The LibreOffice Project announces the availability of LibreOffice 7.0, a new major release providing significant new features: support for OpenDocument Format (ODF) 1.3; Skia graphics engine and Vulkan GPU-based acceleration for better performance; and carefully improved compatibility with DOCX, XLSX and PPTX files.

  • Support for ODF 1.3. OpenDocument, LibreOffice’s native open and standardised format for office documents, has recently been updated to version 1.3 as an OASIS Technical Committee Specification. The most important new features are digital signatures for documents and OpenPGP-based encryption of XML documents, with improvements in areas such as change tracking, and additional details in the description of elements in first pages, text, numbers and charts. The development of ODF 1.3 features has been funded by donations to The Document Foundation.
  • Skia graphics engine and Vulkan GPU-based acceleration. The Skia graphics engine has been implemented thanks to sponsorship by AMD, and is now the default on Windows, for faster performance. Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms, and can be used for drawing text, shapes and images. Vulkan is a new-generation graphics and compute API with high-efficiency and cross-platform access to modern GPUs.
  • Better compatibility with DOCX, XLSX and PPTX files. DOCX now saves in native 2013/2016/2019 mode, instead of 2007 compatibility mode, to improve interoperability with multiple versions of MS Office, based on the same Microsoft approach. Export to XLSX files with sheet names longer than 31 characters is now possible, along with exporting checkboxes in XLSX. The “invalid content error” message was resolved when opening exported XLSX files with shapes. Finally, there were improvements to the PPTX import/export filter.
    LibreOffice offers the highest level of compatibility in the office suite arena, starting from native support for the OpenDocument Format (ODF) – with better security and interoperability features over proprietary formats – to almost perfect support for DOCX, XLSX and PPTX files. In addition, LibreOffice includes filters for many legacy document formats, and as such is the best interoperability tool in the market.

Summary of Other New Features [1]


  • New icon theme, the default on macOS: Sukapura
  • New shapes galleries: arrows, diagrams, icons and more…
  • Glow and soft edge effects for objects


  • Navigator is easier to use, with more context menus
  • Semi-transparent text is now supported
  • Bookmarks can now be displayed in-line in text
  • Padded numbering in lists, for consistency
  • Better handling of quotation marks and apostrophes


  • New functions for non-volatile random number generation
  • Keyboard shortcut added for autosum


  • Semi-transparent text is supported here too
  • Subscripts now return to the default of 8%
  • PDFs larger than 500 cm can now be generated

LibreOffice Technology

LibreOffice 7.0’s new features have been developed by a large community of code


Having fun everyone. I wish you are all doing good in this tough time.

It was Adolfo who complaint about Colibre's failure to accomplish WCAG contrast guideline. He said the colors are too faint and everything looks washed out. Furthermore, MS Office 365 has since moved those colors to a brand new monoline style iconography. See this bug report for details

So I took the chance to update this Windows default icon theme. Luckily, the icon theme comes with SVG version, I can easily use bash script to automate a neccessary color conversion, and take the rest manually. In one month, I finally managed to finish this "Neo" Colibre. Hopefully this will benefit the largest LibreOffice user platform (approximately more than ~80%).

Here you can see side by side comparison to see the improvement (click to enlarge then right click > "View Image" for Firefox, right click > "Open image in a new tab" for Chrome for maximum appearance)

Start Center

Standard User Interface







Tabbed User Interface
















3D Settings

By God will, this will be available in 7.0 release. You can try it earlier from my github repo as an extension (make sure your LibO version equal or greater than 6.0):

04 August, 2020

  • Mail, meetings, Estate Agent took over the home for three viewings - worked from a garage opposite; pleasant. Underfloor heating pipework adjusted properly, and screeding poored - a very interesting material, looks very watery but is extremely viscous.
  • Did some debugging & coding at last.

03 August, 2020



  • Added support for -hopefully- all of the shapes in LibreOffice
    • Static body creation now only uses SdrObjects and has a more coherent implementation.
    • Shapes that mix lines and polygons/beziers are also supported.

If you’re interested in what I’m working on you can check out my public wekan board

Please accept YouTube cookies to play this 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.

Different type of shapes falling and colliding with each other.

Last week I’ve started by working on support for Custom Shapes. At first I didn’t how could I get the related geometry information about Custom Shapes. Upon asking on IRC, mst (Michael Stahl) directed me to SdrObject class. Inspecting this class, found out a child of it that handles Custom Shapes called SdrObjCustomShape had a function SdrObjCustomShape::GetLineGeometry was returning exactly what I’ve wanted in the first place a B2DPolyPolygon that represents the shape! So I went ahead and created an implementation that if the shape type is CustomShape, it got corresponding SdrObject using it’s XShape and casted the SdrObject* to an SdrObjCustomShape* and got the B2DPolyPolygon from that. Then it triangulated this polygon using basegfx::triangulator::triangulate, and added resulting collection of triangles to a box2d body.

Later, since achieving such a result using an SdrObject was quite easy and took care of rotations and skews applied to the shape with ease, I wanted to drop my prior implementations for ClosedBezierShape and ClosedPolygonShape and use SdrObject for everything if possible. To make this happen, went back and inspected SdrObject again realizing SdrObjCustomShape::TakeXorPolygon used SdrObjCustomShape::GetLineGeometry. TakeXorPolygon according to it’s documentation was used for dragging objects but suited my case perfectly since it was returning B2DPolyPolygon representation for the corresponding shape. So I proceeded by using that for every type of shape and started to build a generalized implementation that wasn’t specific to shape type.

While doing so I’ve added support for shapes that were open, non-filled polygons or merely edges. Box2D required dynamic shapes to have an actual volume to properly simulate dynamic bodies. So I’ve set an arbitary width value and used it to offset copies of edge start and end points parallel to the edge normal, on opposite directions to each other giving them some volume. Looped through the whole B2DPolyPolygon constructing quadrilaterals that reperesented each edge and added these to box2d body.

Lastly, bezier curves that were triangulated resulted in a big performance hit since some of the custom shapes ended up having ~800 triangles, this amount of precision was mostly useless. To resolve this problem before doing anything with B2DPolyPolygons I’ve subdivided bezier shapes with basegfx::utils::adaptiveSubdivideByAngle giving it a fAngleBound of 20 degrees. Even though this is a pretty

  • Mail chew, planning call; worked back through several days of mail backlog at length.


Hello, I want to share with you the progress of this week. Last Week: Minor bug in search function has been fixed.Patch The program crashes when I click Install Button. I’ve been trying to fix this bug all week. I tried too many things but couldn’t fix it. This Week TODO: Immediately fix the crash problem. Install/remove function

02 August, 2020

  • Relaxed, played Windlands 2 with N. David over in the evening.

01 August, 2020

  • Out for a walk to a local bird sanctuary; packed, and bid a fond farewell to the parents; drove home at length.
  • Examined the building project, caught a couple of sillies.

31 July, 2020

  • H. out to play the organ at the local CofE, saw Brian. Back, board call, lunch, sat in the garden, pizza for dinner.


A few months ago, we announced Open Badges for LibreOffice contributors. These are custom images with embedded metadata, awarded to our most active community members to say thanks for their great work!

The metadata describes the contributor’s work, and the badge can be verified using an external service. Open Badges are used by other free software projects, such as Fedora.

Anyway, today we’re awarding 50 Open Badges to the most active members in our localisation community, based on Weblate activity so far this year. Congratulations to everyone who got a badge – we’ve emailed it to you! Here’s the list of winners:

  • Joan Montané
  • Adam Rak
  • jwtiyar ali nariman
  • Paul Roos
  • Mihkel Tõnnov
  • Modestas Rimkus
  • Adolfo Jayme Barrientos
  • Donald Rogers
  • Valter Mura
  • eglejasu
  • Stanislav Horáček
  • Asier Sarasua Garmendia
  • Kolbjørn Stuestøl
  • Dimitris Spingos
  • Xosé
  • Tolmantas
  • Andika Triwidada
  • Baurzhan Muftakhidinov
  • Mihail Balabanov
  • tmtfx
  • Còdaze Veneto
  • Cheng-Chia Tseng
  • Karl Morten Ramberg
  • Christian Kühl
  • Stuart Swales
  • Ming Hua
  • Tuomas Hietala
  • Bachka
  • Andreas Pettersson
  • Yaron Shahrabani
  • Євген Кондратюк
  • Sérgio Marques
  • Jean-Baptiste Faure
  • Jørgen Madsen
  • Michael Wolf
  • gpopac
  • Miloš Šrámek
  • Milo Ivir
  • Ingmārs Dīriņš
  • Xuacu Saturio
  • Xandru Martino Ruz
  • kees538
  • Rhoslyn Prys
  • Khairul Aizat Kamarudzzaman
  • SteenRønnow
  • Sveinn í Felli
  • Jeanmi2403
  • kompilainenn
  • vpanter

We’ll be issuing more badges in the coming months, so stay tuned to the blog for more…

30 July, 2020

  • Drove to Durham with J. H. and N. to look around and checkout a potential university town: very lovely, but a long way north. E. and M. made face-masks with G'ma.
  • Home early; watched The Sound of Music.

29 July, 2020

  • Lovely to see Mum & Dad after a looong break. Helped N. make an oak pizza-server on the bandsaw, filed it up.
  • Inagural Productivity Partner Council meeting at lunch time, lots of good feedback. Out swimming at Sandras, with the babes; really lovely.
  • Fish & Chips for dinner, up late talking.


Here’s our summary of updates, events and activities in the LibreOffice project in the last four weeks – click the links to learn more…

  • At the start of the month, we announced a Bug Hunting Session for LibreOffice 7.0 RC1. Yes, the next major release is just around the corner! You can still help us to test it before the official announcement, which is due next week…

  • But we’re still maintaining the LibreOffice 6.4 branch, and on July 2, we announced LibreOffice 6.4.5. It includes over 100 bug fixes and improvements to document compatibility and interoperability with software from other vendors.
  • In recent months, TDF and the community have been discussing marketing plans for the next five years. How can we keep the LibreOffice project sustainable in the long term? Volunteers are a huge part of the project and we’re immensely grateful for them, but companies in the ecosystem also write the majority of the source code to implement new features, so it’s important that they prosper too. See the first update and second update.
  • On July 13, we talked to Khairul Aizat Kamarudzzaman about his work in the LibreOffice community, helping with advocacy and marketing. He recently decided to become a Member of The Document Foundation – welcome on board!

  • Speaking of Members, TDF’s Membership Committee has elections coming up. The mission of the Committee is to administer membership applications and renewals following the criteria defined in the Foundation’s Statutes.

  • July 19 marked 20 years of free and open source office suites, as Sun Microsystems announced on July 19 2000 that StarOffice, which it recently acquired, would become free and open source software. This, of course, became OpenOffice, and lives on today in the form of LibreOffice, the most active and developed successor project.

  • With the ongoing coronavirus pandemic, many communities are meeting online, such as the Spanish-speaking LibreOffice community. They had a live broadcast with a series of talks, over six hours, covering translations, migrations and LibreOffice Online.

  • The joint openSUSE + LibreOffice conference will take place in October, and we’ve extended the Call for Papers until August 4. Join us, give a talk about your favourite topic, and let’s share knowledge together!

  • Lastly, we talked to Sandra Louvezo, another new TDF Member, about her experiences in the LibreOffice community in Congo. A big thanks to Sandra, and everyone in our growing LibreOffice communities in Africa, for all their great work.

Keep in touch – follow us on Twitter, Facebook and Mastodon. Like what we do? Support our

28 July, 2020

  • Cleared the decks variously, mail; assembled an S4 for E from a pile of bits with her. J. working all day with Mind supporting people over the phone. Drove north, tea in the car, lovely to be on holiday for once.

Hello all,

The last week was the 8th week of coding weeks in GSoC program. So this report is final report before phase 2 evaluation . I am still in the final exams period but I continued adding support for the non supported items.

 Report in points:
  • Working on the support of Menu Button objects .
  • Fixing Timing issue in test_insert_hyperlink.
  • Phase (1)&(2) Achievements .

1) I continued working on the "gear button menu in Tools->Customize" support. I am facing some problems and I can't solve it after doing a lot of debugging within the last week.

I tried to add a demo like the one here in this patch. The problem is that the test case stops working after executing any action from the actions that added in the support here.

For example, If I executed this line:

>>self.ui_test.execute_dialog_through_action( xmenugearbtn , "OPENFROMLIST" , mkPropertyValues({"POS": "0" }) )

The test case opens the desired dialog and stops responding until I close it manually. I don't know the reasons for this after doing my debugging. This issue appear also on lines like this:
>>  xmenugearbtn.executeAction("OPENLIST" , mkPropertyValues({}) )

I will try to solve this within next week and add the final test case and video show how the support works.


2) Also their was a problem in this patch. The problem was described by this comment : "Could there be a timing issue here? More often than not, this fails on (known slow) lo_ubsan, e.g. " I tried to solve this issue by adding the this line in this patch.


Phase (1)&(2) Achievements :
  • Solving some issues in the logger DSL .
  • Add support for Calc-Zoom .
  • Add support for Calc / Format cell / background color selector .
  • Extend the ability of ComboBoxUIObject to be able to select with text .
  • Add support for Writer-comments .
  • Add support for Dropdown items in grid window .
  • Add support to Calc - comments .
  • Add Support for SvxNumValueSet .
  • Add Support for vertical TabControl Object.
  • Add support for "ToolBox" Objects.
  • Add support for Menu Button objects.
  • extend the ComboBox UIObject.
  • Add test cases for each added support.

Next week Tasks:
  • Finalize the patch and adding new patch with test case of  "gear button menu in Tools->Customize " .
  • Work on another unsupported item.
Thanks for reading. And I am really interested to hear all your feedback and comments.

27 July, 2020


Started adding support for complex shapes, so that they are now simulated by their shape instead of their bounding box.

  • Added support for PolyPolygonShape and ClosedBezierShape so far.

Please accept YouTube cookies to play this 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.

short demonstration video showing complex shapes in action

Up till this point, all shapes in the slideshows were approximated by their bounding box in the simulations.

Since it is not really pleasant to have everything simulated as boxes, last week I’ve started to add support for complex shapes that are represented by their polygon/curve shapes.

I’ve got the geometry information directly from XShapes.
There was a problem since Box2D only accepted convex polygons as shapes. So as a generalized solution I’ve triangulated shapes using basegfx::triangulator::triangulate() and added the resulting vector of triangles to a box2d body using individual fixtures for the triangles.

My main approach for creating complex shapes right now is converting the shape to a B2DPolyPolygon then triangulating it and adding the triangle pieces to a box2d body.
This approach worked OK for PolyPolygonShapes and ClosedBezierShapes. I will start this week by adding support for CustomShapes, hopefully it will be possible to convert them into B2DPolyPolygons and use a similar approach for them too.

Check out the whole implementation on gsoc-box2d-experimental branch

  • Planning call, more mail, projections & admin. C'bra Quarterly Mgmt meeting until late.

Older blog entries ->