LibreOffice Macro Team: progress report

Macros help users to automate common tasks in LibreOffice. In September 2019 we announced a new team in our community to work on macro support. A progress report was published in November 2019, so let’s review everything that happened since then.

If you are interested in contributing to the macro team (development, testing or documentation), we’d love to hear from you – please send an email to ilmari.lauhakangas@libreoffice.org and we’ll get in touch.

Wiki docs

Thanks to Nathan Ullberg, many wiki articles previously only available in French can now be read in English as well. Nathan also updated existing articles and created an article about manipulating LineShape objects in Impress. Detailed lists of his work can be found on his wiki user page.

Alain Romedenne worked alongside Nathan with the macro articles and translations. He added LibreOffice Basic cheatsheets from Jean-François Nifenecker into the wiki and created a new article concerning input/output to screen with Python. Alain also started creating syntax diagrams for LibreOffice Basic.

Code contributions from macro team members

Andreas Heinisch:

Alain Romedenne:

  • Tests for VBA Enum statement, VBA Err object raise method and LibreOffice Basic Property Get/Set

Code contributions from honorary associate members

Mike Kaganski (Collabora):

Samuel Mehrbrodt (CIB):

Jan-Marek Glogowski (CIB):

Caolán McNamara (Red Hat):

Stephan Bergmann (Red Hat):

  • Various internal improvements to stability

Help content

Improved by Alain Romedenne:

Added by Alain Romedenne:

Improved by Mike Kaganski (Collabora):

Improved by Stephan Bergmann (Red Hat):

Thanks to everyone who worked on these tasks! Everyone is welcome to join our community and get involved – just email ilmari.lauhakangas@libreoffice.org and we’ll get back to you.

Announcing Open Badges for LibreOffice contributors!

LibreOffice is made by volunteers and certified developers across the globe, and today we’re announcing a new system to credit their work and show appreciation: Open Badges. So what are they?

In a nutshell, Open Badges are PNG images that are awarded to contributors for reaching a certain threshold – such as a number of commits to the codebase, or answering questions on Ask LibreOffice. But these images are something special: they contain metadata describing the contributor’s work, which can be verified using an external service. Open Badges are used by other free software projects, such as Fedora.

We at The Document Foundation – the non-profit entity behind LibreOffice – will start issuing customised badges to contributors, who can then proudly display them on websites or social media. And because of the embedded metadata, contributors can use the badges as proof of their work. If you’ve been a long-time contributor to LibreOffice and are in the job market, use your badge to highlight your involvement in a large open source project!

Starting off: Ask LibreOffice contributors

The first set of badges go to the nine people on Ask LibreOffice, our community assistance website, who’ve posted over 100 answers. We’ll be in touch personally with the badges! Their usernames:

  • Ratslinger
  • ajlittoz
  • Mike Kaganski
  • Opaque
  • Lupp
  • erAck
  • RGB-es
  • ebot
  • JohnSUN

Stay tuned to this blog for more Open Badges awards!

Second Bug Hunting Session for LibreOffice 6.4 – join in!

LibreOffice 6.4 is being developed by our worldwide community and certified developers, and is due to be released at the end of January 2020 – see the release notes describing the new features here.

In order to find, report and triage bugs, the LibreOffice QA team is organizing the second Bug Hunting Session for LibreOffice 6.4 on Monday December 23, 2019.

Tests will be performed on the first Release Candidate version, which will be available on the pre-releases server the same day of the event. Builds will be available for Linux (DEB and RPM) with GTK3 and KDE5 support, macOS and Windows. (Note that it will replace your current installation.)

Mentors will be available from 07:00 UTC to 19:00 UTC for questions or help in the IRC channel #libreoffice-qa and the Telegram QA Channel. Of course, hunting bugs will be possible also on other days, as the builds of this particular Release Candidate (LibreOffice 6.4.0 RC1) will be available until mid January, 2020, when LibreOffice 6.4 RC2 will be released. Check the Release Plan.

All details regarding the bug hunting session are available on the wiki. We look forward to – and appreciate – your help!

Improvements in LibreOffice’s PowerPoint presentation support

LibreOffice’s native file format is OpenDocument, a fully open and standardised format that’s great for sharing documents and long-term data storage. Of course, LibreOffice does its best to open files made by other office software as well, even if they’re stored in pseudo-“standards” with cryptic and obfuscated contents. Compatibility with PowerPoint PPT(X) presentations is therefore a challenge, but developers are working hard on improvements…

A few months ago, we announced an initiative to improve the support of PPT and PPTX files in LibreOffice. Lots of great work happened since then and the results are collected below!

Everyone is invited to participate in the PowerPoint support initiative, either in development or testing. If you are interested in joining, please send an email to ilmari.lauhakangas@libreoffice.org.

Import/export

Stephan Bergmann (Red Hat):

Speed up loading a PPT file with equation objects


Noel Grandin (Collabora):

Speed up loading a PPT file with equation objects


Miklos Vajna (Collabora):

Add PPTX import/export for semi-transparent shape text

Transparent text before Miklos’s implementation
Transparent text before Miklos’s implementation
Transparent text after Miklos’s implementation
Transparent text after Miklos’s implementation

PPTX import: don’t set shape fill from the style in case the background fill is already set

Shape fill before Miklos’s fix
Shape fill before Miklos’s fix
Shape fill after Miklos’s fix
Shape fill after Miklos’s fix

PPTX import: fixed duplication of math objects

Math objects before Miklos’s fix
Math objects before Miklos’s fix
Math objects after Miklos’s fix
Math objects after Miklos’s fix

Tamás Zolnai (Collabora):

PPTX export: don’t change shape’s background transparency

Background transparency before Tamás’s fix
Background transparency before Tamás’s fix
Background transparency after Tamás’s fix
Background transparency after Tamás’s fix

PPTX export: don’t lose the gradient background fill of a slide

Gradient fill after Tamás’s fix
Gradient fill after Tamás’s fix

Xisco Faulí (TDF):

PPTX import: display shapes with washout mode

Shapes not displayed before Xisco’s fix
Shapes not displayed before Xisco’s fix
Shapes displayed after Xisco’s fix
Shapes displayed after Xisco’s fix

PPTX export: handle image colour/graphics modes correctly

Colour modes handled incorrectly before Xisco’s fix
Colour modes handled incorrectly before Xisco’s fix
Colour modes handled correctly after Xisco’s fix
Colour modes handled correctly after Xisco’s fix

PPTX import: don’t lose text highlighting in table cells

Text highlighting not displayed before Xisco’s fix
Text highlighting not displayed before Xisco’s fix
Text highlighting displayed after Xisco’s fix
Text highlighting displayed after Xisco’s fix

PPTX export: save text highlighting

No highlighting before Xisco’s fix
No highlighting before Xisco’s fix
Highlighting after Xisco’s fix
Highlighting after Xisco’s fix

PPTX import: respect no fill colour for text

Text visible before Xisco’s fix
Text visible before Xisco’s fix
Text invisible after Xisco’s fix
Text invisible after Xisco’s fix

Gülşah Köse (Collabora):

PPTX import: implement z-rotation of 3D text transformation

Text not rotated before Gülşah’s implementation
Text not rotated before Gülşah’s implementation
Text rotated after Gülşah’s implementation
Text rotated after Gülşah’s implementation

PPTX export: preserve textbox rotation attribute

Text goes bonkers before Gülşah’s fix
Text goes bonkers before Gülşah’s fix
Text stays put after Gülşah’s fix
Text stays put after Gülşah’s fix

Tamás Bunth (Collabora):

PPTX import: custom date as custom XTextField

Dates before Tamás’s fix
Dates before Tamás’s fix
Dates after Tamás’s fix
Dates after Tamás’s fix

Mark Hung (PPT/X team):

PPTX import/export: handle complex text properly

PPTX import: reset font settings, if necessary

Text before Mark’s fix
Text before Mark’s fix
Text after Mark’s fix
Text after Mark’s fix

Luke Deller (PPT/X team):

PPTX import: Fix IsTransparent() for unloaded graphics

Blue line not displayed before Luke’s fix
Blue line not displayed before Luke’s fix
Blue line displayed after Luke’s fix
Blue line displayed after Luke’s fix

Housekeeping

Julien Nabet:

Save/restore locking properly in ImplSdPPTImport::Import

sd: prefix members of SdrPowerPointImport

cppcheck: fix 2 funcArgOrderDifferent


Various

Mike Kaganski (Collabora):

PPTX export: disable undo during save

Thanks to everyone for their great work!

LibreOffice Macro Team: progress report

Macros help users to automate common tasks in LibreOffice, and in September, we announced a new team in our community to work on macro support.

So, what has happened in the meantime? This article is a collection of the work done by the LibreOffice Macro Team in the past few months, as well as any other macro-related things in the project. If you are interested in contributing to the macro team (development, testing or documentation), we’d love to hear from you – please send an email to ilmari.lauhakangas@libreoffice.org and we’ll get in touch.

Quality assurance work

Tomoyuki Kubota and Alain Romedenne reorganised the macro meta bug, creating several subcategories for macro issues and feature requests.

Wiki docs

Soon after the announcement of the macro team in early September, we were contacted by Nathan Ullberg, who promptly started contributing to the wiki documentation. Nathan is keeping notes on the progress of his work on his wiki user page. Alain is collaborating with Nathan on the wiki effort, which includes creating new articles with example macros, reviewing old ones and translating them from French to English.

Code contributions from macro team members

Tomoyuki Kubota:

Andreas Heinisch:

Alain Romedenne:

Code contributions from honorary associate members

Mike Kaganski (Collabora):

Stephan Bergmann (Red Hat):

Samuel Mehrbrodt (CIB):

Help content

Improved by Alain Romedenne:

Improved by Olivier Hallot (TDF):

Added by Olivier Hallot (TDF):

Finally, we have to highlight Alain’s presentation from the LibreOffice Conference 2019: Scripting LibreOffice Python macros, aka “Macros Well Kept Secrets”:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Big thanks to everyone for their contributions and special thanks to Alain for coordinating things and being a tireless macro educator! As mentioned, everyone is welcome to join our efforts to improve macro support in LibreOffice – you don’t need to be a developer. Help us with documentation, bug reports and more – and gain valuable experience on the way!