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.


Monday
03 March, 2025


face

By Ndidi Folasade Ogboi

For the past two months, I’ve been working on adding more templates to LibreOffice Writer as part of my Outreachy project. My goal has been to create functional templates that users need the most.

I created these templates based on what you told us in our survey and your response was incredible!…


face

LibreOffice Conference 2024 logo

The LibreOffice Conference 2024, held in Luxembourg, welcomed also many speakers that are involved in creating, supporting and promoting Free and Open Source Software (FOSS) in several countries.

Extending our annual conference and opening it to intervention from international organisations and institutions was appreciated change, which provided our community with additional insights as well as creating more opportunities for cooperation between the many stakeholders involved with FOSS.

The following videos represent a selection from the several tracks dedicated to topics that are complementary to LibreOffice and the ecosystem of organisations and communities that use it and support it.

Use the icon in the top-right to navigate the playlist – or see the direct links to individual videos underneath.

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.

 

Links to individual videos

  • Open source as tool of trust – Mika Lauhde – Head of Technology, Delegation for CyberSpace, International Committee of Red Cross (ICRC)
  • Open source in EdTech – Thibaud Latour – Managing director at the Luxembourg Media & Digital Design Centre
  • Luxchat4Gov – Patrick Weber – Attaché – Ministry for Digitalisation

Thursday
27 February, 2025


face

Berlín, 27 de febrero de 2025 – LibreOffice 25.2.1, la primera actualización de la nueva suite ofimática LibreOffice 25.2 para Windows (Intel, AMD y ARM), macOS (Apple Silicon e Intel) y Linux está disponible para su descarga desde nuestro sitio


Wednesday
26 February, 2025


face

Dentro de un mes, el 26 de marzo, celebraremos el Día de Libertad Documental 2025. Por primera vez en mucho tiempo, el proyecto LibreOffice desempeñará un papel destacado en la organización del evento.

Durante el día, hablaremos principalmente del Formato …


face

Firebird Project is happy to announce general availability of Firebird 5.0.2 — the latest minor release in the Firebird 5.0 series.This minor release offers bug fixes as well as a few improvements, please refer to the Release Notes for the full list of changes.Binary kits for Windows, Linux, MacOS and Android platforms are immediately available for download.


Monday
17 February, 2025


face

LibreOffice inherits a gigantic code base from its ancestors, StarOffice and OpenOffice. Here I discuss some notes for the newcomers on how to better understand the existing LibreOffice code, and improve the patches.

Studying the Existing Code

As said, LibreOffice is a huge code base, containing ~10 million lines of mostly C++ code. There are different assumptions, conventions and coding styles across ~200 modules that LibreOffice has.

Therefore, it is important to first, study the existing code, through reading and debugging LibreOffice source code, to understand the things that it does, and the way you can implement your ideas, including bug fixes and adding new features.

And although implementing some ideas seem to be straightforward at first sight, it is meaningful to study the details.

Quality Assurance Point of View

First of all, you should understand the thing that you want to implement. No matter if it is a bug, a new feature, or just an EasyHack, you should understand what is requested, what works and what does not work. This requires careful reading of the Bugzilla pages.

User Point of View

Then, you should try to run LibreOffice to understand the exact place in the application where you want to change. LibreOffice user interface has thousands of dialog boxes, so you need to make sure that you understand the thing that you want to do.

Developer Point of View

And at last, you get into implementing something in the code. Here are some questions that you can ask yourself about the details, when reading the existing code:

  • Why this statement is here, in the first place? (detail-oriented view)
    • You can use git blame to see the last author of a specific line
    • You can use git log to study the details by knowing the commit hash
    • What can this part of code actually does?
    • Can I see its effect?
git log

git log

Or, you may be interested in the code behavior in the big picture:

  • What does the code do as a whole? (holistic view)
  • There are many other statements, functions and other constructs in the code. What do they do?
  • What is the overall goal of the code?
  • Can I test that in action?

You can do some small changes, before even getting into implementing your idea:

  • What happens if I remove it? (small changes)
  • Does the removal prevent the code from working?
  • Is it incomplete, or does it actually do something useful, which
  • will be absent if I remove it?

Then, you can work on the actual implementation. Ask yourself:

  • How can I implement the idea in its simplest form? (straightforward change)
  • Does it have side effects?
  • How can I make sure every thing else works as before?
  • How can I write a test for it?

After understanding some of the basic details about the way things work, you may go into improving your implementation.

  • How can I make it better? (sophisticated change)
  • Can I make the code more robust where it is brittle?
  • Can I complete the

Tuesday
11 February, 2025


face

General Activities

  1. Olivier Hallot (TDF) added help pages for new Calc functions TOROW(), TOCOL(), WRAPROWS(), WRAPCOLS(), EXPAND(), TAKE() and DROP(), added dark mode support to the help interface, improved help for PDF/UA, did cleanups in the Xapian-based search in online help, added help for tables styles in Writer and improved help related to printing
  2. Dione Maddern added a help page for Cell Appearance Sidebar deck
  3. Stanislav Horáček did some cleanups in help
  4. Gábor Kelemen (allotropia) added a detailed list of allowed PDF password characters into help and improved the developer tools for finding unneeded includes and UI strings that might need to be translatable
  5. Tomaž Vajngerl (Collabora) continued working on PDF 2.0 support and document themes and fixed an Excel compatibility issue with empty values of defined names
  6. Miklós Vajna, Andras Timar, Henry Castro, Gökay Şatır, Attila Szűcs, Szymon Kłos and Pranam Lashkari (Collabora) worked on LOKit used by Collabora Online
  7. Xisco Faulí (TDF) implemented new Calc functions, TOCOL, TOROW, WRAPCOLS, WRAPROWS, TAKE, DROP, EXPAND and CHOOSEROWS, added support for setuptools and pip in Python scripting, upgraded many dependencies, added some unit tests and did many code stability improvements
  8. Michael Stahl (allotropia) continued improving the correctness of HTML import regarding formatting and fixed issues with table splitting in Writer’s layout
  9. Mike Kaganski (Collabora) fixed an issue with opening newly-created database forms, fixed Basic isNumeric() function giving incorrect results, fixed an installation issue affecting Active Directory setups on Windows, fixed issues with allowed characters in file name when exporting as PDF, fixed wrong number of results being reported when going over 1000 while executing Find All in Calc, fixed inability to pass a Date object to an UNO API method, fixed an issue with handling of Variant types in Basic, made handling of conditional formatting with colour conditions more robust when moving columns, made intercepting .uno:Open command work again, fixed a crash related to regular expressions in Basic and made SQL queries handle negative values
  10. Caolán McNamara (Collabora) fixed crashes, fixed many issues found by static analysers and did code cleanups and optimisations
  11. Stephan Bergmann (allotropia) worked on the WASM build. He also adapted the code to compiler changes and did code cleanups
  12. Noel Grandin (Collabora) improved the speed of inserting rotated images to Writer. He also did many code cleanups and optimisations
  13. Justin Luth (Collabora) fixed DOCX import issues with frames before tables getting anchored to a table cell instead of an empty paragraph and missing header properties in page styles
  14. Michael Weghorn (TDF) continued cleaning up and reorganising accessibility-related code, did refactoring in Linux printer code and fixed some crashes. He also worked on using native widgets in Qt UIs
  15. Balázs Varga (allotropia) fixed import of cropped vector graphic objects in PPTX files, improved warnings related to allowed characters in the PDF password input dialog, made it possible to show or hide the text in some password dialogs (more to be included), fixed broken cropped SVG

Thursday
06 February, 2025


face

La nueva versión principal ofrece un gran número de mejoras en la interfaz de usuario y la accesibilidad, además de las habituales funciones de interoperabilidad

Berlín, 6 de febrero de 2025 – LibreOffice 25.2, la nueva versión principal de la …


face


Nova osrednja izdaja ponuja veliko število izboljšav vmesnika in dostopnosti, pa tudi običajnih funkcionalnosti medopravilnosti.

Berlin, 6. februar 2025 – LibreOffice 25.2, nova osrednja izdaja najboljšega odprtokodnega pisarniškega paketa za Windows (Intel, AMD in ARM), macOS (Apple in Intel) in Linux, ki jo podpirajo prostovoljci, je na voljo na naslovu https://sl.libreoffice.org/prenos LibreOffice je najboljši pisarniški paket za tiste uporabnike, ki želijo ohraniti nadzor nad svojimi lastnimi programskimi orodji in dokumenti, da zaščitijo svojo zasebnost in digitalno življenje pred komercialnim vmešavanjem in strategijami povzročanja odvisnosti velikih tehnoloških podjetij.

LibreOffice je edini pisarniški paket, zasnovan na potrebah uporabnika, ne le na pojavni všečnosti. Ponuja številne možnosti vmesnika, ki ustrezajo različnim navadam uporabnikov, od tradicionalnih do sodobnih, in kar najbolje izkorišča zaslone različnih mer, saj optimizira prostor, ki je na voljo na namizju, tako da je čim večje število funkcij le klik ali dva stran. Je tudi edino programje za ustvarjanje dokumentov, ki lahko vsebujejo osebne ali zaupne podatke, a tudi spoštuje zasebnost uporabnikov, s čimer zagotavlja, da se uporabnik lahko odloči, če in s kom je pripravljen deliti vsebino, ki jo je ustvaril, zahvaljujoč standardiziranemu in odprtemu zapisu, ki se ne uporablja kot orodje za povzročanje odvisnosti uporabnikov, ki vsiljuje periodične posodobitve programja. Vse to z naborom funkcionalnosti, primerljivim s tistim vodilnega programja na tržišču in daleč zmogljivejšim od vsega, kar ponujajo preostali tekmeci.

LibreOffice je edinstven zaradi platforme LibreOffice Technology, edine na tržišču, ki omogoča skladen razvoj namiznih, mobilnih in oblačnih različic – tudi tistih, ki jih ponujajo podjetja iz ekosistema – ki lahko izdela identične in povsem združljive dokumente na osnovi dveh obstoječih standardov ISO: odprtem zapisu ODF ali Open Document Format (ODT, ODS in ODP), in lastniški vrsti datotek Microsoft OOXML (DOCX, XLSX in PPTX). Slednje v sebi skrivajo mnogo umetne (in nepotrebne) zavezane kompleksnosti, kar lahko povzroča težave uporabnikom, ki so prepričani, da uporabljajo standardiziran zapis.

Končnim uporabnikom je na voljo tudi tehnična pomoč prve ravni prostovoljcev na uporabniških dopisnih seznamih ter spletišču Ask LibreOffice: https://ask.libreoffice.org

Novosti v LibreOffice 25.2


ZASEBNOST

  • Če je potrjena možnost odstranitve zasebnih podatkov pri shranjevanju, se osebni podatki ne bodo izvozili (imena avtorjev in časovni žigi, trajanje urejanja, ime tiskalnika in njegove nastavitve, predloga dokumenta, avtorji in datumi komentarjev ter sledi sprememb).
OSRČJE / SPLOŠNO
  • LibreOffice 25.2 lahko bere in zapisuje dokumente v zapisu ODF različice 1.4.
  • Mnogo izboljšav medopravilnosti z lastniškimi vrstami dokumentov OOXML.
  • Zdaj lahko samodejno podpisujete dokumente, ko določite privzeto potrdilo.
  • Windows 7 in 8/8.1 sta opuščeni platformi in podpora zanju bo odstranjena z različico 25.8.
  • Razširitve in funkcionalnosti, ki se zanašajo na Python, ne delujejo na sistemih Windows 7.
WRITER
  • Izboljšave upravljanja sprememb dokumentov, še posebej

Monday
03 February, 2025


face

Print editions of several LibreOffice 24.2 user guides were published in 2024. You can buy them from Lulu.com. Free PDFs, as always, are available from the LibreOffice website.

Calc (May 2024)
Impress (July 2024)
Draw (August 2024)
Writer (March 2024)


Thursday
30 January, 2025


face

When you want to interact with users, sometimes simple dialog boxes are sufficient: a simple yes or no, or some info box. But in other cases, you may need more complex message boxes. Here I discuss how to use VCL Weld to create a custom one.

Simple Message Box

You can create a simple message box, using predefined templates like Info box using a code snippet like this:

std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(pParent, VclMessageType::Question, VclButtonsType::YesNo, u"Are you sure?"_ustr));
xInfoBox->run();

And, this is the result, which is very simple, without any title bar:

Yes / No message box

Yes / No message box

There are other predefined types, which can be used in different scenarios:

enum class VclMessageType
{
    Info,
    Warning,
    Question,
    Error,
    Other
};

But, if you want custom message boxes, you should be using weld mechanism, with its CreateBuilder function.

Custom Message Boxes

Below is the code from the source code sfx2/source/doc/QuerySaveDocument.cxx, which is inside sfx2 (framework) module. This dialog box is accessible across different modules, including Writer, Calc and Draw/Impress.

Let’s look into the code:

short ExecuteQuerySaveDocument(weld::Widget* _pParent, std::u16string_view _rTitle)
{
    ...
    std::unique_ptr<weld::Builder> xBuilder(
        Application::CreateBuilder(_pParent, u"sfx/ui/querysavedialog.ui"_ustr));
    std::unique_ptr<weld::MessageDialog> xQBox(
        xBuilder->weld_message_dialog(u"QuerySaveDialog"_ustr));
    xQBox->set_primary_text(xQBox->get_primary_text().replaceFirst("$(DOC)", _rTitle));
    return xQBox->run();
}

The code is using a UI file, named sfx/ui/querysavedialog.ui to create a message dialog, and then change the title of it.

QuerySaveDialog

QuerySaveDialog

If you look into the include file, include/vcl/weld.hxx inside Builder class, you may see functions like weld_… that are suitable to find various different UI elements from the UI, by mentioning the element ID. For example, to find a label with the ID equal to lable_id, you do this:

std::unique_ptr<weld::Label> m_pTextLabel label = m_xBuilder->weld_label(u"label_id"_ustr)

Result

This is the result, when you try to close an unsaved document.

QuerySaveDialog running

QuerySaveDialog running

Alternative Ways

This is not the only way you can create nice dialog boxes using VCL weld mechanism. There are some predefined message boxes that look nice which use weld mechanism, and are available for use via relevant C++ classes.

An interesting one here, is the QueryDialog, which is created by a factory method design pattern.

It uses a predefined dialog, using cui/uiconfig/ui/querydialog.ui as the UI file, and it contains a nice stock image! You can test it easily, by modifying a LibreOffice example, minweld.

IMPL_LINK_NOARG(TipOfTheDayDialog, OnNextClick, weld::Button&, void)
{
    VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create();
    auto pDlg = pFact->CreateQueryDialog(getDialog(), u"Tips"_ustr, u"Tip of the day"_ustr, u"Are you sure you want to see the next tip of the day?"_ustr, false);
    sal_Int32 nResult = pDlg->Execute();
    pDlg->disposeOnce();

    if(nResult == RET_YES)
    {
        ++m_nCounter;
        m_pTextLabel->set_label(u"Here you will see tip of the day #"_ustr
+ OUString::number(m_nCounter) + ".");
    }
}

Assuming that you have a working build of LibreOffice, you can simply run the minweld workbench by invoking


Wednesday
29 January, 2025


face

We are pleased to announce the successful migration of Firebird Docker images to their new home:https://github.com/FirebirdSQL/firebird-dockerThe images are now published on Docker Hub athttps://hub.docker.com/r/firebirdsql/firebirdThanks to Adriano dos Santos Fernandes for his invaluable contributions and improvements throughout this process.


Friday
17 January, 2025


face

LibreOffice 25.2 will be released as final at the beginning of February, 2025 ( Check the Release Plan ) being LibreOffice 25.2 Release Candidate 2 (RC2) the forth and last pre-release since the development of version 25.2 started in mid Juny, 2024. Since the previous release, LibreOffice 25.2 RC1, 104 commits have been submitted to the code repository and 55 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.2 RC2 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Thursday
16 January, 2025


face

Happy new year 2025! I wish a great year for you, and the global LibreOffice community. Now that we are now in 2025, I briefly discuss the year 2024 and outlook for 2024 in the development blog.

LibreOffice Conference 2024, Luxembourg

LibreOffice Conference 2024, Luxembourg

At The Document Foundation (TDF), our aim is to improve LibreOffice, the leading free/open source office suite that has millions of users around the world. Our work is community-driven, and the software needs your contribution to become better, and work in a way that you like.

My goal here, is to help people understand LibreOffice code easier, and eventually participate in LibreOffice core development to make LibreOffice better for everyone. In 2024, I wrote 22 posts around LibreOffice development in the dev blog (4 of them are unpublished drafts).

Outlook For the New Year

Focus of the development blog for 2025 in this blog will be:

  • Introducing new EasyHacks
  • Describing user interface creation with VCL
  • Explaining LibreOffice architecture
  • Explaining Python interaction with LibreOffice

I have written about some of these topics in 2024. Therefore, this year I will try to expand the previous writings and provide new articles about them. For example, creating user interfaces using VCL with the help of glade interface designer will be one of important things to discuss.

You can give feedback by writing a comment here, or sending me an email to hossein AT libreoffice DOT org.

We provide mentoring support to those who want to start LibreOffice development. You are welcome to contact me if you need help to build LibreOffice and do some EasyHacks via the above email address. Also, you can always refer to our Getting Involved Wiki page:

Let’s hope a great year for LibreOffice (and the world) in 2025.


Tuesday
14 January, 2025


face

Dione Maddern y el equipo (global) de documentación de LibreOffice se enorgullecen de anunciar la disponibilidad inmediata de Guía de LibreOffice Calc 24.8, una actualización de la Guía de Calc 24.2 existente con las mejoras disponibles en LibreOffice Calc …


Monday
13 January, 2025


face

Helen Borrie, a key figure in the Firebird relational database project and a longtime contributor at IBPhoenix, passed away on January 2, 2025. Her contributions were essential to Firebird’s creation and its development over the past 25 years.Read the rest of the official announcement


face

We're happy to announce the first release of Jaybird 6, Jaybird 6.0.0.


face

By Ndidi Folasade Ogboi

LibreOffice Writer has long been a trusted tool for users worldwide, offering an open-source solution for documents. But what happens when we take a step back and look at the user experience? How do templates fit into the workflows of users, what makes a great template and where do users want LibreOffice writer to improve?…


Thursday
09 January, 2025


face

General Activities

  1. LibreOffice 24.8.4 was announced on December 19
  2. Olivier Hallot (TDF) improved the warning in Help when JavaScript is not active and did many cleanups in help pages
  3. Dione Maddern created a help page for Alignment Sidebar deck
  4. Alain Romedenne improved and updated help for ScriptForge libraries
  5. Bogdan Buzea improved some UI labels, improved help for superordinate object settings and cached spreadsheet formulas and did many code cleanups
  6. Tomaž Vajngerl (Collabora) continued working on PDF 2.0 and PDF/A-4 support
  7. Miklós Vajna, Rashesh Padia, Attila Szűcs, Bayram Çiçek, Szymon Kłos, Marco Cecchetti, Pranam Lashkari, Hubert Figuière (Collabora) worked on LOKit used by Collabora Online
  8. Xisco Faulí (TDF) worked on crash report analysis tools, upgraded many dependencies and did many code stability improvements
  9. Michael Stahl (allotropia) made style name handling more robust, improved the handling of hidden frames after recent changes and improved the correctness of HTML import regarding formatting
  10. Mike Kaganski (Collabora) added an application-wide Viewer mode where all files are opened in read-only state while all editing tools are disabled, dropped all code specific to Windows 7, 8 and 8.1 while also making use of new possibilities such as handling long Windows paths with wildcards, made the Unix document mailer script future-proof in case the attach parameter is disallowed in mailto URLs, fixed an issue with calculating minimum heights for menus, fixed an issue with the number format being reported incorrectly in Writer tables, fixed an issue with multi-selection in Calc showing an incorrect cell format and preventing change of format, fixed inability to edit doubles in Basic IDE’s Watch window and fixed an issue preventing the use of points for custom image height/width in the PNG export dialog
  11. Caolán McNamara (Collabora) improved dark mode support, fixed crashes and fixed many issues found by static analysers and fuzzers and did code cleanups
  12. Stephan Bergmann (allotropia) fixed an issue with emailing multiline messages on Unix and worked on the MAR updater and WASM build. He also adapted the code to compiler changes and did code cleanups
  13. Noel Grandin (Collabora) improved saving time of XLSX files with lots of conditional formatting, improved the speed of processing styles when opening DOCX files and worked alongside Michael Stahl in making style name handling more robust. He also did many code cleanups and optimisations
  14. Justin Luth (Collabora) fixed a DOCX compatibilityMode import and export issue, fixed an issue with imported area fill images not being saved with their associated documents, fixed a Calc comment copying crash and fixed an issue with tables of contents in DOCX files misbehaving when the printer list has been disabled
  15. Michael Weghorn (TDF) did a big reorganisation in accessibility-related code to make it easier to work with, continued working with Cambalache developer (UI editing app) and did various accessibility fixes. He also worked on using native widgets in Qt UIs
  16. Balázs Varga (allotropia) improved and expanded Writer’s accessibility warnings, fixed saving “Fit height to

Wednesday
08 January, 2025


face

Writer has the concept of paragraph margins and page margins, but what happens when you combine the two? It turns out the expectation is that sometimes the top paragraph margin is ignored in this case. We'll see two cases where the behavior of Writer is now improved to better match Word in this regard.

This work is primarily for Collabora Online, but the feature is available in desktop Writer as well.

Motivation

As described in a previous bugreport, there was a first problem where Word ignored the top paragraph margin of a document, but Writer did not. A recent bugreport then pointed out that the first implementation went too far and now a wanted top margin was ignored. This lead to a set of conditions which now does a decent emulation of Word's rules in this regard.

Results so far

Here is the old Writer render result for a document where the top margin should be ignored:

Bugdoc: old Writer render

And here is the new Writer render result for a document where the top margin is ignored:

Bugdoc: new Writer render

Finally, the reference render result, showing the ignored top paragraph margin:

Bugdoc: reference render

As you can see, now the unwanted top paragraph margin is omitted at page top.

How is this implemented?

If you would like to know a bit more about how this works, continue reading... :-)

As usual, the high-level problem was addressed by a series of small changes:

Want to start using this?

You can get a development edition of Collabora Online 24.04 and try it out yourself right now: try the development edition. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (25.2).


Friday
03 January, 2025


face

LibreOffice 25.2 will be released as final at the beginning of February, 2025 ( Check the Release Plan ) being LibreOffice 25.2 Release Candidate 1 (RC1) the third pre-release since the development of version 25.2 started in mid Juny, 2024. Since the previous release, LibreOffice 25.2 Beta1, 175 commits have been submitted to the code repository and 76 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.2 RC1 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Friday
20 December, 2024


face

Since the first implementation of a dark color theme we continuously improved the customization of LibreOffice. In a GSoC projects this year, Sahil Gautam made it possible to not only change the application colors but also what is defined by the operating system respectively the desktop environment.…


Thursday
19 December, 2024


face

 

Berlín, 19 de diciembre de 2024 – LibreOffice 24.8.4, la cuarta corrección de la familia LibreOffice 24.8 de la suite ofimática gratuita de código abierto y respaldada por voluntarios para Windows (Intel, AMD y ARM), MacOS (Apple e Intel) …


Wednesday
18 December, 2024


face

General Activities

  1. LibreOffice 24.8.3 was announced on November 14
  2. Olivier Hallot (TDF) did big updates to screenshots in Help, added a help page for login/password dialog and improved help pages on Skia, Writer Navigator and Edit – External links in Draw and Impress. He also added extended tips for Style dialog and Skia options
  3. Pierre F. continued reorganising help pages for Calc functions
  4. Dione Maddern added help pages for Number Format and Design Sidebar decks
  5. Alain Romedenne improved help for BASIC’s Mid method and updated help for ScriptForge’s Exception.PythonShell() method
  6. Bogdan Buzea fixed over 50 issues pointed out by PVS-Studio static analyser, did other code cleanups and worked on harmonising the use of date formats in Help to ISO 8601
  7. Tomaž Vajngerl (Collabora) started working on PDF 2.0 and PDF/A-4 support
  8. Jaume Pujantell (Collabora) fixed an issue with fill content of graphic objects being lost upon PPTX export
  9. Bayram Çiçek, Szymon Kłos, Skyler Grey, Vivek Javiya, Marco Cecchetti, Pranam Lashkari, Hubert Figuière and Miklós Vajna (Collabora) worked on LOKit used by Collabora Online. Vivek also added a command to remove content control formatting
  10. Julien Nabet did some internal improvements to database code and fixed several issues pointed out by static analysers
  11. Xisco Faulí (TDF) fixed 80 issues pointed out by PVS-Studio static analyser, upgraded many dependencies, added a script to check the latest version of external libraries, expanded ODF 1.4 support with help from Regina and did many restructurings in automated tests as well as code cleanups
  12. Michael Stahl (allotropia) made document compression handling more robust, fixed an issue in the WMF export code causing incomplete redactions and did many improvements to hiding elements in Writer
  13. Mike Kaganski (Collabora) fixed a hang related to Windows clipboard, made copying of rich text take font encoding into account, fixed an issue with setting page backgrounds via Java API, made footnote/endnote navigation more robust, made it so nested footnotes in ODF files are ignored instead of causing a read error (support has to be added to ODF spec), made hyphenation code more robust, fixed an issue with certain documents opening as modified and fixed an issue with incorrect OLE object scaling during loading
  14. Caolán McNamara (Collabora) fixed an issue with tabs getting skipped when cycling with Ctrl+PgDn/PgUp in Calc’s Format Cells dialog, fixed crashes and fixed many issues found by static analysers and fuzzers and did code cleanups
  15. Stephan Bergmann (allotropia) worked on WASM build. He also adapted the code to compiler changes and did code cleanups
  16. Noel Grandin (Collabora) fixed an issue with Calc’s background colour conditional formatting sometimes missing newly added entries, made it faster to open XLSX files with lots of conditional formatting and made inspection of BASIC macros in the macro editor safer by detecting and skipping the display of very large UNO property values. He also did many code cleanups and optimisations
  17. Justin Luth (Collabora) fixed an issue with forms

Friday
13 December, 2024


face

LibreOffice 25.2 se lanzará como versión final a principios de febrero de 2025 (Consulte el Plan de Lanzamiento) siendo LibreOffice 25.2 Beta1 el segundo pre-lanzamiento desde que comenzó el desarrollo de la versión 25.2 a mediados de junio de …


Thursday
12 December, 2024


face

LibreOffice 25.2 will be released as final at the beginning of February, 2025 ( Check the Release Plan ) being LibreOffice 25.2 Beta1 the second pre-release since the development of version 25.2 started in mid Juny, 2024. Since the previous release, LibreOffice 25.2 Alpha1, 450 commits have been submitted to the code repository and 105 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.2 Beta1 can be downloaded for Linux, macOS and Windows, and it can be installed alongside the standard version.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Wednesday
04 December, 2024


face

Impress shape text doesn't have much support for styles, e.g. the default UI in Writer gives you a paragraph style dropdown, and you don't get the same in Impress. Still, a paragraph style is attached to bullets based on their outline level, and Impress has a View → Outline menu item to give you that styled text you can copy. Pasting that to Writer started to lose styles recently and it's now fixed to work again.

This work is primarily for Collabora Online, but the feature is available in desktop Impress as well.

Motivation

As described in a previous commit, I had a case where lots of not needed paragraph styles were exported to RTF in case an Impress document had enough master pages. The idea was to only export actually used paragraph styles, to avoid wasting CPU power.

Turns out filtering out paragraph styles has to happen at two locations:

  • in the style table to assign an index to a paragraph style
  • when referring to those styles

The problem was that unused styles were removed from the style table, but not from the style → index mapping, so as soon as you had both used and unused paragraph styles, the declared and the referred style indexes didn't match anymore.

Results so far

Here is a sample paste result in Writer, where you can see that the text doesn't have a custom paragraph style:

Bugdoc: old Writer paste

And here is the same paste, now with paragraph styles restored:

Bugdoc: new Writer paste

As you can see, now the pasted text has paragraph styles.

How is this implemented?

If you would like to know a bit more about how this works, continue reading... :-)

The bugfix commit was editeng RTF export: fix broken offsets into the para style table.

The tracking bug was tdf#163883.

Want to start using this?

You can get a development edition of Collabora Online 24.04 and try it out yourself right now: try the development edition. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (25.2).


Friday
29 November, 2024


face

 Let me count the ways, in no particular order and in no way exhaustive:

  • OutputDevice is the base class for printing, windowing and PDFs. It doesn't just do output. 
  • OutputDevice has GetOutDevType() because the base class needs to know what child class is using it. Ugh. 
  • OutputDevice drawing primitives not only draw, but they record a metafile. There are literally functions that turn off drawing and just let it record the metafile. I made an attempt at seperating the concerns, but it got nowhere. 
  • VCL relies on DrawingLayer and DrawingLayer relies on the VCL. 
  • There is a concept of a VirtualDevice, which is derived from OutputDevice. VirtualDevice does a bunch of things, but one of which is alpha-handling. In OutputDevice, there is a member which is a VirtualDevice. Each drawing function in Outputdevice calls upon the correlated drawing function in this member VirtualDevice.
  • Bitmaps don't get modified via the Bitmap class. Instead, you have to use BitmapInfoAccess, BitmapReadAccess and BitmapWriteAccess. I'm still puzzling out why these are seperate classes. 
  • Bitmaps are transformed in SalGraphics indirectly via OutputDevice. Except when they aren't, in which case it fails, whereby OutputDevice tries an alternative way via SalGraphics. Otherwise, it tries its own poor man approach at drawing the bitmap. Consequently, often times you bypass the platform optimized ways of doing things, because its not been implemented.
  • Fonts are lazy loaded from OutputDevice. There is no central font manager. To get the fonts, you have to go through SalGraphics. To get a SalGraphics, you need to initialize a lot of stuff not related to fonts. 
  • Font caching is done from OutputDevice. Lazily. Font data is updated for all frames. Frames are a concept needed for Windows. Frames are not a concept needed by Printers and VirtualDevices, or even PDFs. Note that Printers, VirtualDevices and PDFs all inherit from OutputDevice. 
  • OutputDevice converts between "logical" units and display units. It's a nightmare to know what each function needs what sort of units. For the mapping between units, I refer you to vcl/source/gdi/mapmod.cxx and vcl/source/outdev/map.cxx
  • There is tools and basegfx. They do the same thing, though basegfx is considerably better written. You have Size and B2DSize, Point and B2DPoint, Polygon and B2DPolygon, PolyPolygon and B2DPolyPolygon. OutputDevice must handle it all. 
  • Gradient handling is sort of half baked in OutputDevice, much of gradient handling is done in other modules. 
  • Font substitution is truly, truly weird. PhysicalFontSelect::FindFontFamilyByAttributes() has clearly got a bug in it - (e.g. ImplFontAttrs::None == ((nSearchType ^ nMatchType) & ImplFontAttrs::Rounded an XOR?) and it is a truly strange weighting scheme. Yes, I did try to untangle that beast with proper unit tests, but gave up after being told I was being unreasonable. 
  • There is VCL, canvas, cppcanvas and drawinglayer. drawinglayer is way better than VCL, but we are stuck with VCL for everything. 
  • Consider the following Window hierarchy: WorkWindow inherits from SystemWindow, which inherits from Window. Window holds an OutputDevice to do stuff

face

LibreOffice 25.2 will be released as final at the beginning of February, 2025 ( Check the Release Plan ) being LibreOffice 25.2 Alpha1 the first pre-release since the development of version 25.2 started in mid Juny, 2024. Since then, 5184 commits have been submitted to the code repository and 710 bugs were set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 25.2 Alpha1 can be downloaded for Linux, macOS and Windows, and it can be installed alongside the standard version.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

Download it now!


Wednesday
27 November, 2024


face

El V Congreso Latinoamericano de LibreOffice, que se llevará a cabo los días 5 y 6 de diciembre de 2024 en Montevideo, reunirá a expertos y entusiastas del software libre de toda la región. Entre sus destacadas sesiones, Olivier Hallot …

<- Current blog entries