The Document Foundation Planet

 

March 01, 2024

Official TDF Blog

The new Board of Directors

The new Board of Directors of The Document Foundation has just started its two-year term on 18 February 2024.

The full members are, in alphabetical order: Eliane Domingos, Sophie Gautier, Björn Michaelsen, László Németh, Simon Phipps, Eike Rathke, Italo Vignoli.

The deputies are again in alphabetical order: Osvaldo Gervasi, Mike Saunders, Paolo Vecchi.

Mike Saunders was elected to the Board for the first time. All the other members have served either on the Steering Committee from 2010 to 2012 (Sophie Gautier and Italo Vignoli) or on the Board of Directors since 2014 as full or deputy members.

At its first meeting, the Board unanimously elected Eliane Domingos as Chair and Simon Phipps as Vice-Chair.

At the same time, they decided to review and reorganise responsibilities and areas of oversight to ensure a more agile decision-making process.

Six people who served during the previous term have left the Board, but will continue to contribute to the project as TDF Members: Thorsten Behrens, Gábor Kelemen, Gabriel Masei, Cor Nouws, Emiliano Vavassori, Ayhan Yalçınsoy.

We are deeply grateful to all of them for their dedication, their contribution to decision making and all the time they have volunteered to serve on the Board, as well as their ongoing contribution to FOSS and LibreOffice.

by Italo Vignoli at March 01, 2024 01:08 PM

Miklos Vajna

February 29, 2024

LibreOffice Dev Blog

Writer tables converted to plain text – difficultyInteresting EasyHack

If you copy contents from LibreOffice Writer to a plain text editor like gedit or Notepad, you will see that it does a straightforward thing: It copies the text and some basic formatting like converting bullets to ‘•’. For the Writer tables, the conversion is very simple right now: every cell is written in a separate line.

For example, if you have a table like this:

A | B
--|--
C | D

When you copy the table from LibreOffice Writer and paste it into a plain text editor, it will become something like this, which is not always desirable.

A
B
C
D

It is requested that like LibreOffice Calc, or Microsoft Word, and many other programs, the copy/paste mechanism should create a text like this:

A	B
C	D

The columns are separated by <tab>.

This feature request is filed in Bugzilla as tdf#144576:

Code pointers for Handling Writer tables

There are many steps in copy/pasting, including the data/format conversion and clipboard format handling. Here, you have to know that the document is converted to plain text via “text” filter.

The plaintext (ASCII) filter is located here in the LibreOffice core source code:

Therefore, to change the copy/paste output, you have to fix the ASCII filter. That would also provide the benefit that plain text export will be also fixed as requested here.

In this folder, there are a few files:

$ ls sw/source/filter/ascii/
ascatr.cxx parasc.cxx wrtasc.cxx wrtasc.hxx

To change the output, you have to edit this file:

In this file, there is a loop dedicated to create the output.

// Output all areas of the pam into the ASC file
do {
    bool bTstFly = true;
    ...
}

Inside this loop, the code iterates over the nodes inside the document structure, and extracts text from them. To check for yourself, add the one line below to the code, build LibreOffice, and then test. You will see that a * is appended before each node.

SwTextNode* pNd = m_pCurrentPam->GetPoint()->GetNode().GetTextNode();
if( pNd )
{
+   Strm().WriteUChar('*');
    ...
}

For example, having this table, with 1 blank paragraph up and down:

A | B
--|--
C | D

You will get this after copy/paste into a plain text editor:

*
*a
*b
*c
*d
*

To fix the bug, you have to differentiate between table cells and other nodes. Then, you should take care of the table columns and print tab between them.

To go further, you can only add star before table cells:

if( pNd )
{
    SwTableNode *pTableNd = pNd->FindTableNode();
+   if (pTableNd)
+   {
+       Strm().WriteUChar('*');
+    }
    ...
}

You can look into how other filters handled tables. For example, inside sw/source/filter/html/htmltab.cxx you will see how table is managed, first cell is tracked and appropriate functions to handle HTML table are called.

For the merged cells, the EasyHacker should first checks the behavior in other software, then design and implement the appropriate behavior.

Final Words

To gain a better understanding of the Writer document model / layout, please see this document:

This presentation is also very helpful to gain a good understanding of Writer development:

Introduction to Writer Development – LibreOffice 2023 Conference Workshop, Miklos Vajna

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.

by Hossein Nourikhah at February 29, 2024 03:01 PM

Michael Meeks

2024-02-29 Thursday

  • Drove to Stansted; caught up with Gokay; rather delayed flight. Hacked up a tool to annotate unshared pages with names of pointers into shared libraries to better unwind the origin of dirtied pages.

February 29, 2024 02:59 PM

Official TDF Blog

Announcement of LibreOffice 24.2.1 Community

Berlin, 29 February 2024 – LibreOffice 24.2.1 Community, the first minor release of the free, volunteer-supported office suite for personal productivity in office environments, is now available at https://www.libreoffice.org/download for Windows, MacOS and Linux.

The release includes more than 100 bug and regression fixes over LibreOffice 24.2 [1] to improve the stability and robustness of the software. LibreOffice 24.2.1 Community is the most advanced version of the office suite, offering the best features and interoperability with Microsoft Office proprietary formats.

LibreOffice is the only office suite with a feature set comparable to the market leader. It also offers a range of interface options to suit all user habits, from traditional to modern, and makes the most of different screen form factors by optimising the space available on the desktop to put the maximum number of features just a click or two away.

Highlights of LibreOffice 24.2.1 Community

The main advantage of LibreOffice over other office suites is the LibreOffice Technology engine, a single software platform for all environments: desktop, cloud and mobile. This allows LibreOffice to provide a better user experience and produce identical – and interoperable – documents based on both ISO standards: Open Document Format (ODT, ODS and ODP) for users concerned about compatibility, resilience and digital sovereignty, and the proprietary Microsoft OOXML (DOCX, XLSX and PPTX).

Most notable new features in the LibreOffice 24.2 family:

GENERAL
• Save AutoRecovery information is enabled by default, and is always creating backup copies
• Fixed various NotebookBar options, with many menu improvements, better print preview support, proper reset of customised layout, and enhanced use of radio buttons
• The Insert Special Character drop-down list now displays a character description for the selected character (and in the tooltip when you hover over it)

WRITER
• “Legal” ordered list numbering: make a given list level use Arabic numbering for all its numeric portions
• Comments can now use styles, with the Comment paragraph style being the default
• Improved various aspects of multi-page floating table support: overlap control, borders and footnotes, nesting, wrap on all pages, and related UI improvements

CALC
• A new search field has been added to the Functions sidebar deck
• The scientific number format is now supported and saved in ODF
• Highlight the Row and Column corresponding to the active cell

IMPRESS & DRAW
• The handling of small caps has been implemented for Impress
• Moved Presenter Console and Remote control settings from Tools > Options > LibreOffice Impress to Slide Show > Slide Show Settings, with improved labelling and dialogue layout
• Several improvements and fixes to templates

ACCESSIBILITY
• Several significant improvements to the handling of mouse positions and the presentation of dialogue boxes via the Accessibility APIs, allowing screen readers to present them correctly
• Improved management of IAccessible2 roles and text/object attributes, allowing screen readers to present them correctly
• Status bars in dialogs are reported with the correct accessible role so that screen readers can find and report them appropriately, while checkboxes in dialogs can be toggled using the space bar

SECURITY
• The Save with Password dialogue box now has a password strength meter
• New password-based ODF encryption that performs better, hides metadata better, and is more resistant to tampering and brute force
• Clarification of the text in the options dialogue box around the macro security settings, so that it is clear exactly what is allowed and what is not

The LibreOffice 24.2 family offers a host of enhancements and new features aimed at users sharing documents with or migrating from MS Office, building on the advanced features of the LibreOffice Technology platform for personal productivity on the desktop, mobile and in the cloud.

A full description of all the new features can be found in the release notes [2].

LibreOffice for Enterprises

For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a wide range of dedicated value-added features and other benefits such as SLAs: https://www.libreoffice.org/download/libreoffice-in-business/

Every line of code developed by ecosystem companies for enterprise customers is shared with the community on the master code repository and contributes to the improvement of the LibreOffice Technology platform.

Availability of LibreOffice 24.2.1 Community

LibreOffice 24.2.1 Community is available at https://www.libreoffice.org/download/. Minimum requirements for proprietary operating systems are Microsoft Windows 7 SP1 and Apple MacOS 10.15. Products based on LibreOffice Technology for Android and iOS are listed here: https://www.libreoffice.org/download/android-and-ios/

For users who don’t need the latest features and prefer a version that has undergone more testing and bug fixing, The Document Foundation maintains the LibreOffice 7.6 family, which includes several months of back-ported fixes. The current release is LibreOffice 7.6.5 Community.

The Document Foundation does not provide technical support for users, although they can get it from volunteers on user mailing lists and the Ask LibreOffice website: https://ask.libreoffice.org

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

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

[2] Release Notes: https://wiki.documentfoundation.org/ReleaseNotes/24.2

by Italo Vignoli at February 29, 2024 12:33 PM

February 28, 2024

Michael Meeks

2024-02-28 Wednesday

  • Mail chew, interview & offer with Miklos.
  • Into Cambridge with J. , on to the Moller Institute for a tour of the rather lovely COOL days venue.
  • Back; sales catch-up with Eloy, sync with Caolan.

February 28, 2024 09:00 PM

February 27, 2024

Michael Meeks

2024-02-27 Tuesday

  • Mail chew, planning call, took car to have tires changed, bought J, some flowers on the way back. Patch review, sync with Neil. J. took N. back to university, worked late.
  • Started CofE Domestic Violence safeguarding training; sad its necessary really.

February 27, 2024 09:00 PM

February 26, 2024

Michael Meeks

2024-02-26 Monday

  • Took E. to school; bit of a mail backlog to process; started on it. Call with Calc team; 1:1's with Miklos, Pedro, marketing content call; more 1:1's, partner call.

February 26, 2024 09:00 PM

February 25, 2024

Michael Meeks

2024-02-25 Sunday

  • All Saints; gave a talk on first four beatitudes.
  • Home for a Pizza lunch with the family; and some applied resting.

February 25, 2024 09:00 PM

February 22, 2024

Official TDF Blog

LibreOffice 7.6.5 released for productivity environments

Berlin, February 22, 2024 – LibreOffice 7.6.5 Community is immediately available from https://www.libreoffice.org/download for Windows, macOS, and Linux [1]. This is the most thoroughly tested version of the suite, for deployments by individuals, small and medium businesses, and other organizations in productivity environments.

For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a large number of dedicated value-added features and other benefits such as SLA (Service Level Agreements): https://www.libreoffice.org/download/libreoffice-in-business/

Users can download LibreOffice 7.6.5 Community from the office suite website: https://www.libreoffice.org/download/. Minimum requirements are Microsoft Windows 7 SP1 and Apple macOS 10.14. LibreOffice Technology-based products for Android and iOS are listed here: https://www.libreoffice.org/download/android-and-ios/

The Document Foundation does not provide technical support for users, although they can be helped by volunteers on user mailing lists and on the Ask LibreOffice website: https://ask.libreoffice.org

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at https://www.libreoffice.org/donate

[1] Change log pages: https://wiki.documentfoundation.org/Releases/7.6.5/RC1 and https://wiki.documentfoundation.org/Releases/7.6.5/RC2

by Italo Vignoli at February 22, 2024 03:07 PM

LibreOffice Dev Blog

Make Impress master slides copyable – difficulty interesting EasyHack

When working with LibreOffice Impress, “Slide Master” is the place where you can change the templates used for different types of the slides used in your presentation. Here we discuss a possible improvement for the “Slide Master” by making the copy from master slides possible.

Copying the Master Page in Impress

To see the problem and the room for enhancement, open LibreOffice Impress, then choose “View->Master->Slide Master” from the menus. Then, try to copy the master page on the left in the slide sorter. Unfortunately, it is not possible.

Impress slide master

Impress slide master

Having this feature is helpful, because different page types have many things in common, and being able to copy/paste helps creating templates much faster.

Impress Code Pointers

Looking into sd/source/core/drawdoc3.cxx, you can see a huge function SdDrawDocument::InsertBookmarkAsPage, which is relevant here. It contains ~600 lines of code. This huge function is in itself a problem. Therefore, to implement the enhancement, on should try to first refactor the function, then add a unit test in sd/qa/unit, find and then separate all the ~6 use cases, and fix the style/name merging.

After the cleanup, the main fix should be implemented. The suggested path to implement this comes from Jean-Francois. He suggest to improve the duplicate() method, which is described in the documentation:

As described in the above documentation, its role is to duplicate a page:

Creates a duplicate of a DrawPage or MasterPage, including the Shapes on that page and inserts it into the same model.

However, the implementation does not work for master slides, as the macros in the attachment file implies. The solution should add the needed implementation for master slides.

The implementation is inside sd/source/ui/unoidl/unomodel.cxx inside duplicate function:

// XDrawPageDuplicator
uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( const uno::Reference< drawing::XDrawPage >& xPage )
{

...

}

Final Words

The above issue is filed as tdf#45617. If you like to work on it, just follow the Bugzilla link to see more information.

To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first:

Getting Started (Video Tutorial)

by Hossein Nourikhah at February 22, 2024 02:57 PM

February 21, 2024

Official TDF Blog

We have received a Postcard from FSFE

We have received a postcard from FSFE (Free Software Foundation Europe), with a nice small poem.

Every time we see .ODT, every bell rings.
LibreOffice, you are our wings:
so good you make us fly
editing for hours as well as on the fly.

With your huge crows of proud volunteers,
you deserve all of our cheers!
Without you, we could do nothing,
no other software we’d be dating.

“Thank you” from all FSFE,
you give us one more reason to be.

Thanks to all FSFE employees, and to all the members they represent, for the very nice present.

by Italo Vignoli at February 21, 2024 12:46 PM

February 16, 2024

Official TDF Blog

Video: New features in LibreOffice 24.2

LibreOffice 24.2 is our new major update, with new features, compatibility improvements, and performance boosts. Check out this video, with subtitles in 28 languages thanks to our awesome localisation community – or if you’d prefer to watch it on PeerTube, here’s a link.

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.

by Mike Saunders at February 16, 2024 10:33 AM

February 13, 2024

LibreOffice QA Blog

QA/Dev Report: January 2024

General Activities

  1. LibreOffice 24.2 was released on January, 31
  2. Olivier Hallot (TDF) fixed a duplicate Covariance command in Notebookbar UIs, updated menu item paths in Help pages and updated Help pages for conversion filters and style Spotlight
  3. Rafael Lima added a Color Scheme switcher to Basic IDE, added a “Delete Comment” command to the Navigator context menu, fixed drawing comment triangles in Calc at all zoom levels, made it so the visibility of UI components in the Basic IDE is remembered, made Basic IDE highlight the line where the cursor is positioned, made it possible to open the “Go to Line” dialog from the statusbar in Basic IDE, fixed Calc AutoFilter arrow color in dark mode, made it so line numbering and breakpoint in Basic IDE are on the left even in right-to-left UI and fixed a crash in Dialog Editor. He also improved the ScriptForge Help pages
  4. Stanislav Horacek updated menu paths in Help alongside other cleanups and fixes
  5. Ilmari Lauhakangas (TDF) removed unnecessary images from SVG icon themes, saving nearly 5 MB of space. He also changed the Help CSS to account for a quirk in Safari
  6. Stéphane Guillou (TDF) continued linking Sidebar decks to Help
  7. Alain Romedenne updated ScriptForge Help pages
  8. Dione Maddern did many fixes and updates to Draw dialog Help pages
  9. Gábor Kelemen (allotropia) added accessible descriptions to new Dublin Core metadata boxes, updated Help after removal of FTP protocol support and did code cleanups in the area of code simplification and includes
  10. Laurent Balland did cleanups in the metadata of Impress templates
  11. Miklós Vajna (Collabora) fixed the layout handling of empty paragraphs formatted as superscript in Writer, added support for HTML paste to Writer shape text or Calc cell text edit and continued polishing support for multi-page floating tables in Writer
  12. Jean-Pierre Ledure worked on the ScriptForge library
  13. Gabriel Masei (1&1), Paris Oplopoios, Szymon Kłos, Méven Car, Andras Timar, Attila Szűcs and Áron Budea (Collabora) worked on LOKit used by Collabora Online. Andras also fixed some FreeBSD build issues while Attila fixed hyperlink colouring in certain PPTX files and a textbox vertical alignment inversion issue when saving PPTX files
  14. Henry Castro (Collabora) made the status bar in Calc work as expected with language selection
  15. Eike Rathke (Red Hat) made it so the maximum number of hours that can be entered into a Calc cell with time formatting is now a 32-bit integer instead of 65535
  16. Tomaž Vajngerl (Collabora) continued refactoring the EditEngine text editing code
  17. Julien Nabet fixed an issue preventing some position parameters to go beyond 17 mm in Writer, fixed an issue that made ReportBuilder wizards show two different data sources, fixed several crashes and did code cleanups
  18. Andreas Heinisch made it so font, highlight and background colour in toolbar buttons is remembered between sessions, fixed canceling Text Import in Calc locking the document and made it so question mark can be used in autotext shortcuts
  19. László Németh continued polishing support for smart justify found in DOCX files and implemented ODF attribute fo:hyphenate to exclude a portion of text from hyphenation
  20. Xisco Faulí (TDF) fixed a regression with multiline text exported to PDF as one line, added support for viewBox in symbol elements in SVG import and made nearly 20 additions and improvements to automated tests
  21. Michael Stahl (allotropia) continued polishing revamped ODF encryption, fixed a regression preventing editing of index entries in Writer, worked on WASM build, fixed a Writer issue causing objects to disappear after undo followed by Enter due to invisible anchor selection and fixed slowness if Style Inspector visible during PDF export
  22. Mike Kaganski (Collabora) made font substitution more robust, implemented support for inserting Unicode decimal codes via Alt+NumPad on Windows, fixed storing URLs in DOCX files, fixed a Writer formatting error in paragraphs with justified text, fixed PPTX import of graphic placeholder with a custom prompt, made it so Delete and Backspace move the cursor correctly in change tracking mode, fixed floating content controls importing from DOCX as separate paragraphs, improved the debugging experience in Visual Studio, fixed autotext / word completion tooltips not showing up, fixed an issue with saving word completion options, improved the IDE integration build code, got rid of unwanted space between footnote number and following text, when paragraph has hanging indent in imported DOCX files, fixed passing Integer-sized Long argument via script.invoke in BASIC, fixed unwanted interleaving of bookmark starts and ends and fixed updating path to library when it is renamed using Basic Macro Organizer. He also fixed crashes and did code cleanups
  23. Caolán McNamara (Collabora) fixed an issue causing Similarities dialog to not appear in Base, made optimal column width in Calc more robust, fixed an issue with checkboxes under GTK3 not being disabled when settings are locked down from config, fixed an issue with Hyperlink dialog width growing too large with long text in clipboard, improved Calc performance by reducing window content invalidations and enabled Small Caps toolbar button in Impress. He also fixed crashes and many issues found by static analysers and fuzzers
  24. Stephan Bergmann (allotropia) worked on the online update feature and WASM build and fixed an issue preventing certificate manager use. He also did many code cleanups and adapted the code to compiler changes
  25. Noel Grandin (Collabora) optimised opening files on Unixes, fixed an issue causing Paste as RTF to lose character color and paragraph alignment from styles, improved scrolling performance in Calc and made cryptographic signing more robust. He also did many code cleanups
  26. Justin Luth (Collabora) fixed a problem with tracked changes showing in Start Center thumbnail, fixed various cases of context menu not appearing in Writer when right-clicking the last half character, fixed an object z-order issue in DOCX files, fixed loss of number formatting in charts in DOCX import, fixed DOCX export issues causing unwanted overlapping of objects, fixed unwanted offset added to shapes in headers in DOCX import and fixed issues with pie chart import in OOXML files
  27. Michael Weghorn (TDF) worked on bringing native Qt widgets to Qt/KDE UI and fixed accessibility issues in areas such as shortcuts. He also did many updates and cleanups to the LibreOffice Android Viewer code
  28. Balázs Varga (allotropia) fixed an issue with copying master slide style in PPTX documents, made it so the user is taken straight to the Security Options and Warnings dialog after clicking the relevant button in an infobar notification and made accessibility warnings about simulated numbering smarter
  29. Patrick Luby (NeoOffice) fixed many macOS crashes and a hang on iOS during export
  30. Jim Raykowski made Spotlight more elegant by only showing it for styles that are used in the document, fixed a hyperlink editing crash while having Navigator open and made it possible to insert cross references from Navigator by dragging and dropping
  31. Sarper Akdemir (allotropia) continued working on the feature for disabling active content, fixed an issue with background image shifting down in presentation mode in PPTX files and made it so Dublin Core meta data attribute dc:date is added to exported PDF files
  32. Christian Lohmaier (TDF) fixed packaging of Noto fonts on macOS, fixed an issue with Windows build signing, added Armenian language pack and fixed Windows aarch64 cross-build
  33. Regina Henschel fixed an issue with line break missing from RTF clipboard data after copying shape text
  34. Sahil Gautam added a UI label for page preview zoom slider and made Calc cell cursor more accessible for colour blind users
  35. Samuel Mehrbrodt (allotropia) made the removal of meta data more extensive when the option to remove it when saving is active, implemented resizing of Writer comment section, made it so only documents from the current module are shown by default in Recent Documents and fixed an issue with an empty chart title getting unwanted text in imported PPTX files
  36. Thorsten Behrens (allotropia) fixed build issues related to certain libraries, fixed an xpdfimport crash with missing fonts, made MAR-based LibreOffice updater non-experimental and wholesome ODF package encryption the default
  37. Armin Le Grand (allotropia) continued the rework of handling attributes and properties
  38. Oliver Specht (CIB) made it so that upon entering a legacy text fieldmark in Writer, placeholder text gets pre-selected, made sure paper tray settings are respected when importing RTF and DOCX files and made clone formatting switch off lists
  39. Matt K fixed an issue with conditional formatting getting lost when moving Calc sheets around and fixed many crashes
  40. Adam Seskunas added an automated test for moving focus to inserted image in Writer
  41. Arnaud Versini did some code cleanups
  42. Darshan Upadhyay, Jaume Pujantell and Vivek Javiya (Collabora) worked on jsdialog used by Collabora Online. Jaume also made font embedding in DOCX files more robust
  43. Heiko Tietze (TDF) made Template Manager cleaner by hiding useless buttons, made the options in Image compression dialog behave more logically and improved the look of Calc comment indicator
  44. Hossein Nourikhah (TDF) added a minimal Python extension as an example, fixed a JUnit test not running and decreased the maximum number of columns in Calc’s data entry form to prevent performance issues
  45. Skyler Grey (Collabora) added a Calc option to keep edit mode on Enter/Tab, particularly useful for devices with an onscreen keyboard
  46. Gökay Şatır (Collabora) fixed Ignore All not working with LanguageTool spellchecking errors
  47. Omkar Acharekar worked on bringing native Qt widgets to Qt/KDE UI as part of an Outreachy project
  48. Tibor Nagy (allotropia) made Calc support creation of accessible PDFs, fixed many other accessible PDF issues and fixed an issue with table styles in PPTX import
  49. Kurt Nordback fixed an issue with combo chart render order
  50. Marco Cecchetti (Collabora) fixed Calc view invalidation issues
  51. Dennis Francis (Collabora) improved the performance of conditional formatting in Calc
  52. Matthew Kogan fixed an issue with an unwanted space appearing at start of line when field wraps
  53. Kevin Suo made it so Empty and Error entries are shown as non-selected and inactive when hidden by autofilter
  54. Eli Schwartz (Arch Linux) improved the portability of shell scripts
  55. Bayram Çiçek (Collabora) made inactive Calc sheets movable and copyable
  56. Xuan Chen fixed a Java UNO bridge test failure on riscv64 CPU architecture
  57. Winfried Donkers added Excel2021 function XLOOKUP to Calc

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

515 bugs, 76 of which are enhancements, have been reported by 297 people.

Top 10 Reporters

  1. Gabor Kelemen (allotropia) ( 40 )
  2. Xisco Faulí ( 19 )
  3. Telesto ( 16 )
  4. Mike Kaganski ( 12 )
  5. Tracey ( 10 )
  6. Rafael Lima ( 10 )
  7. Robert Großkopf ( 9 )
  8. Stéphane Guillou (stragu) ( 9 )
  9. Regina Henschel ( 8 )
  10. Justin L ( 8 )

Triaged Bugs

523 bugs have been triaged by 67 people.

Top 10 Triagers

  1. Stéphane Guillou (stragu) ( 109 )
  2. Buovjaga ( 80 )
  3. m_a_riosv ( 56 )
  4. Heiko Tietze ( 41 )
  5. Xisco Faulí ( 29 )
  6. Mike Kaganski ( 23 )
  7. Julien Nabet ( 17 )
  8. Rafael Lima ( 14 )
  9. Telesto ( 13 )
  10. V Stuart Foote ( 12 )

Resolution of resolved bugs

456 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

181 bugs have been fixed by 39 people.

Top 10 Fixers

  1. Mike Kaganski ( 21 )
  2. Rafael Lima ( 13 )
  3. Caolán McNamara ( 9 )
  4. Justin Luth ( 8 )
  5. Michael Stahl ( 8 )
  6. László Németh ( 6 )
  7. Tibor Nagy ( 6 )
  8. Heiko Tietze ( 6 )
  9. Samuel Mehrbrodt ( 5 )
  10. Matt K ( 5 )

List of high severity bugs fixed

  1. tdf#155917 Writer crashes when inserting ODT file containing PDF into table in another ODT doc ( Thanks to Michael Stahl )
  2. tdf#158965 Find Record: Similarities dialog won’t appear ( Thanks to Caolán McNamara )
  3. tdf#159243 Armenian characters displaying incorrectly (as boxes) on macOS (fonts not packaged properly) ( Thanks to Christian Lohmaier )
  4. tdf#159386 Selecting all in a certain table causes assert in SfxPoolItem::SetWhich with a debug build ( Thanks to Caolán McNamara )
  5. tdf#73678 FORMATTING: Conditional Formatting lost when Click-drag Sheet2 tab to position 1 or adding, then

by x1sc0 at February 13, 2024 09:17 AM

February 11, 2024

Caolán McNamara

coverity 2022.6.0 and LibreOffice


After a long slog since November when the previous version of coverity was EOLed and we had to start using 2022.6.0 with its new suggestions for std::move etc, LibreOffice is now finally back to a 0 warnings coverity state

by caolan (noreply@blogger.com) at February 11, 2024 06:02 PM

February 06, 2024

Miklos Vajna

Fixing multi-view programming challenges in Calc and elsewhere

This post describes some challenges around having multiple views of one opened document in LibreOffice core, when those views belong to LOK views, representing different users, with their own language, locale and other view settings.

This work is primarily for Collabora Online, but is useful for all clients of the LOK API.

Motivation

LOK views are meant to represent separate users, so we need to make sure that when a user sets their preferences and trigger an action, then the response to that action goes to the correct view, with the correct view settings.

This is different from the desktop LibreOffice use-case, where multiple windows are still meant to share the same user name, language, undo stack and so on.

Results so far

In this post, I would like to present 4 small improvements that recently happened to the LOK API to provide this wanted separation of views.

The first was an issue where two users were editing the same document, one busily typing and the other clicked on a link in Calc. What could happen sometimes is the link popup appeared for the user who typed, not for the user who clicked on the link:

Link popup is actually on the left, should be on the right, now fixed

This specific problem can be fixed by making sure that link click callbacks are invoked synchronously (while the clicking view is still active) and not later, when the current view may or may not be the correct one.

It turns out the same problem (async command dispatch) affects not only hyperlinks, but many other cases as well, where we want to stay async, for example, when one dialog would invoke another dialog, like the Calc conditional format -> add dialog:

Calc conditional format add dialog appearing on the left, should be on the right, now fixed

There you don't want to change async commands into sync commands, because that may mean spinning the main loop inside a dialog, resulting in nested main loops. This can be fixed by making sure that async commands to be dispatched (sfx2 hints in general) are processed in a way that the current view at dispatch & processing is the same, which is now the case.

The third problem was around wrong language & locale in the status bar:

Unexpected English strings in localized statubar UI, now fixed

This is not simply a problem of missing translation, the trouble was that the status bar update is also async and by the time the update happened, the locale of the view on the left was used, for a string that appears on the right.

The way to fix this is to perform the update of toolbars/statusbar/etc (in general: SfxBindings) in a way that the language at job schedule time and at UI string creation time is the same.

The last problem was quite similar, still about bad language on the UI, but this time on the sidebar:

Unexpected English strings in localized sidebar UI, now fixed

This is similar to the statusbar case, but the sidebar has its own executor for its async jobs, so that needed a fix similar to what the statusbar already had, now done.

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 the latest Collabora Online Development Edition 23.05 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 (24.8).

by Miklos Vajna at February 06, 2024 08:49 AM

February 04, 2024

LibreOffice Dev Blog

gbuild for Java tests – LibreOffice build system part 3

In this blog post, I discuss gbuild for Java tests. The goal is to write a Makefile to compile and run a JUnit test for LibreOffice. You can also refer to part 1 and part 2 for a brif overiew on gbuild, the LibreOffice build system.

Macro Examples from gbuild for Java Tests

In the first post on gbuild, I have mentioned some macro examples including gb_Output_announce which was used to print nice messages like the ones including “[CXX]”. Now let’s explain some more macros related to Java tests.

Consider that you want to compile and run a JUnitTest. To do that, you need to write the test in a Java file, and create a Makefile to run that.

This is an example for running a test defined in Java file sw/qa/complex/indeterminateState/CheckIndeterminateState.java.

$(eval $(call gb_JunitTest_JunitTest,sw_complex))

$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \
))

$(eval $(call gb_JunitTest_use_unoapi_jars,sw_complex))

$(eval $(call gb_JunitTest_add_classes,sw_complex,\
complex.indeterminateState.CheckIndeterminateState \
))

The make file for running this Java test consists of calling multiple macros. It starts with gb_JunitTest_JunitTest macro, which defines the test by its name, sw_complex. This macro is defined in solenv/gbuild/JunitTest.mk. If you grep for define in the same file, you will see this result:

$ grep -w define solenv/gbuild/JunitTest.mk
define gb_JunitTest_JunitTest
define gb_JunitTest_set_defs
define gb_JunitTest_add_classes
define gb_JunitTest_add_class
define gb_JunitTest_add_sourcefile
define gb_JunitTest_add_sourcefiles
define gb_JunitTest_use_jar
define gb_JunitTest_use_jars
define gb_JunitTest_use_jar_classset
define gb_JunitTest_add_classpath
define gb_JunitTest_use_system_jar
define gb_JunitTest_use_system_jars
define gb_JunitTest_use_external
define gb_JunitTest_use_externals
define gb_JunitTest_use_customtarget
define gb_JunitTest_use_customtargets
define gb_JunitTest_use_unoapi_jars
define gb_JunitTest_use_unoapi_test_class
define gb_JunitTest_set_unoapi_test_defaults
define gb_JunitTest_JunitTest

To stick to the macros used in the above example, I describe these macros:

gb_JunitTest_add_sourcefiles: This macro adds a Java source file to the test. It defines the code that adds the sw/qa/complex/indeterminateState/CheckIndeterminateState.java to the test. But please note that you should drop the .java extension:

$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \
))

The other macro gb_JunitTest_use_unoapi_jars, adds the UNO API JAR files to be used with the test.

And in the end, you need to add the test class name using gb_JunitTest_add_classes macro. The class name is visible in the end.

The result can be quite complex, but it works. 🙂

java.exe -Xmx64M -classpath "$W/JavaClassSet/JunitTest/sw_complex;C:/cygwin64/home/user/lode/opt/share/java/junit.jar;$I/program;$W/Jar/OOoRunner.jar;$I/program/classes/libreoffice.jar;$W/Jar/test.jar" -Dorg.openoffice.test.arg.soffice="path:$I/program/soffice" -Dorg.openoffice.test.arg.env=PATH="$PATH" -Dorg.openoffice.test.arg.user=file:///$W/JunitTest/sw_complex/user org.junit.runner.JUnitCore complex.indeterminateState.CheckIndeterminateState

The above is the actual command that runs the test. Please note that if you forget the gb_JunitTest_add_classes macro to define the class name, the test may compile, but it will not run.

As an example, you can see the below patch. This patch fixes the problem of the JUnit test not running:

Final Words

Many macros are available in gbuild, making easier to create Makefiles to compile and run tests, build libraries and executable applications and many other relevant tasks. The best way to find and understand these macros is to look at the Makefiles written by others to the same task. Look for .mk files, and if you want to see the implementation of the macros, look into solenv/gbuild/.

I will write more about gbuild macros in the next series of blog posts on gbuild.

by Hossein Nourikhah at February 04, 2024 11:42 AM

January 25, 2024

LibreOffice Dev Blog

gbuild tips and tricks – LibreOffice build system part 2

In the first blog post on LibreOffice build system, gbuild which uses GNU Make, I discussed some of the features of it. Here I discuss more about some gbuild tips and tricks that you may need.

Building a Single Module

In order to build a single module, you need to use its name. For example, to build only “odk”, which contains office development kit, you only have to type:

make odk

On the other hand, there are many other build targets associated with odk. By typing make odk, and then pressing tab, you will see this list, which shows possible targets:

odk odk.buildall odk.perfcheck odk.uicheck odk.all odk.check odk.screenshot odk.unitcheck odk.allbuild odk.checkall odk.showdeliverables odk.allcheck odk.clean odk.slowcheck odk.build odk.coverage odk.subsequentcheck

Each of the above is related to a specific task, in which many of them are common on different modules. Let’s discuss some of them:

make odk -> Builds odk module.

make odk.clean -> Cleans the odk module, removing the generated files.

make odk.check -> Runs test in odk module

make odk.uicheck -> It runs UI tests inside odk module

make odk.perfchek -> Runs performance/callgrind tests inside odk module

make odk.screenshot -> Creates screenshots inside odk module

To get a complete list and detailed description, run make help.

Handling Incomplete Builds

Sometimes because of OS crash or power outage, you may face problems when a build is stopped forcefully. In that case, you may see several zero byte object (*.o) files that exist, and prevent a successful build. In that case, you can find and remove them using this command:

$ rm `find -name *.o -size 0`

After that, you can retry your build without the above problem.

Customizing Build Configuration

The process of creating Makefile starts from configuring LibreOffice for build. This is done by invoking ./autogen.sh. The configuration parameters are read from autogen.input. The build configuration is done via configure.ac, which is an input for GNU autoconf.

There are various steps before the Makefiles are generated. For example, in order to make sure that a library is there when configuring the build, a very small C/C++ file is created, compiled and tested to ensure that the library is ready, and available to use with C/C++ code.

It is also possible to check for some specific version of library, and available functions. As an example, see this patch, which checks for specific version of ZXing library:

In the above example, multiple situations are handled:

1) When there is no ZXing library

2) When system ZXing library is used

And also, it is checked that specific version of ZXing is available:

1) When ZXing::ToSVG is not usable

2) When ZXing::ToSVG is usable

Then, the HAVE_ZXING_TOSVG symbolic constant is used in config_host/config_zxing.h.in, which can be used in C++ code.

Knowing More About gbuild

If you are interested in knowing more about gbuild, you can start from my first post on gbuild in this blog. I plan to write more about gbuild, and describe some of the frequently used macros.

Also, you can take a look at the article devoted to gbuild in the TDF Wiki:

by Hossein Nourikhah at January 25, 2024 03:04 PM

Marius Popa Adrian

Firebird 5.0 Is Released

Firebird Project is happy to announce general availability of Firebird 5.0 — the latest major release of the Firebird relational database for Windows, Linux, MacOS and Android platforms.This release introduces improvements in areas of performance, multithreaded processing (including backup, restore, sweep), SQL queries profiling, with better scalability and numerous enhancements in SQL

by Popa Adrian Marius (noreply@blogger.com) at January 25, 2024 10:29 AM

January 16, 2024

LibreOffice QA Blog

LibreOffice 24.2 RC2 is available for testing

LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the Release Plan ) being LibreOffice 24.2 Release Candidate 2 (RC2) the forth pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 RC1, 113 commits have been submitted to the code repository and 61 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 24.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!

by x1sc0 at January 16, 2024 03:59 PM

January 12, 2024

LibreOffice Design Blog

Comments in Sidebar

Using comments is a key feature in text processing. A typical workflow might be to review a document where notes are made by different colleagues. LibreOffice Writer currently shows these comments in the document margin, which is limited to the page height, ending up in the need to scroll long text (even while editing [1]) and eventually in paging-like interactions if the number of comments exceed the total size.…

by Heiko Tietze at January 12, 2024 01:22 PM

LibreOffice QA Blog

QA/Dev Report: December 2023

General Activities

  1. LibreOffice 7.5.9 and 7.6.4 were announced on December 7
  2. Olivier Hallot (TDF) updated menu item paths in Help pages and updated and restructured dozens of help pages
  3. Rafael Lima fixed line count width in Writer file properties dialog, added a button leading to Download page in the dialog showing up if trying to access Help without offline files available and made it possible to enter edit mode for comments in Calc via Navigator. He also updated ScriptForge help and added a Help page about installing offline Help
  4. Stanislav Horacek did many fixes and cleanups in Help pages
  5. Ilmari Lauhakangas (TDF) made it so multi-selection is no longer possible in Start Center as it is not actionable. He also streamlined the navigation layout of Help
  6. Stéphane Guillou (TDF) linked Sidebar decks to Help and did other Help updates
  7. Alain Romedenne updated ScriptForge help pages
  8. Dione Maddern updated Help for Draw’s Consolidate Text functionality
  9. Sophia Schröder did many cleanups in Help
  10. Gábor Kelemen (allotropia) added support for XF86Forward / XF86Back key events for use in Impress slideshows and did code cleanups in the area of unused config keys and includes
  11. Laurent Balland did many fixes in Impress templates, collaborating with Jérôme Bouat
  12. Miklós Vajna (Collabora) worked on multi-page floating tables in Writer. He also updated pdfium and did fixes to automated tests
  13. Jean-Pierre Ledure worked on the ScriptForge library
  14. Michael Meeks (Collabora) fixed a deadlock
  15. Szymon Kłos, Áron Budea and Gökay Şatır (Collabora) worked on LOKit used by Collabora Online
  16. Nick Wingate (Collabora) added an option to define ranges when exporting Calc sheets to PDF
  17. Henry Castro (Collabora) made it so an error dialog pops up in Calc, if trying to insert a row after the maximum one
  18. Eike Rathke (Red Hat) fixed an issue with unwanted deletion of data ranges in Calc
  19. Tomaž Vajngerl (Collabora) streamlined the OOXML import of headers/footers in page styles, made handling of embedded SVGs in FODT files more robust and added support for writing SVG images into OOXML using the MS OOXML extension. He also did lots of refactoring in the EditEngine text editing code
  20. Julien Nabet fixed an issue with changing field options in Firebird databases, implemented more user management functionality for MySQL and MariaDB databases, made colour handling more robust in sparklines, fixed an issue with stepped line types in XY scatter charts and fixed StepTime being ignored with AnimatedImages in Basic Dialog (together with bug reporter Jurassic Pork). He also fixed crashes and many issues found by static analysers and did many code cleanups
  21. Andreas Heinisch made Mail Merge more robust with regards to database names
  22. László Németh continued polishing support for smart justify found in DOCX files and fixed an issue with soft hyphens not being displayed in text boxes and shapes
  23. Xisco Faulí (TDF) did many improvements and additions to automated tests and fixed regressions
  24. Michael Stahl (allotropia) revamped ODF encryption resulting in much faster saving and loading, better resistance to tampering, better hiding of metadata and higher resistance to brute forcing. He also fixed a Writer crash related to text formatting of group shapes anchored as character
  25. Mike Kaganski (Collabora) continued polishing the handling and detection of broken ZIP packages (document containers), improved the load time of DOCX files with hundreds of images, fixed issues with incorrect Math formula font size and Escape key not closing formula editor (not in any released version), fixed undoing the first applied cell formatting in Calc, fixed an issue with unwanted extra empty paragraphs appearing after a table before a section break in DOCX files, made line breaking in Writer behave according to Unicode Line Breaking Algorithm rules, fixed an issue with line breaks in justified right aligned text and fixed an issue with applying Calc cell styles. He also fixed many crashes and did many code cleanups and improvements to automated tests
  26. Caolán McNamara (Collabora) optimised Calc’s performance and fixed many issues found by static analysers and fuzzers
  27. Stephan Bergmann (allotropia) worked on the online update feature. He also did many code cleanups and adapted the code to compiler changes
  28. Noel Grandin (Collabora) continued polishing the renovation of bitmap alpha handling. He also did many code cleanups and optimisations
  29. Justin Luth (Collabora) made it so the Select Outline Format split button in the Properties Sidebar deck in Writer now opens Bullets and Numbering dialog and its Outline tab, if you click on the button part, fixed handling of legacy dropdown fields direct bold and char settings in DOCX and RTF files, fixed a page break issues in RTF import, made it so there is no longer a possibility to get into a restart/reinstall loop after installing an extension and fixed an issue with losing selection in Writer after right-clicking the last half character
  30. Michael Weghorn (TDF) made it so listboxes don’t take mouse wheel input, if mouse is not positioned over them and fixed accessibility issues in areas such as heading levels and checkable items. He also did many updates and cleanups to the LibreOffice Android Viewer code
  31. Balázs Varga (allotropia) fixed an issue causing a huge number of unwanted master slides appearing in PPTX import and continued working on proper indications for locked down items in Options
  32. Patrick Luby (NeoOffice) continued improving the scrolling performance on macOS, fixed an issue causing unwanted horizontal scrolling in Calc on macOS, eliminated flickering upon window resizing in macOS with Skia/Metal and fixed clipboard contents causing trouble with clipboard recorders on macOS. He also fixed some macOS crashes
  33. Jim Raykowski made comment threads appear grouped in the Navigator, made images with broken links easier to find in the Navigator and implemented a feature to identify the objects in a layer by hovering with the mouse over layer tabs
  34. Sarper Akdemir (allotropia) added an option to disable active content such as DDE commands and OLE objects
  35. Christian Lohmaier (TDF) fixed a Windows AARCH64 build issue
  36. Chris Sherlock refactored text rendering code
  37. Regina Henschel implemented curved connector routing method used in OOXML files
  38. Sahil Gautam continued polishing the feature for highlighting the current row and column in spreadsheets
  39. Irgaliev Amin improved math formula compatibility with Microsoft Office
  40. Samuel Mehrbrodt (allotropia) did many improvements to the Expert Configuration and macro signature confirmation dialogs and made it so dialog button accelerators work without Alt key on Windows
  41. Thorsten Behrens (allotropia) did code and build cleanups, for example improving build reproducibility
  42. Armin Le Grand (allotropia) continued with the rework of handling attributes and properties
  43. Oliver Specht (CIB) fixed issues with numbering losing its text colour in DOCX import, handling toggled text formatting properties in DOCX files, paragraphs imported without numbering from RTF files, list of Calc comments not updating automatically and checkbox sizes being imported wrong from RTF files
  44. Matt K fixed displaying dialogs in Calc’s full screen mode
  45. Martin Gube added an automated test
  46. Taichi Haradaguchi updated some dependencies
  47. René Engelhard did some build fixes
  48. David Gilbert did code cleanups
  49. Adam Seskunas added an automated test
  50. Andras Timar (Collabora) fixed shape colour not being imported in Visio files
  51. Ricardo Donino ported a Draw Java SDK example to Python
  52. Theppitak Karoonboonyanan added Thai AutoCorrect data
  53. Jonathan Clark made it so BASIC CCur function obeys locale setting
  54. Li Yang improved menu highlight text colour in high contrast mode on Windows
  55. Arnaud Versini did some code cleanups

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

453 bugs, 71 of which are enhancements, have been reported by 283 people.

Top 10 Reporters

  1. Gabor Kelemen (allotropia) ( 33 )
  2. Telesto ( 17 )
  3. Jérôme ( 16 )
  4. Eyal Rozenberg ( 11 )
  5. Rafael Lima ( 11 )
  6. Xisco Faulí ( 9 )
  7. Stéphane Guillou (stragu) ( 8 )
  8. Tracey ( 6 )
  9. Regina Henschel ( 6 )
  10. William Friedman ( 6 )

Triaged Bugs

412 bugs have been triaged by 64 people.

Top 10 Triagers

  1. Stéphane Guillou (stragu) ( 79 )
  2. m.a.riosv ( 58 )
  3. Heiko Tietze ( 27 )
  4. Buovjaga ( 26 )
  5. Julien Nabet ( 23 )
  6. raal ( 21 )
  7. Xisco Faulí ( 19 )
  8. Dieter ( 18 )
  9. ady ( 18 )
  10. V Stuart Foote ( 14 )

Resolution of resolved bugs

438 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

153 bugs have been fixed by 32 people.

Top 10 Fixers

  1. Mike Kaganski ( 14 )
  2. Balazs Varga ( 11 )
  3. Patrick Luby ( 8 )
  4. Julien Nabet ( 8 )
  5. Laurent Balland ( 8 )
  6. Caolán McNamara ( 7 )
  7. Justin Luth ( 6 )
  8. Noel Grandin ( 6 )
  9. Samuel Mehrbrodt ( 6 )
  10. Rafael Lima ( 3 )

List of critical bugs fixed

  1. tdf#154339 Plain text copied to clipboard and pasted to CSV is not saved. ( Thanks to Xisco Fauli )

List of high severity bugs fixed

  1. tdf#123396 LO Writer automatically replaces SVGs embedded in FODT files with an embedded low-resolution PNGs and drops the SVGs from the documents ( Thanks to Tomaž Vajngerl )
  2. tdf#123864 No feedback for screen reader when radio button for underline attribute changes ( Thanks to Michael Weghorn )
  3. tdf#154044 Undoing the first applied cell formatting only works for column A ( Thanks to Mike Kaganski )
  4. tdf#155266 VIEWING / SCROLLING: very laggy jerky scrolling on macOS Intel Writer: scroll lag ( Thanks to Patrick Luby )
  5. tdf#157915 Error UNO type of C++ when running a Basic macro with instruction commitChanges for org.openoffice.Office.Commands/Execute/Disabled ( Thanks to Noel Grandin )
  6. tdf#158223 Charts: Data range will be deleted when deleting following sheet ( Thanks to Eike Rathke )
  7. tdf#158379 Crash when trying to print specific RTF file (macOS) ( Thanks to Patrick Luby )
  8. tdf#158551 Crash in: mdds::mtv::soa::multi_type_vector::cbegin() const on Paste Special with Operation ( Thanks to Julien Nabet )
  9. tdf#33201 UI: Highlight (not select) current row and column in spreadsheet ( Thanks to Sahil )
  10. tdf#60558 FILEOPEN DOCX: floating table w/parallel wrap followed by an inline table doesn’t wrap beside in empty space on right ( Thanks to Miklos Vajna )

List of crashes fixed

  1. tdf#140401 LibreOffice crashed due to custom installed fonts ( Thanks to Patrick Luby )
  2. tdf#156820 Crash when changing color with custom colour picker accessed from overflowing toolbar ( Thanks to Noel Grandin )
  3. tdf#158379 Crash when trying to print specific RTF file (macOS) ( Thanks to Patrick Luby )
  4. tdf#158450 Crash when picking custom colour for column separator line ( Thanks to Caolán McNamara )
  5. tdf#158505 Crash exporting Writer file with bibliography to PDF ( Thanks to Vojtěch Doležal )
  6. tdf#158551 Crash in: mdds::mtv::soa::multi_type_vector::cbegin() const on Paste Special with Operation ( Thanks to Julien Nabet )
  7. tdf#158593 Expert dialog crashes when editing locked down “set” configuration ( Thanks to Stephan Bergmann )
  8. tdf#158686 FILEOPEN RTF Crash when changing to print preview ( Thanks to Miklos Vajna )
  9. tdf#158703 Crash if I use the space bar several times and then punctuation (French Locale) ( Thanks to Mike Kaganski )
  10. tdf#158720 Crash for attribute string search (“oo”, “uno”, “ooname”) in the Expert Configuration dialog ( Thanks to Samuel Mehrbrodt )
  11. tdf#158794 Pasting a DDE link into a footnote / endnote crashes ( Thanks to Mike Kaganski )
  12. tdf#158837 Crash in: int rtl::str::indexOfStr_WithLength(char16_t const*, int, char16_t const*, int) ( Thanks to Noel Grandin )
  13. tdf#158862 LibreOffice crashes when attempting to inspect a UNO object in the Watch Window during debugging after successful initial inspection. ( Thanks to Mike Kaganski )

List of old bugs ( more than 4 years old ) fixed

  1. tdf#111969 right-click on right half of last character in selection loses the selection (Writer) ( Thanks to Justin Luth )
  2. tdf#117651 AutoCorrect does not change preexisting text inside /slashes/ to italics, nor change -strikethrough- ( Thanks to Matt K )
  3. tdf#123396 LO Writer automatically replaces SVGs embedded in FODT files with an embedded low-resolution PNGs and drops the SVGs from the documents ( Thanks to Tomaž Vajngerl )
  4. tdf#123864 No feedback for screen reader when radio button for underline attribute changes ( Thanks to Michael Weghorn )

by x1sc0 at January 12, 2024 12:14 PM

January 09, 2024

LibreOffice QA Blog

LibreOffice 24.2 RC1 is available for testing

LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the Release Plan ) being LibreOffice 24.2 Release Candidate 1 (RC1) the third pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 Beta1, 158 commits have been submitted to the code repository and 59 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 24.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!

by x1sc0 at January 09, 2024 09:29 AM

January 03, 2024

LibreOffice Dev Blog

Outlook for the new year 2024

Now that year 2024 has come, I want to briefly discuss the year 2023 around the development blog, and the outlook for 2024 here.

My goal is to help people understand LibreOffice code better, and ultimately get involved in LibreOffice core development to make LibreOffice better for everyone. In 2023, I wrote 23 posts around LibreOffice development in the dev blog (3 of them are unpublished drafts).

At The Document Foundation (TDF), our aim is to improve LibreOffice, the leading free/open source office software that you and many other people around the world use. Our work is community-driven, and we need your help.

LibreOffice conference 2023

LibreOffice conference 2023

Outlook For the New Year

My focus for 2024 in this blog will be:

  1. Introducing new EasyHacks
  2. Discussing how to fix crashes
  3. Explaining LibreOffice architecture
  4. Describing user interface creation with VCL
  5. Explaining LibreOffice extensions

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

I 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.

I hope the best for you in the new year 2024.

by Hossein Nourikhah at January 03, 2024 03:32 PM

Miklos Vajna

Multi-page floating tables in Writer: tables wrapping tables

This post is part of a series to describe how Writer now gets a feature to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the 10th post for the previous part.

Motivation

Previous posts described the hardest part of multi-page floating tables: making sure that text can wrap around them and they can split across pages. In this part, we'll look at a case where that content is not just text, but the wrapping content itself is also a table.

Results so far

Regarding testing of the floating table feature in general, the core.git repository has 92 files now which are focusing on correct handling of floating tables (filenames matching floattable-|floating-table-). This doesn't count cases where the document model is built using C++ code in the memory and then we assert the result of some operation.

Here are some screenshots from the improvements this month:

Improved click handling near the first page of a floating table

The first screenshot shows a situation where the mouse cursor is near the right edge of the first page of a floating table. What used to happen is we found this position close to the invisible anchor of the floating table on that page, then corrected this position to be at the real anchor on the last page. In short, the user clicked on one page and we jumped to the last page. This is now fixed, we notice that part of the floating table is close to the click position and we correct the cursor to be at the closest position inside the table's content.

A floating table, wrapped by an inline table: old, new and reference rendering

The next screenshot shows a floating table where the content wrapping around the table happens to be an inline table. You can see how such wrapping didn't happen in the past, and the new rendering is close to the reference now.

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 snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. 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 (24.8).

by Miklos Vajna at January 03, 2024 02:15 PM

December 18, 2023

Marius Popa Adrian

Call For Testing Firebird ODBC Driver for Firebird 3.x

The new version of Firebird ODBC driver is in Beta stage now. Version 3.0.0 Beta is available for testing on Windows. It works only with Firebird 3+ , and requires fbclient.dll from Firebird 3 or above.https://github.com/FirebirdSQL/firebird-odbc-driver/wikiPlease download, test, and report any issues!Issues can be reported here: https://github.com/FirebirdSQL/firebird-odbc-driver/issuesOriginal

by Popa Adrian Marius (noreply@blogger.com) at December 18, 2023 07:20 PM

December 13, 2023

LibreOffice QA Blog

LibreOffice 24.2 Beta1 is available for testing

LibreOffice 24.2 – with a new year.month versioning scheme – will be released as final at the beginning of February, 2024 ( Check the Release Plan ) being LibreOffice 24.2 Beta1 the second pre-release since the development of version 24.2 started in mid June, 2023. Since the previous release, LibreOffice 24.2 Alpha1, 425 commits have been submitted to the code repository and 137 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 24.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!

by x1sc0 at December 13, 2023 12:37 PM

December 04, 2023

Miklos Vajna

Multi-page floating tables in Writer: UI improvements

This post is part of a series to describe how Writer now gets a feature to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the 9th post for the previous part.

Motivation

Previous posts described the hardest part of multi-page floating tables: reading them from documents, so we layout and render them. In this part, you can read about UI improvements when it comes to creating, updating and deleting them in Writer.

Results so far

Regarding testing of the floating table feature in general, the core.git repository has 89 files now which are focusing on correct handling of floating tables (filenames matching floattable-|floating-table-). This doesn't count cases where the document model is built using C++ code in the memory and then we assert the result of some operation.

Here are some screenshots from the improvements this month:

Improved insertion of floating tables

The first screenshot shows that the underlying LibreOffice Insert Frame dialog is now async (compatible with collaborative editing) and is now exposed in the Collabora Online notebookbar.

There were other improvements as well, so in case you select a whole table and insert a new frame, the result is close to what the DOCX import creates to floating tables. This includes a default frame width that matches the table width, and also disabling frame borders, since the table can already have one.

Unfloating a floating table

The next screenshot shows an inserted floating table, where the context menu allows updating the properties of an already inserted floating table, and also allows to delete ("unfloat") it.

Several of these changes are shared improvements between LibreOffice and Collabora Online, so everyone benefits. For example, inserting a frame when a whole table was selected also cleared the undo stack, which is now fixed. Or unfloating table was only possible if some part of the table was clipped, but now this is always possible to do.

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 snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. 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 (24.2).

by Miklos Vajna at December 04, 2023 03:26 PM

November 19, 2023

Stephan Bergmann

I like it here. Can I stay?

(And do you have a vacancy for a back-scrubber?)

Thank you, Red Hat, for generously letting me work for so long on stuff that is near and dear to my heart. At the intersection of theory and practice, of compiler technology and the LibreOffice code base. But, to keep doing what I love, I need to move on.

So, thank you, allotropia, for having me. I’m excited.

And, above all, thank you, LibreOffice, family of friends. Lets make sure to keep this a happy family, one that Tolstoy would have nothing to write home about. With quarrels and arguments, for sure; feud even. But happy at heart. I wish to keep meeting you all for years to come, virtually, and for a feast at FOSDEM or LOCon. And booze.

To paraphrase Hamburger Tafel (donations needed, btw), “Wir haben LibreOffice noch lange nicht satt.”

Have fun, stay safe, peace,
sberg

by stbergmann at November 19, 2023 10:58 AM

November 12, 2023

Robert Riemann

Is developing word processing software hard?

Hello LibreOffice Planet!

This is my first blog post on the topic of LibreOffice. Let me quickly explain my link to LibreOffice. I work for a data protection authority in the EU and help navigate the digital transformation of our office with about 100 staff members. While many of our partner organisations adopt Microsoft 365, our office decided to pilot Nextcloud with Collabora Office Online.

In the future, I want to blog (in my personal capacity) about my thoughts related to the use of alternative word processing software in the public sector in general and in our specific case.

As there are no dedicated resources for training, preparation of templates etc., during the pilot of LibreOffice, the experience so far covers a large spectrum of user satisfaction. Generally, our staff has been spent years of their life using Microsoft Office and has the expectation that any other software works the same way. If it does not, they send an email to me (best case) or switch back to Microsoft Office.

During the week, I discussed again some smaller LibreOffice bugs. Then, I showed this weekend some FOSS Blender animated short videos to family members. It seems that Blender is more successful in its domain than LibreOffice. Is that possible? Or are animated short videos just more capturing due to their special effects? 😅

You can watch the 1min Blender animated short movie “CREST� on Youtube or the making-off. The latter you find here below.

I find it very inspiring to see what talented artists can do with Blender. For my part, I have once installed Blender and deinstalled it. Back then it was not easy to use for people not familiar with video animation software. Blender competes with proprietary software such as Maya or Cinema 4D. The latter is about 60 USD per month in the annual subscription plan. Not exactly cheap.

Then, I read in the fediverse about people working with LibreOffice:

I just tried to use #LibreOffice #Draw to draw some arrows and boxes onto JPEG images for emphasizing stuff.

The UX is really bad for somebody not working with Draw all the time.

Whatever I do, instead of drawing onto the image, the image gets selected instead.

Could not find any layer-sidebar.

Could not scale text without starting the “Character …� menu, modifying font size blindly + confirming > just to see its effect and then start all over.

Dear #FOSS, we really should do better.

— Author Karl Voit (12 November 2023 at 14:51)

In my past, I have worked on online voting systems. They are not very good yet despite years of efforts. xkcd dedicated a comic to voting software

Elections seem simple—aren’t they just counting? But they have a unique, challenging combination of security and privacy requirements. The stakes are high; the context is adversarial; the electorate needs to be convinced that the results are correct; and the secrecy of the ballot must be ensured. And they have practical constraints: time is of the essence, and voting systems need to be affordable and maintainable, and usable by voters, election officials, and pollworkers.

— Author Matthew Bernhard et al. in their paper Public Evidence from Secret Ballots from 2017

What is the unique challenge of developing word processing software? Happy to hear back from you in the blog comments or on the companion fediverse post!

by Robert Riemann (robert@riemann.cc) at November 12, 2023 10:20 PM

November 07, 2023

Miklos Vajna

Multi-page floating tables in Writer: wrap on all pages

This post is part of a series to describe how Writer now gets a feature to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the 8th post for the previous part.

Motivation

Multi-page floating tables always wrapped their anchor text only on the last page, to be compatible with Word's default behavior. There is a special flag in DOCX files to wrap on all pages, though. In this part, you can read about handling of this flag in Writer.

Results so far

Regarding testing of the floating table feature in general, the core.git repository has 84 files now which are focusing on correct handling of floating tables (filenames matching floattable-|floating-table-). This doesn't count cases where the document model is built using C++ code in the memory and then we assert the result of some operation.

Here are some screenshots from the fixes this month:

Old, new and reference rendering of a 3 nested, multi-page floating tables

The first screenshot shows a case where multi-page floating tables are nested. For this document, we not only have an inner and an out table, but we also have a middle one, giving us 3 nesting tables. Some of the inner table frames had a bad position, leading to overlapping text, now fixed.

Old, new and reference rendering of wrapping on all pages

The next screenshot shows the case where the magic allowTextAfterFloatingTableBreak flag is set. We used to wrap content of the anchor only on the last page, unconditionally. Now we either wrap on the last page (default) or on all pages (when this flag is present).

Old, new and reference rendering of overlapping floating tables.

The last screenshot shows a document full of floating tables. These used to be inline ones, and then they could not overlap by definition, but now extra effort was needed to position them in a way that no overlap happens between the tables. Now our render result matches Word.

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 snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. 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 (24.2).

by Miklos Vajna at November 07, 2023 01:35 PM

November 01, 2023

Marius Popa Adrian

Valgrind 3.22 is available

News via reddit : "We are pleased to announce a new release of Valgrind, version 3.22.0,available from https://valgrind.org/downloads/current.html.See the release notes below for details of changes.Our thanks to all those who contribute to Valgrind's development. Thisrelease represents a great deal of time, energy and effort on the partof many people.Happy and productive debugging and

by Popa Adrian Marius (noreply@blogger.com) at November 01, 2023 02:01 PM

October 27, 2023

Naruhiko Ogasawara

LOUCA23 (LibreOffice Conference Asia x UbuCon Asia 2023)

Long time no see, readers!  Very sorry for my laziness.


I attended LibreOffice Conference Asia x UbuCon Asia 2023 (LOUCA23) in Surakarta, Indonesia, on October 7~8.

This was the second time LibreOffice Conference Asia has been held in Tokyo in 2019, as it could not occur due to the COVID-19 pandemic.  UbuCon Asia was first held online in 2021, and the first in-person event was held in Seoul, Korea in 2022, and this still was the second in-person event.

I was burnt out by the pandemic and had stopped most of my OSS activities, but I still had many friends in the OSS world, so I went to Indonesia to meet with them.  

Therefore, I had initially intended to be a general participant.  Still, a friend of the speaker was suddenly unable to attend due to illness, so I gave a presentation in his place.  Here is my slide:

As mentioned, I am halfway out of OSS activities, but I know what my friends are doing, so it was not so difficult to talk about this subject.

Although I cannot say that the presentation itself was a great success (due to my English language skills), I was pleased because the audience was very responsive and easy to talk to, and many people approached me after the presentation was over.

Other than my presentation, I was naturally interested in the two keynote speeches by The Document Foundation and was surprised and grateful when Franklin Weng mentioned my name as an "Asian activist to be featured at the LibreOffice Latin America Conference. "

I listened to Muhammad Syazwan Md Khusaini's "Hands-On on Translating in Ubuntu" with great interest; however, I was a bit surprised to hear from a friend that many Indonesians use English for desktop environments and applications like LibreOffice.  I recognized that this was quite different from Japan.

The event itself was just as enthusiastic. Unlike OSS events in Japan (laugh), the participants were young, and there were many women. I was also surprised to see junior high school students among the speakers.

Both lunch and dinner were complimentary, and the one-day Surakaruta city tour the day after the event was delightful.  I appreciated the hospitality of the local staff.

This was my first time in Indonesia, and although short, I enjoyed many things, including the train trip. In Yogyakarta, I visited a museum and learned a lot about the history of Indonesia. However, I was overcharged by the tuk-tuk in Yogya.



I know it was a lot of work for the organizers, but as I have many friends in LibreOffice and am also an Ubuntu user, I was very grateful that the two events were co-hosted. Thanks to all the sponsors, global/local organizers, and everyone who talked to me there.  See you soon!


by Naruhiko Ogasawara (noreply@blogger.com) at October 27, 2023 01:13 PM

October 11, 2023

Marius Popa Adrian

Firebird 5.0 Release Candidate 1 is available for testing

Firebird Project announces the first Release Candidate of Firebird 5.0, the next major version of the Firebird relational database, which is now available for testing on all supported platforms (Windows, Linux, MacOS, Android).This Release Candidate demonstrates the complete set of features and improvements developed for the new release. Release Candidates are generally considered stable enough

by Popa Adrian Marius (noreply@blogger.com) at October 11, 2023 02:47 PM

Flamerobin 0.9.9 Snapshot released with a few fixes

Flamerobin 0.9.9 Snapshot released with a few fixesWhat’s Changed :Fix Mac OS compilation by @rlakis in #328Fix saving style error and code scanning alert by @arvanus in #330Improve SQL statistics by @arvanus in #331New Contributors :@rlakis made their first contribution in #328

by Popa Adrian Marius (noreply@blogger.com) at October 11, 2023 02:46 PM

August 26, 2023

Bayram Çiçek

Final Report - Google Summer of Code 2023 - Search Field in Options

About project

LibreOffice is a complex application with a large and growing number of options. It is not easy to find the right needle in the haystack. Like most other complex applications, it will be valuable and useful enhancement to add a search field to the “Tools > Options” dialog that iterates over the various tabs and filters where the search text is found. The Search Field in Options project aims to provide this search functionality in “Tools > Options” page.

Tasks

  •   Add search field to Options dialog - UI
  •   Implement search function
  •   Include Options TreeView’s parent and child node names into searching
  •   Add GetAllStrings() method to fetch strings from 69 dialogs step by step
  •   Include following element strings into searching:
    •   labels
    •   check buttons
    •   radio buttons
    •   toggle buttons
    •   link buttons
    •   buttons
  •   Include accessibility elements into searching:
    •   accessible-names
    •   accessible-descriptions
    •   tooltip-texts
  •   Include option pages from extensions into searching
  •   Initialize all dialogs at background if it’s possible (salhelper::Thread - asynchronously)
  •   Initialize all dialogs to get strings properly (not in background - synchronously)
    •   initialize ~half of them after opening the options
    •   and initialize remaining ones after doing a search
  •   Update Options TreeView properly after the searching done
  •   Expand the first node and select first child-node after search by default
  •   Remove Hyphen (_) and Tilde (~) symbols from fetched strings to make the search function work correctly

My Work during GSoC

During 13 weeks GSoC program, I added a search field in Options dialog and included the node names and their .ui strings into searching. Since sub-dialogs under the Options are not initialized at startup of Options dialog, it was not possible to access their .ui strings. To overcome this issue we had two options:

  • Option A: Extract .ui strings at build-time and fetch them at run-time
    This option requires working on file operations, LibreOffice’s build system, makefiles, localization etc. I worked on this option for ~5 weeks but this approach caused a lot of issues that took the project out of its scope. For example, how to deal with localization issue while extracting strings at build-time? This was another big problem…
  • Option B: Initialize all dialogs in some way and get their strings
    This option is more understandable and simple. Instructions are clear. No need to worry about localization. No need to work on file operations, extracting and fetching data, working with makefiles etc…

When I felt that Option A is just wasting my time (~5 weeks); I switched to Option B where I can -at least- make some progress. The main issue in Option B was initializing all dialogs which takes about 4-8 secs. I tried to initialize them at background but there was some errors on Win10 that I don’t reproduce the issue on my linux machine. Then I tried to see the errors on Win10 with a virtual machine, but it was too slow to test. Therefore I uninstalled Manjaro/Linux (which I’ve been using it more than 1.5 years) from my computer and had to install Win10 (which I last used 6 years ago) on my machine to see the problems in there. There was some visual inconsistencies while initializing sub-dialogs using salhelper::Thread at background.

After working long hours for weeks meanwhile the time was running out, I decided to initialize almost half of them at Options dialog startup and the remaining ones at the time of searching. In that way, time of initializing process is divided by ~2 which can be acceptable time in some degree in terms of user experience.

There is a single patch on Gerrit for this project: https://gerrit.libreoffice.org/c/core/+/152519. The patch has more than 30 patchsets and includes “+2255 -47” changes.

The most challenging part was implementing GetAllStrings() function for every ~69 dialogs step by step. Current implementation may not be the best solution for user experience, but at least searching through the numerous options is now possible.

options-dialog-on-Win10.png

Whats left to do or can be done?

Following tasks are left and can be implemented after GSoC:

  •   Include accessibility elements into searching:
    •   accessible-names
    •   accessible-descriptions
    •   tooltip-texts
  •   Include option pages from extensions into searching
  •   Initialize all dialogs at background if it’s possible (salhelper::Thread - asynchronously)

Additional hacks

  • Show modified options with some special indicator (as in KDE settings). (better to discuss this idea in a separate ticket)
  • Implement highlighting feature

Tasks I’ll be working on after GSoC

  • improvement on the initialization of the dialogs, maybe it can be possible to initialize them at background without encountering any visual inconsistencies - especially on Windows.
  • Implementing the remaining tasks:
    • Include accessibility elements into searching
    • Include option pages from extensions into searching
  • If everything works fine I’d like to work on the highlighting feature
  • Also it would be prettier if Options dialog have a modified options indicator (as in KDE settings)

Thanks

I’m very happy that we all reached the end of GSoC. During that time, I know that I had a responsibility for doing everything that I can. Therefore I worked hard and tried to complete as much tasks as I can.

I learned a lot of things during the GSoC. Although GSoC is finished, I will definitely continue to contribute to LibreOffice. I am really happy to be a part of the LibreOffice community and Google Summer of Code. I’m really thankful to LibreOffice and Google for providing us this such a great opportunity which helped me gain this amazing experience!

I always tried to be active on IRC #libreoffice-dev channel, and I want to thank for everybody who helped me about my questions.

And most importantly, greatly thankful to Andreas Heinisch and Heiko Tietze who were my mentors throughout the GSoC period. They always guided me everything about my questions. Thank you endlessly for your time and effort. I appreciate that you always motivating and encouraging me in all that I attempt and do. I can never truly express how grateful I am. Your guidance, reviews, help and shared experiences have been invaluable. Thank you very much for everything.

I’d like to express my gratitude to everyone in the LibreOffice community for their help and kindness. They always tried to answer my questions on IRC. I fell very lucky to work with this amazing community. I have learned a lot from you and I will never forget this wonderful experience.

Regards,
Bayram Çiçek

All weekly GSoC reports:

Useful links:

# free as in freedom

by Bayram Çiçek at August 26, 2023 09:00 AM

August 25, 2023

Ahmed Gamal Eltokhy

Final Report

The past four months working on LibreOffice for Google Summer of Code 2023 have been an amazing learning experience. With the help of mentors Thorsten, Heiko, and Hossein, I implemented features to improve the user experience around digital signing and encryption like remembering recipients, better recipient selection UI, fast searching/filtering of keys, and documentation. My 12 patches were merged and it was incredible contributing to open source with the friendly LibreOffice community. I look forward to more FOSS contributions in the future!

August 25, 2023 12:25 PM

August 23, 2023

Caolán McNamara

Small Caps in Impress

Writer supports Small Caps, but Impress and drawing shapes in general never fully supported Small Caps. The option was available, and the character dialog provided a preview, but Small Caps was rendered the same as All Caps, as seen here.

 This has lingered for years and it's not easy as a user to try and manually workaround with varying font sizes because underline/overline/strike-through decorations won't link up, as seen in this example:


 but finally for Collabora Hack Week I was able to carve out some time to fix this. So in today's LibreOffice trunk we finally have this implemented as:

In addition a buggy case seen in the preview of double overlines for mixed upper/lower case was also fixed, from:

to:


Also noticed during all of this was the wrong width scaling used for the red wave line underneath incorrect spelling in impress when the text is superscript or subscript so the line didn't stretch over the whole text, as seen here: 

Now corrected as:

and finally added was a missing implementation in the RTF export of shape text to allow the small caps format to be copy and pasted into other applications from impress.

by caolan (noreply@blogger.com) at August 23, 2023 04:01 PM

August 21, 2023

Björn Michaelsen

How to survive being bought by Oracle

How to survive being bought by Oracle?

When I wrote Quo vadis with The Document Foundation? a month ago, that was mostly a side product of sorting out my thoughts on open source governance in general, and on LibreOffice in particular. And while that sparked some discussion on the identity of the LibreOffice project, mostly here on Board Discuss, it ultimately was preparation for a talk Thorsten and me had submitted for a vacation on Chaos Communication Camp 2023. Our preparation was somewhat chaotic -- because both Thorsten and me decided to get very creative about the "dont come by car" suggestion by the organizers and our talk being scheduled on the first day of the event -- so we ended up honouring the LibreOffice tradition of finishing slides only hours before the scheduled slot.

The session itself did not seem to have suffered too much by this -- it was more free form, which might actually have been a bonus. We ended up even being allowed to use some extra time for Q&A as there was quite some interest for that in the audience.

The video recording can be found on media.ccc.de and describes both bits of the history of the LibreOffice fork a decade ago and lessons learned that are still relevant for open source communities forking (or otherwise reorganizing themselves) today.

A huge thank you to all the volunteers that made #CCCamp23 (and therefore this talk) happen, especially c3voc for the recording and c3cert who did a great job in checking a minor injury I suffered due to my own stupidity during the event.

Comments? Feedback? Additions? Most welcome here on the fediverse !

August 21, 2023 06:00 AM

August 19, 2023

Ahmed Gamal Eltokhy

Week 10 11 Report

I'm providing an update after 10 weeks working on LibreOffice. I have successfully completed all the requirements I originally proposed related to improving the user interface for digital certificates and signatures. This includes developing a mechanism to remember selected recipients, improving the recipient selection UI, enabling intelligent searching of large keyrings, improving UI latency, and adding filtering for search results. I'm very pleased with the progress made so far. Going forward, I plan to focus on enhancing the documentation for the xmlsecurity module and addressing any bugs related to digital signatures. I'm very grateful to several LibreOffice developers, including Thorsten Behrens, Heiko Tietze, and Hossein Nourikhah, who provided excellent guidance during this project. While I'm sad this journey is nearly over, I achieved my goals and learned a lot along the way. I look forward to continuing to contribute to LibreOffice in the future.

August 19, 2023 04:18 PM