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.


Thursday
30 October, 2025


face

Berlin, 30 October 2025 – The Document Foundation announces the release of LibreOffice 25.2.7, the final maintenance release of the LibreOffice 25.2 family, available for download at www.libreoffice.org/download [1]. Users of LibreOffice 25.2.x should update to LibreOffice 25.8.x, as LibreOffice 25.2.x is approaching the end of its support period.

LibreOffice 25.2.7 is based on the LibreOffice Technology, which enables the development of desktop, mobile and cloud versions – either from TDF or from the ecosystem – that fully supports the two document format standards: the open ODF or Open Document Format (ODT, ODS and ODP), and the closed and proprietary Microsoft OOXML (DOCX, XLSX and PPTX).

Products based on the LibreOffice Technology are available for all major desktop operating systems (Windows, macOS, Linux and ChromeOS), mobile platforms (Android and iOS) and the cloud.

For enterprise-class deployments, TDF recommends a LibreOffice Enterprise optimized version from one of the ecosystem companies, with dedicated value-added features and other benefits such as SLAs and security patch backports for three to five years (www.libreoffice.org/download/libreoffice-in-business/).

English manuals for the LibreOffice 25.2 family are available for download at books.libreoffice.org/en/. End users can get first-level technical support from volunteers on the user mailing lists and the Ask LibreOffice website: ask.libreoffice.org.

Downloading LibreOffice

All available versions of LibreOffice for the desktop can be downloaded from the same website: www.libreoffice.org/download/.

LibreOffice users, free software advocates and community members can support The Document Foundation and the LibreOffice project by making a donation: www.libreoffice.org/donate.

[1] Fixes in RC1: wiki.documentfoundation.org/Releases/25.2.7/RC1. Fixes in RC2: wiki.documentfoundation.org/Releases/25.2.7/RC2.


Wednesday
29 October, 2025


[en] Michael Meeks: 2025-10-29 Wednesday

18:47 UTC

face
  • Call with Dave, catch up with Gerald & Matthias, sync with Thorsten, then Pedro.
  • Published the next strip with one approach for how (not) to get free maintenance:
    The Open Road to Freedom - strip#41 - Free maintenance ?
  • Snatched lunch, call with Quikee - chat with an old friend, sync with Philippe, got to a quick code-fix.

face

A modern C++ wrapper for the Firebird database API.Documentation | Repositoryfb-cpp provides a clean, modern C++ interface to the Firebird database engine. It wraps the Firebird C++ API with RAII principles, smart pointers, and modern C++ features.Features Modern C++: Uses C++20 features for type safety and performanceRAII: Automatic resource management with smart pointersType Safety:


Tuesday
28 October, 2025


[en] Michael Meeks: 2025-10-28 Tuesday

21:00 UTC

face
  • Up early, chat with boiler man - new gas-valve ordered and fetched by J. for fitting this evening - house: cold.
  • Planning call, lunch with M&D bid a fond farewell, and drove home with J.
  • Lovely to see M. and H. and E. - the nest is refilling temporarily it seems.

face

LibreOffice stand at LinuxDays 2025

On October 4 and 5, the LinuxDays 2025 event took place at the Faculty of Information Technology (Czech Technical University). It combined stands for free and open source software projects with workshops and talks, and the LibreOffice community was there, represented by Zdeněk Crhonek, Petr Valach, Stanislav Horáček and Mike Saunders.

At the stand, we had flyers explaining what LibreOffice is and how it can be used in various contexts (homes, businesses etc.) along with stickers, beer/coffee mats, and printed versions of the handbooks, to show how extensive the documentation for LibreOffice really is. We also had a fun quiz for participants to try.

LibreOffice stand at LinuxDays 2025

During the two days, many visitors came to our stand, gave feedback and asked questions. Of course, at an event focused on Linux, most visitors already knew what LibreOffice is (and many used it regularly). But they gave us some useful feedback and asked about new features, including:

  • Where is the online version of LibreOffice?
  • Better clipboard management (normally handled by the operating system)
  • More development of Base (TDF has a new paid developer role for this)
  • Better options for copying and pasting in Calc
  • Real-time collaboration would be good
  • Clearer warnings about formatting problems when opening Microsoft Office documents
  • Simplify the user interface, using OBS as an example
  • Integrate text translator directly into Writer and Calc
  • It would be nice to have an optional automatic cloud saving feature
  • Make the tabbed user interface default
  • Functions in Calc for interpolating and extrapolating values in 2D and 3D tables

Anyone who wants these features or improvements in LibreOffice is welcome to join our project and help to make it happen, or fund a developer. And we plan to be at more events in the coming months – stay tuned to this blog and our Mastodon account for news!

LibreOffice stand at LinuxDays 2025


Monday
27 October, 2025


[en] Michael Meeks: 2025-10-27 Monday

21:00 UTC

face
  • Up early, chased boiler repair-people; J. got stuck into gardening, ordered extra stair hand-rail & fixings, plugged away at mending clippers & tidying the garage for much of the day.
  • Stayed home to meet repair-person while M&D&J headed to see R&A and family in Pickering, great news from them.
  • Annoying mix-up with boiler-person, setup another for tomorrow morning, pork-pie & beans for tea - did a chunk of work, and chatted with Philippe.

face

The Document Foundation's team

Love LibreOffice development? Want to turn your passion into a paid job? We are The Document Foundation (TDF), the non-profit entity behind LibreOffice. We’re passionate about free software, the open source culture and about bringing new companies and people with fresh ideas into our community.

To improve the scripting support of LibreOffice, the office productivity suite for over 200 million users around the globe, we’re searching for a developer (m/f/d) to start work (from home) as soon as possible. This is what you’ll do:

  • Work on the LibreOffice codebase (mostly C++)
  • Focus on scripting and the use of UNO API, including script developer experience with internal and external IDEs
  • Fix bugs, implement new features, and improve the quality of scripting-related code in LibreOffice
  • Document what you do, actively share knowledge in public with volunteers and contributors via blog posts, workshops and conference talks, so other developers and users have an easier time learning about your work

Examples of tasks:

  • Add support for Interactive Python
  • Make macro recording production-ready
  • Reimplement JavaScript support in order to drop Rhino dependency
  • Improve VBA compatibility
  • Improve auto-completion support

What we want from you:

  • Very good C++ development skills
  • Proven experience working with some of the scripting languages supported by LibreOffice
  • Good team-playing skills
  • Speaking and writing English

Previous contributions to FOSS projects (show us your repos!) are a plus. A previously established relationship within the developer community, as well as with other teams such as QA is a plus, but it is not mandatory at the start and can be achieved during the work itself.

As always, TDF will give some preference to individuals who have previously shown a commitment to TDF, including but not limited to members of TDF. Not being a member does not exclude any applicants from consideration.

Join us!

All jobs at The Document Foundation are remote jobs, where you can work from your home office or a co-working space. The work time during the day is flexible, apart from a few fixed meetings. The role is offered as full-time (ideally 40 hours per week). While we prefer full-time for the role, part-time applications, or proposals to grow the hours over time, will be considered. Candidates that are resident in (or willing to relocate to) Germany will be employed directly by TDF. Otherwise, external payroll services will be used if available in the candidate’s country of residence.

Are you interested? Get in touch!

TDF welcomes applications from all suitably qualified persons regardless of their race, sex, gender, disability, religion/belief, sexual orientation or age. Don’t be afraid to be different, and stay true to yourself. We like you that way! 😊

We’re looking forward to receiving your application, including information about you (your resume), when you are available for the job, and of course your financial expectations. We expect you to provide details about your C++ experience. Pointing to public repositories with your code is very helpful. Please send us an e-mail to developers


face

Libreitalia Conference 2025 was organized by Marco Marega – a LibreItalia and TDF Member – in Gradisca d’Isonzo, near the border with Slovenia, in Gorizia’s province. Gradisca is a very nice fortified city surrounded be beautiful parks. The conference venue was the historical Monte di Pietà palace, that the municipality administration kindly allowed to use.

Gorizia, the administrative center, is a city divided in two parts, half in Italy (Gorizia itself), and half in Slovenia (Nova Gorica). Together, they are the 2025 European’s Capital of Culture.

The conference was very interesting, with members coming from many different cities. Furio Honsell – a councilman of Friuli Venezia Giulia region and also a former mayor of the city of Udine and rector of Udine University – was the special guest, introducing his regional law proposal to promote free software adoption in local administrations.

Italo Vignoli had two talks, one about the end of Windows 10 support and the other about the 20th anniversary of the ODF format. Marco Gaiarin had a brief talk about good practices for free software adoption. Giulia Bimbi spoke about Italian laws regulating free software adoption in public administrations.

Blerta Mecani and Moreno Cervesato of PNLUG, Pordenone Linux Users’ group, talked about their activities, with a special focus on their project leveraging Italian rules which permit to legally recover used PCs, install Linux on them and then donate them to schools.

Sonia Zorba and Andrej Sossi presented Trieste Linux Users group activities, and their game to learn command line.

Marco Marega opened the day introducing free software and LibreOffice to newbies.
In the afternoon, he explained – together with Gabriele Ponzo – how to contribute to the LibreOffice project, focusing on the tools used to localize the software’s UI and the documentation.

Marco did a very good job in organizing the event, and was very happy to see many community members meeting in his hometown. The conference was a great occasion to strengthen our community.

On November 22/23, some of the conference attendees will meet again in Pordenone, another administrative center of Friuli Venezia Giulia, at the Linux Arena within the Radioamatore2 fair.


Sunday
26 October, 2025


[en] Michael Meeks: 2025-10-26 Sunday

21:00 UTC

face
  • Coldish, out to Jennyfields Church in Harrogate - good service, nice to catch up with Tony afterwards.
  • Back for a fine lunch; poked at the boiler diagnostic codes a bit with Dad - no gas smell while (not) lighting at the outlet - hmm.
  • Out for a walk with J. in the afternoon - enjoyed the leaves falling to meet their reflection in the river at the bottom of the steep sideded valley - beautiful.

Saturday
25 October, 2025


[en] Michael Meeks: 2025-10-25 Saturday

21:00 UTC

face
  • Up earlyish, caught up with M&D, out for a walk down to the Watermill cafe for a spot of lunch with them.
  • Home - poked at the central heating; pressure limiter venting water; pressure crashing and boiler not starting. Spent some time reading the manual, finding the expansion tank (hidden behind the boiler), draining it & pumping it up. Spent more time debugging lack of gas to the burners; no heating.
  • Dinner together, watched Tea with Mussolini together.

Friday
24 October, 2025


[en] Michael Meeks: 2025-10-24 Friday

21:00 UTC

face
  • Up lateish, a brief holiday - hang washing out with J, out into Bury St Edmonds for an art display in the cathedral - somewhat surprised to see a bar & beer taps at the back too.
  • On to the pound-shop, and Primani (Primark), tasty lunch together, drove home, more washing. Drained E-mail queue, sorted out bank login bits.
  • J. drove us to Knaresborough while I anti-socially worked in the car; got various bits done.

face

por Italo Vignoli

Las personas sin discapacidades no tienen ningún problema para ver documentos en la pantalla de una computadora, pero hay personas con discapacidad visual o ciegas que utilizan lectores de pantalla y navegación por teclado. Los archivos ODF …


face

People without disabilities have no problem viewing documents on a computer screen, but there are people with visual impairments or who are blind who use screen readers and keyboard navigation. ODF files have everything they need to be accessible to these people too, and this is a short guide to creating documents that they can use without any problems.

In the context of digital document management, accessible means that a document can be consulted without any constraints related to the ability to see or move one’s hands with dexterity. This means that people can quickly find what they are looking for (headings, lists, indexes), understand the meaning of graphs and images thanks to descriptions, tables are simple and clear, and they can read the text because the contrast is good and the links make sense even out of context.

To achieve this result, which does not discriminate against people based on their physical characteristics, it is necessary to follow a few simple rules when creating a document. Obviously, we are talking about LibreOffice, although the rules also apply to other office suites (although in this case the document format will be proprietary and not standard).

1. Use styles for headings (not just bold text)

  • Screen readers use headings to move around the page.
  • To do this, select the heading and choose Heading 1 from the styles drop-down menu, Heading 2 for sections, and Heading 3 for subsections.
  • Avoid skipping numbers, but always follow the order 1, 2, 3.

2. Create lists using the appropriate buttons

  • This way, screen readers count the items correctly.
  • To do this, highlight the items and click on the Bulleted List or Numbered List button. Avoid typing dots or numbers manually.

3. Add alternative text to every image, graph or icon

  • This way, people who cannot see the image will still receive the message.
  • To do this, right-click on the image, select Properties, select Options, and fill in the Alternative (text only) field.
  • For example: in the case of an image, ‘team photo: from left to right, Mr. X, Mr. Y, and Mr. Z’; in the case of a graph, ‘sales increased every month, and the fourth quarter was the highest with £X million’.

4. Create simple tables

  • Complex tables are difficult for screen readers to read.
  • To do this, use the first row for headers (for example: Name and Date), and avoid merging or splitting cells.
  • Avoid using tables solely to order elements within the page.

5. Create self-explanatory links

  • A link such as “click here” tells a screen reader nothing.
  • To do this, write the action related to the link as if it were the link itself.
  • For example: “Download the budget report (in ODF format)”.

6. Set the language

  • This allows screen readers to pronounce words correctly.
  • To do this for the entire document, select the language in the status bar at the bottom of the screen.
  • To do this for a portion of the document, highlight the text and select the

Thursday
23 October, 2025


[en] Michael Meeks: 2025-10-23 Thursday

21:00 UTC

face
  • Mail chew, tech planning call, spot of lunch, catch up with Laser, Lily, mail & admin. Positive partner sales call.
  • Home group in the evening, dropped John home.

face

Gustavo Pacheco send us this report on the activities of the sixth edition of the Latin American LibreOffice Congress, held in Habana, Cuba, from October 6 to 9, 2025:


Official photo Cibersociedad 2025 + Latin American LibreOffice Congress

With a completely different organizational model than in previous years, our conference was held as a prominent section within another broader event: the Cibersociedad 2025 congress.

Held every two years by the Union of Computer Scientists of Cuba, Cibersociedad aims to be a space for innovation and proposals for the construction of a more sustainable and equitable digital future.

For the events in 2019 in Asunción, 2022 in Brasília and 2023 in Mexico City, we had the support of universities, and in 2024 in Montevide, support local communities. But 2025 marked a new moment for the Latin American organizing committee. On this occasion, our relationship was established with an organization of professionals, the UIC, which contributed all its knowledge and structure to the planning of a joint event.

The idea arose from the proposal of the president of the UIC in 2023, Ailyn Febles, who, in contact with Gustavo Pacheco, presented the invitation to hold the conference in Cuba, motivated by the legacy left by Carlos Parra (1961-2022), an active member of both the UIC and theTDF.

As in 2023 we already had our congress confirmed for Mexico City, we would talk again during that year to align the possibilities.

In addition to the excellent event in Mexico City, at that time we also had the Montevideo congress. That one was an atypical event, as it was carried out as a contingency to the originally planned place, the state of Rio Grande do Sul, in Brazil, affected by the largest flood of the century in May 2024. The event was only saved from being canceled thanks to the support of the Uruguayan community. Thus, for the first time, the congress was held in a public space outside a university: a challenge also for local volunteers.

We did not reach the expected face-to-face audience, but we had a meeting with exceptionally high-quality participations. With the participation of Gastón Hannay in the graphic design activities, we achieved the objective of the congress to always bring, as a minimum, a new permanent volunteer for the project, in addition to interesting results from the participation among the members, such as the development of new formulas for Calc, by Xisco Fauli, based on the presentation of the practical experience of Ismael Fanlo with spreadsheet users.

With the results of 2024, we began planning for 2025 based on the premise of taking advantage of our participation in the event to visit universities, public institutions, third sector entities, local communities, etc., in their own organizational spaces. This idea was very well received by the then new president of the UIC, Omar Correa.

The initiative would also fit the way the event would be carried out. By incorporating our event into a larger one, we obtained the benefit


Wednesday
22 October, 2025


[en] Michael Meeks: 2025-10-22 Wednesday

21:00 UTC

face
  • Slept badly, up early, mail chew, sync with Dave. Plugged away at 2026 projections with Julie & Tracie.
  • Published the next TORF strip highlighting why what everyone really wants is a support and maintenance subscription:
    The Open Road to Freedom - strip#40 - A Support and Maintenance Product
  • Snatched lunch, engaging CP all-hands meeting, all afternoon & evening Collabora quarterly mgmt meeting.

face

In LibreOffice C++ code, there are many cases where developers have string literals that should be used in the code. If these are messages in the graphical user interface (GUI), they should be added to the translatable messages. But, there are many cases where the string literals has nothing to do with other languages, and they should be used as they are. In this case, enumarrays are helpful. Although they are not limited to string literals, and can be used for any data.

Using Symbolic Links

In old C code, using #define was the preferred way one could give a name to a string literal or other kinds of data. For example, consider this code:

const char[] FRAME_PROPNAME_ASCII_DISPATCHRECORDERSUPPLIER = "DispatchRecorderSupplier";
const char[] FRAME_PROPNAME_ASCII_ISHIDDEN = "IsHidden";
inline constexpr OUString FRAME_PROPNAME_ASCII_LAYOUTMANAGER = "LayoutManager";
const char[] FRAME_PROPNAME_ASCII_TITLE = "Title"_ustr;
const char[] FRAME_PROPNAME_ASCII_INDICATORINTERCEPTION = "IndicatorInterception";
const char[] FRAME_PROPNAME_ASCII_URL = "URL";

And also, the relevant states:

#define FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER 0
#define FRAME_PROPHANDLE_ISHIDDEN 1
#define FRAME_PROPHANDLE_LAYOUTMANAGER 2
#define FRAME_PROPHANDLE_TITLE 3
#define FRAME_PROPHANDLE_INDICATORINTERCEPTION 4
#define FRAME_PROPHANDLE_URL 5

Although this C code still works in C++, it is not the desired approach in modern C++.

Using enumarray

In modern C++ code, you can use enumarry, which is defined in o3tl in LibreOffice. The above code becomes:

enum class FramePropNameASCII
{
    DispatcherRecorderSupplier,
    IsHidden,
    LayoutManager,
    Title,
    IndicatorInterception,
    URL,
    LAST=URL
};

And also, the string literal definitions:

constexpr o3tl::enumarray<FramePropNameASCII, OUString> FramePropName = {
    u"DispatchRecorderSupplier"_ustr,
    u"IsHidden"_ustr,
    u"LayoutManager"_ustr,
    u"Title"_ustr,
    u"IndicatorInterception"_ustr,
    u"URL"_ustr
};

The names are much more readable, as they do not have to be ALL_CAPPS, as per convention for symbolic constants in C. Their usage is also quite easy. For example, one can use [] to access the relevant string literal:

- xPropSet->getPropertyValue( FRAME_PROPNAME_ASCII_LAYOUTMANAGER ) >>= xLayoutManager;
+ xPropSet->getPropertyValue( FramePropName[FramePropNameASCII::LayoutManager] ) >>= xLayoutManager;

Final Notes

In LibreOffice, enumarrays are not limited to string literals, and they can be used with other data. This task is filed as tdf#169155, and if you like, you may try finding some instances in the code and modernize it using enumarrays.


face

Google Summer of Code logo

This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC), a global program focused on bringing more developers into free and open source software development. Seven projects were finished successfully. Contributors and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 26.2 in early February 2026!

You can experiment with the new features by using daily builds and report any problems in our bug tracker.


Import Markdown files into LibreOffice Writer by Ujjawal Kumar Chouhan

Mentors: Thorsten Behrens (Collabora), Ilmari Lauhakangas (TDF)

Requests to add support for the simple text formatting language known as Markdown to LibreOffice have been more and more frequent. These days Markdown is often encountered in forum posts, chat messages and readme files. In fact, the content of the website of The Document Foundation is written in Markdown.

Thanks to this project, LibreOffice now supports importing Markdown files and pasting Markdown content into Writer as well as pasting Markdown tables into Calc. The supported dialect is CommonMark with GitHub-style table syntax and the library used is MD4C.

Additionally, Collabora developers added support for exporting to Markdown from Writer.

Learn more about Markdown import in the final report.


New Dialog To Edit Table Styles by Karthik Godha

Mentors: Heiko Tietze (TDF), Rafael Lima

LibreOffice does not yet support proper styles for tables, but has a system for applying direct formatting to them. Before Karthik’s work, it was only possible to add new formatting templates, while now existing ones can be edited as well. At the time of writing this, the feature has not yet been merged into the code base, but hopefully it will appear in the next weeks.

Learn more about the table styles project in the final report.


Python code auto-completion by Manish Bera

Mentors: Xisco Faulí, Hossein Nourikhah (TDF)

Power users are sure to love the improvements brought to Python support by this project. Now Python IDEs are able to provide auto-completion for LibreOffice UNO API methods and properties, flag type errors and display information about parameters and types.

Learn more about the Python auto-completion project in the final report.


BASIC IDE code auto-completion by Devansh Varshney

Mentors: Jonathan Clark, Hossein Nourikhah (TDF), Rafael Lima

BASIC macro developers are not forgotten: this project implemented an object browser, allowing the macro author to see all the available and used methods and properties, including the whole UNO API. A helpful view for details is shown, reducing the need to dig through the API documentation. After this foundational achievement, the next goal is to add context-aware auto-completion to the BASIC IDE editor.

Learn more about the BASIC auto-completion project in the final report.


Rust UNO Language Binding by Mohamed Ali Mohamed

Mentor: Stephan Bergmann (Collabora)

Rust is a popular type safe programming language, which can now be used to write LibreOffice extensions or do any kind of scripting and processing via the UNO API.

Learn more about the Rust


Tuesday
21 October, 2025


[en] Michael Meeks: 2025-10-21 Tuesday

21:00 UTC

face
  • Mail chew, planning call, monthly mgmt call, sync with Andras, nursed a feverish E. Partner call.

face

General Activities

  1. LibreOffice 25.2.6 was announced on September 8
  2. Olivier Hallot (TDF) improved the help for Select Function in Calc’s formula bar, expanded help for the selection of chart data sources, added AutoFilter and Pivot Table/Chart to the help page on sheet protection, added information about summary above/below to the help of Calc’s SUBTOTAL() function, documented sensitivity in the help page for Solver and added the description meta element to the Help page templates
  3. Gábor Kelemen (Collabora) improved the script for finding unneeded includes in the code and did many code cleanups
  4. Tomaž Vajngerl (Collabora) implemented a sheet view functionality in Calc allowing to manipulate AutoFilters in one view without affecting other views
  5. Pranam Lashkari, Maya Stephens, Gökay Şatır, Rashesh Padia and Mohit Marathe (Collabora) worked on LOKit used by Collabora Online. Maya also fixed an issue with Ctrl+clicking hyperlinked objects
  6. Miklós Vajna (Collabora) expanded Writer Markdown export support, worked on change tracking of formatting, continued improving the handling of tracked changes that depend on each other and fixed bullet list style going missing with PPTX export
  7. Xisco Faulí (TDF) implemented right-to-left text direction and bidirectional text support in SVG import, added venv to the internal Python, fixed crashes, added several new automated tests, upgraded many dependencies and did many code cleanups and optimisations
  8. Michael Stahl (Collabora) improved the DOCX compatibility of floating tables, helped Miklós with interdependent change tracking in Writer and fixed an issue with document compression
  9. Mike Kaganski (Collabora) fixed Help for BASIC’s Str function, adapted Writer’s change tracking to DOCX’s inability to track the deletion of comments, made date handling code more robust, improved the Visual Studio IDE integration, made the handling of double variables in BASIC more robust, replaced dtoa library with fast_float for faster string-to-float parsing and fixed an RTF import issue with some paragraphs appearing outside of their frames. He also did many code cleanups and optimisations
  10. Caolán McNamara (Collabora) fixed many issues found by static analysers and did code cleanups and optimisations
  11. Stephan Bergmann (Collabora) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  12. Noel Grandin (Collabora) fixed an (unreleased) issue with image fills disappearing at lower zoom levels, improved the performance of spreadsheets with thousands of shapes, improved the performance of 3D charts, fixed a performance issue with importing SVGs with small scaling, improved the performance of Calc’s Remove Duplicates, implemented Skia native rendering of bitmap tiling to improve the performance of filled polygons and fixed an issue with Insert Special Character dialog not being available with mergedlibs builds (Windows releases). He also did many code cleanups and optimisations, especially in the area of transparency handling
  13. Justin Luth (Collabora) fixed an issue with the alignment setting in Page Number Wizard, fixed localised accelerator shortcut conflicts, fixed many issues with page styles, page breaks and spell checking, improved the Bullets and Numbering dialog by showing the currently

Monday
20 October, 2025


[en] Michael Meeks: 2025-10-20 Monday

21:00 UTC

face
  • Up early; sync with Miklos, Thorsten, marketing, Naomi, Pedro & Eloy. TDF board meeting.

face

por Gustavo Pacheco

Un informe sobre las actividades de la sexta edición del Congreso Latinoamericano de LibreOffice [1], celebrado en La Habana, Cuba, del 6 al 9 de octubre de 2025.

Con un modelo de organización completamente diferente al de …


Sunday
19 October, 2025


[en] Michael Meeks: 2025-10-19 Sunday

21:00 UTC

face
  • Up lateish, out to All Saints - ising; Tash talked about YFC's work. Back, quick lunch with E - and drove to B&A's to collect her.
  • Sermon in the car on the way home with J. by Rico Tice. Rested.

Saturday
18 October, 2025


[en] Michael Meeks: 2025-10-18 Saturday

21:00 UTC

face
  • Up earlyish, off with H. and J. to see B&A, arrived, fish & chip lunch helped tidy the house & get B. comfortable.
  • Visited B. in Ipswich with H, left J. and drove home.

Friday
17 October, 2025


[en] Michael Meeks: 2025-10-17 Friday

21:00 UTC

face
  • Plugged through mail & tickets. Call with Dave. Sync with Laser, chat with a partner.
  • Published the next strip exploring the somewhat perverse way that those who do the most work are often blamed for not having doing more:
    The Open Road to Freedom - strip#39 - The Blame Game
  • Poked at some document l10n code amid the admin.

Thursday
16 October, 2025


[en] Michael Meeks: 2025-10-16 Thursday

21:00 UTC

face
  • Up early, more Marketing & Sales updates lunch; tour from Doug of the Lava-Lab - driving all sorts of KernelCI and other testing goodness.
  • Bid 'bye to Eloy, wrapped up, fixed Alina's bluetooth setup, dropped her into Cambridge & home.
  • Out for new antibiotics - started on the mail and admin backlog, made some progress.

face

Since C++11 when enum class (also named scoped enum) is introduced, it is preferred to plain enum which is inherited from C programming languages. The task here is to convert the old enum instances to enum class.

Rationale

enum class has many benefits when compared to plain enum, as it provides better type safety among other things. Implicit conversion to integers, lack of ability to define the underlying data type and compatibility issues were some of the problems with plain enum that enum class solved in C++11. Although since then enum has improved and one can specify underlying type in the scoped enumerations.

Plain enums pollute namespace, and you have to pick names that are too long, and have to carry the context inside their names. For example: INETMSG_RFC822_BEGIN inside enum _ImplINetRFC822MessageHeaderState. With an enum class, it is simply written as HeaderState::BEGIN. When placed inside a file/class/namespace that makes it relevant, it is much easier to use: it is more readable, and causes no issues for other identifiers with possible similar names.,

See this change:

You can read more about that in:

Finding Instances

You may find some of the instances with:

$ git grep -w enum *.cxx *.hxx|grep -v "enum class"

When you count it with wc -l, it shows something more than 2k instances.

Examples Commits

You can see some of the previous conversions here, which is around 1k changes:

$ git log --oneline -i -E --grep="convert enum|scoped enum"

This is a good, but lengthy example of such a conversion:

Implementation

First of all, please choose good names for the new enum class and values. For example, you may convert APPLICATION_WINDOW_TITLE into Application::WindowTitle. Therefore, do not use the old names as they were.

Converting enum to enum class is not always straightforward. You should try to understand the code using the enum, and then try to replace it with enum class. You may need to add extra state/values for situations where 0 or -1 or some default value was used. There are cases where a numerical value is used for different conflicting purposes, and then you have to do some sort of conflict resolution to separate those cases.

You may end up modifying more and more files, and a few static_casts where they are absolutely necessary because you are interpreting some integer value read from input. These are the places where you should check the values yourself in the code. You have to make sure that the numerical value is appropriate before casting it to the enum class.

If you want to do bitwise operations, you should use o3tl::typed_flags, for example:

enum class FileViewFlags
{
    None = 0x00,
    MultiSelection = 0x02,
    ShowType = 0x04,
    ShowNone = 0x20,
};

template<> struct o3tl::typed_flags : o3tl::is_typed_flags<FileViewFlags, 0x26> {}

Then, you may use it like this:

    if (nFlags & FileViewFlags::MULTISELECTION)
        mxTreeView->set_selection_mode(SelectionMode::Multiple 

face

Look! Our Nepalese community is preparing a very cool LibreOffice event for early December. More details to come – stay tuned to this blog 😉

Picture of community members at LibreOffice event in Nepal, and the sentence: Dots that are connecting free communities


Wednesday
15 October, 2025


[en] Michael Meeks: 2025-10-15 Wednesday

21:00 UTC

face
  • Up early, Marketing & Sales in-person all day; lunch at the cafeteria, out for dinner & darts together in the evening.

face

Por Italo Vignoli

Hoy, Microsoft pone fin al soporte oficial para Windows 10. Esto deja a los usuarios que desean seguir utilizando el sistema operativo con pocas alternativas, especialmente si tienen una computadora antigua que no es compatible con los …

Older blog entries ->