The Document Foundation Planet

 

May 05, 2023

Marius Popa Adrian

Flamerobin 0.9.7 Snapshot released with a few Firebird 4 fixes

Flamerobin 0.9.7 Snapshot released with a few Firebird 4 fixesInt128 does not respect scale (Issue #166) Make Domain::dataTypeToString able to process fb4 types. fix some bugs converting int128/dec34/dec16 to string replace CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR when copy templates in CMakeList.txt by @Khalyutin in #310

by Popa Adrian Marius (noreply@blogger.com) at May 05, 2023 04:12 PM

May 04, 2023

Official TDF Blog

The Document Foundation releases LibreOffice 7.5.3 Community

libreoffice 7.5 bannerBerlin, May 4, 2023 – LibreOffice 7.5.3 Community, the third minor release of the LibreOffice 7.5 line, the volunteer-supported free office suite for desktop productivity, is available from https://www.libreoffice.org/download for Windows (Intel/AMD and ARM processors), macOS (Apple Silicon and Intel processors), and Linux [1].

A description of new features of LibreOffice 7.5 is available in the Release Notes [2].

Based on the distinctive features of the LibreOffice Technology platform for personal productivity on desktop, mobile and cloud, LibreOffice 7.5 provides a large number of improvements and new features targeted at users sharing documents with MS Office or migrating from MS Office. These users should check new releases of LibreOffice on a regular basis, as the progress is so fast, that each new version improves dramatically over the previous one.

Products based on LibreOffice Technology are available for major desktop operating systems (Windows, macOS, Linux and Chrome OS), for mobile platforms (Android and iOS), and for the cloud.
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/.

Availability of LibreOffice 7.5.3 Community

donate todayLibreOffice 7.5.3 Community is available from: https://www.libreoffice.org/download/. Minimum requirements for proprietary operating systems 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 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 with a donation at https://www.libreoffice.org/donate.

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

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

by Italo Vignoli at May 04, 2023 11:16 AM

May 03, 2023

Official TDF Blog

LibreOffice project and community recap: April 2023

Community members at FLISOL-DF

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

LibreOffice Technology logo

  • Talking of FOSS, we looked at how free and open source software continues to grow, as shown by data provided by reports of analysts, and by declarations of users. Over 76% of IT managers have increased the use of open source software during 2022, while almost 22% have not changed the amount, and less than 2% have reduced it.

Graphs showing use of FOSS in regions and enterprises

Annual Report 2022 banner

  • Want new features in LibreOffice? Help to fund developers! Every major release of LibreOffice includes a bunch new features, thanks to our community of volunteer and ecosystem developers. But what can you do, if you want a new feature in LibreOffice but don’t have the technical know-how to implement it? Find out more here…

Andreas Hanisch

  • Finally, the Brazilian community gave a presentation at the FLISOL-DF event (Festival Latino Americano de Instalação de Software Livre) about the LibreOffice project. Check it out!

Community members at FLISOL-DF

Keep in touch – follow us on Twitter, Facebook and Mastodon. Like what we do? Support our community with a donation – or join us and help to make LibreOffice even better!

by Mike Saunders at May 03, 2023 09:30 AM

Miklos Vajna

Multi-page floating tables in Writer: part 3

Writer now has continued steps 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 second post for background.

Motivation

The previous post finished with cursor traversal: if a floating table is on both page 1 and page 2, then you expect Writer to be able to move between the rows of the table, even if those are not on the same page. In this post, we'll see what else started to work during the past month.

Results so far

The feature is enabled by default and now the DOCX/DOC/RTF import makes use of it if. This allows stress-testing the layout code with complex user documents, hopefully with the found breakage fixed before it would be released in a stable version.

On the positive side, core.git repository has has 19 files now which are focusing on correct handling of floating tables. Also, there are additional tests that quickly build a specific multi-page floating table in the memory and do some operation on it, e.g. delete the last row and assert what happens.

Here are some screenshots from the effort so far:

Editing of floating tables: delete the last row of a table with 3 rows

The first case is about editing: if a floating table had a first, middle and last page, then deleting the last row of a table lead to incorrect layout, which is now fixed.

Selection & dragging of split floating tables

An odd problem is that the vertical position of tables on non-first pages is generated by the layout, which means that normal drag&move to position them won't work, leading to annoying jumps. This is now fixed by selecting the first (master) fly frame on click, and you can always reposition that table (even vertically.)

Bad binary DOC import

Once DOCX import/export was there, the next step is binary DOC import, which gives us access to a larger corpus of test documents, to stress-test the layout code. This shows how the binary DOC import looked before the work.

Good binary DOC import

And this one shows how it works now.

Good binary DOC export

DOC import is not enough, e.g. Collabora Online will save your documents automatically, so we really want to export everything that is possible to import. Here is how good DOC export looks like in Word.

In-footer floating table

At this point the first crashtest results arrived (we try to import about 280 thousand documents and see what crashes). The first problem was floating tables in footers. Well, we should not try to split such tables (even if they don't fit): adding one more page does not give us more footer space.

Bad RTF import

Similar to the DOC filter, RTF can express floating tables. Here is how we did a bad rendering of an RTF document before.

Good RTF import

And here is how we import it currently. The RTF control words are quite close to the binary DOC markup semantically, just the syntax is different.

Bad RTF export

The RTF export side was also missing, as visible in Word, before the work.

Good RTF export

And this is how the good RTF export result looks like in Word.

Floating table in a section

Another crashtest find was that sometimes we map Word's continuous section breaks to Writer sections, so we can't assume that tables are anchored directly in body frames. This is now fixed.

Correct handling of the TableRowKeep flag in floating tables

A related problem was that non-floating tables have a trick, that we call the TableRowKeep mode. If this is on (which is the default for documents imported form Word), a table row will stick to the next table row (we try to keep them on the same page) if the first cell's first paragraph in that row has the "keep with next" paragraph property specified. It turns out, this should be ignored when the table is floating.

Page break before a floating table

A next problem was that some page breaks simply disappeared. It turns out that we need to transfer the "break before" property from the table to the table anchor (paragraph) to get the desired layout, since page breaks are generally ignored inside text frames.

Handling of 2 times nested tables, middle one is floating

All combinations of nesting with floating tables is not yet handled, but at least we should not crash when the user tries to do that. Here is 3 tables, nested in each other, the second table is marked to be floating.

Handling of a floating table, immediately followed by an other table

The last fixed problem is when a floating table is immediately followed by an other, non-floating table. Given that we try to anchor the floating table in the next paragraph, the layout could not handle this previously, but now we ensure that each floating table is followed by a paragraph.

And that's where we stand. Hope to address all problems reported by crashtesting soon. Once that happens, it may be possible to switch from bugfixing mode to feature mode again, e.g. better handling of overlapping or nested tables could be 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 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 (7.6).

by Miklos Vajna at May 03, 2023 06:40 AM

May 02, 2023

Official TDF Blog

Social media and LibreOffice: TDF’s Annual Report 2022

Annual Report banner

We use our social media channels to raise awareness about our work, share information and encourage new contributors to join us

(This is part of The Document Foundation’s Annual Report for 2022 – we’ll post the full version here soon.)

Social media

In January 2022, our English-language Twitter account @LibreOffice had 45,802 followers; by the end of the year, we had grown this to 52,808. Our most popular tweets were for major releases, but we also tweeted customised images for “Community Member Monday” interviews with short quotes, encouraging more users to get involved with LibreOffice projects.

In addition, we focused not only on our own tweets, but also retweeting announcements from the LibreOffice ecosystem and community members. We liked and retweeted messages of support from end users – many of whom were surprised and thankful that a large project would show them support. To keep the content flowing, we retweeted popular older tweets, and responded to individual messages.

On other social media platforms, we focused on growing our account on Mastodon, a Twitter-like open source, federated and self-hosted microblogging service. In 2019 we set up @libreoffice and started posting content, often more focused on technical users, compared to our tweets and Facebook posts. In 2022 we worked more on expanding our activities here, and from January to December, we grew our follower base from 6,844 to 16,500.

Mastodon screenshot

Our Facebook page growth was smaller, from 59,241 page likes to 60,209. We’ve noticed a gradual reduction in activity on Facebook over the last few years, which reflects its changing audience, and the move towards newer mobile applications. Nonetheless, Facebook still provides a good opportunity to interact with end users of LibreOffice, and every day we checked in to answer questions, get feedback, and post announcements/tips about the software.

YouTube channel

Our YouTube channel grew from 15,015 subscribers and 2,420,699 video views in January 2022 to 17,964 subscribers and 2,858,092 video views by the end of the year. The “LibreOffice 7.3: New Features” video (a fantastic production by the Indonesian community) had over 196,000 views – while the video for LibreOffice 7.4 had over 47,000. We also added videos from FOSDEM and the LibreOffice Conference 2022.

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.

Meanwhile, our community helped out with tutorial videos – in particular Harald Berger of the German community, who continued to produce a series of professional-looking step-by-step guides to installing and using LibreOffice.

Like what we do? Support the LibreOffice project and The Document Foundation – get involved and help our volunteers, or consider making a donation. Thank you!

by Mike Saunders at May 02, 2023 08:57 AM

May 01, 2023

Official TDF Blog

Learn new skills! Join the Month of LibreOffice, May 2023

Want to expand your skillset and gain experience with UX, marketing, documentation, QA or translations? Join the Month of LibreOffice, May 2023! Over the next four weeks, hundreds of people around the world will collaborate to improve LibreOffice – and you can help them. There are many ways to get involved, as we’ll see in a moment.

And best of all: everyone who contributes to LibreOffice in the next four weeks can claim a cool sticker pack, and has the chance to win extra LibreOffice merchandise such as mugs, hoodies, T-shirts, rucksacks and more (we’ll choose 10 participants at random at the end):

How to take part

So, let’s get started! There are many ways you can help out – and as mentioned, you don’t need to be a developer. For instance, you can be a…

  • Handy Helper, answering questions from users on Ask LibreOffice. We’re keeping an eye on that site so if you give someone useful advice, you can claim your shiny stickers.
  • First Responder, helping to confirm new bug reports: go to our Bugzilla page and look for new bugs. If you can recreate one, add a comment like “CONFIRMED on Windows 11 and LibreOffice 7.5.2”.
  • Drum Beater, spreading the word: tell everyone about LibreOffice on Mastodon or Twitter! Just say why you love it or what you’re using it for, add the #libreoffice hashtag, and at the end of the month you can claim your stickers.
  • Globetrotter, translating the user interface: LibreOffice is available in a wide range of languages, but its interface translations need to be kept up-to-date. Or maybe you want to translate the suite to a whole new language? Get involved here.
  • Docs Doctor, writing documentation: Whether you want to update the online help or add chapters to the handbooks, here’s where to start.

We’ll be updating this page every few days with usernames across our various services, as people contribute. So dive in, get involved and help make LibreOffice better for millions of people around the world – and enjoy your sticker pack at the end as thanks from us! And who knows, maybe you’ll be lucky enough to win bonus merch as well…

OK – let’s go! We’ll be posting regular updates on this blog and our Mastodon and Twitter accounts over the next four weeks – stay tuned!

by Mike Saunders at May 01, 2023 05:06 PM

April 28, 2023

Official TDF Blog

LibreOffice Conference 2022 – TDF Annual Report

Conference group photo

The LibreOffice Conference is the annual gathering of the community, our end-users, developers, and everyone interested in free office software. In 2022, it took place in Milan, Italy

(This is part of The Document Foundation’s Annual Report for 2022 – we’ll post the full version here soon.)

Due to the COVID pandemic and travel restrictions our conferences for 2020 and 2021 had to take place online. For 2022, however, we could finally meet in-person again – although we live-streamed sessions, for participants to watch remotely (and they could ask questions in our chat channels too).

The conference took place from September 28 – October 1, in the Fondazione Culturale San Fedele, in downtown Milan. Four rooms were made available for the event: the auditorium, along with Ricci, Loyola and Saverio.

Banners at LibreOffice Conference 2022

Conference Tracks and extra sessions

Following the opening session, presentations and talks were given across various “tracks”, or categories: Development, Advocacy, Marketing, Design, OpenDocument Format, Quality Assurance, Documentation and more. There were highly technical talks focused on specific areas of the software and source code, along with more open discussions about community building and recent updates from The Document Foundation.

In addition to the talks, where was also a community dinner evening, in which various kinds of pasta were served, along with a walking tour of interesting parts of the city. On the final day, the conference wrapped up with a closing session, headed by Italo Vignoli who helped to organise the event.

Community dinner at LibreOffice Conference 2022

Sponsoring and merchandise

The event was sponsored by Collabora, allotropia, Net Service S.p.A and Passbolt. Thanks to this sponsoring, attendees could get merchandise at the conference, including T-shirts with the conference logo.

Merchandise at LibreOffice Conference 2022

Full Programme

Full details about the event are available on our main conference website. For a quick overview of all the talks, including links to PDF versions of the presentations, see the schedule.

Videos from most of the talks are available in this playlist:

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.

Conference in 2023

Planning is already underway for the LibreOffice Conference 2023, which is due to take place in Bucharest, Romania in September. The local organisation team has already found a suitable location, and is now working on other preparations for the event, including visas for attendees, catering and merchandise. We at TDF are helping them to get things ready, and are very grateful for their work.

Like what we do? Support the LibreOffice project and The Document Foundation – get involved and help our volunteers, or consider making a donation. Thank you!

by Mike Saunders at April 28, 2023 06:47 AM

April 21, 2023

Michael Meeks

2023-04-21 Friday

  • Out for a run with J. early. Mail chew, plugged away at some consistency checks to detect unhelpful 3rd parties that like to eg. delete the filesystem underneath a running process, and then wonder why things stop working.
  • Various partner calls; into Cambridge to meet up with the very charming Niels of OpenProject fame, and his brother.
  • Took H. home from work, dinner, back to cleaning up loose ends from the day. Fixed up J's counselling website so http works (was never tested), and mended some old blog links.

April 21, 2023 08:26 PM

April 20, 2023

Michael Meeks

2023-04-20 Thursday

  • Wedding anniversary - 21 years - what a lovely time we've had together: what a blessing. To work!
  • Technical planning call, COOL community call, K8s design call, catch up with Andras, ESC meeting. Apparently my blood says I need more vitamin-D - fair enough.
  • Mihai making good progress, concrete base, bits of roof, fibreglass & epoxy.

April 20, 2023 09:00 PM

April 19, 2023

Michael Meeks

2023-04-19 Wednesday

  • Slept for a couple of hours; back to an all-night hackathon - (also wrote J's wedding anniversary card) - trying to unwind 'orrible, intermittent Cypress problems.
  • Mihai arrived to build a garden lean-to / shed for J's garden tools & other bits cluttering my garage^Workshop.
  • Sales call, went for a bleed at the hospital, lunch. All afternoon quarterly Collabora mgmt call, did some mail & review in parallel.
  • Band practice in the evening, then out for a lovely pre-21st-wedding-anniversary-dinner with J. at a new local Turkish restaurant: lovely & lots of it. Staggered home happily.

April 19, 2023 09:00 PM

April 18, 2023

Michael Meeks

2023-04-18 Tuesday

  • Mail chew; overdue catch ups with Kendy, then Pedro. Slides, monthly mgmt meeting.
  • Popped over to see David S & help him get his new velux window glassware inserted: a small piece of ply-wood with a block at the end turns out to be the optimal tool.
  • As I try to improve my German; really pleased to read Henry Hühnchen to the family "Der Himmel stürzt ein!", sagt Henry Hühnchen.
  • Helped M. organize and glue her chess-board together in the evening until late, hopefully the big-breaker of old PVA will still do the job.

April 18, 2023 09:00 PM

April 17, 2023

Michael Meeks

2023-04-17 Monday

  • Up early, mail chew, planning call, plugged away at Cypress bits with Jaume; catch up with Marc, then Philippe.

April 17, 2023 09:00 PM

April 13, 2023

Collabora Community

Recapping COOL Days 2023: The Event that Rocked Cambridge!

Thank you to all who attended our COOL Days 2023 meet up in Cambridge on 28th & 29th March. We had a great time organising the event for our partners, the Collabora team and open source community. It was a great success!

If you didn’t manage to make it to Cambridge, check out our 90 second YouTube short which shows a quick overview of the fun we had.

COOL Days was based at Clare College, the second oldest of the 31 historic Cambridge Colleges. We started off our packed schedule full of lightning talks, partner workshops and team building with a meal at Millworks on the Monday evening (famous for it’s delicious Shawarma!)

The Technical Day

Is it possible to fit 45 lightning talks into one day? Yes!

We were live from Cambridge all day on Tuesday 28th March. It was wonderful to see so many presentations of all the work that’s been developing over the last 6 months by the Collabora Online team, community and partners all across Europe and beyond.

For those that would like to re-watch our COOL Days live stream, you can find it on our YouTube channel.
To download the slides from the Technical Talks, head to our github.

 

Partner Day

Wednesday 29th March was our Partner Day, full of workshops and discussions around our collaborative Partner Programme. It was a privilege to have Simon Phipps and Robert Riemann kick off the day with their insights into the importance of data protection in Europe and future of open source.

Throughout the rest of the day we had many open discussions with our Partners about how we can support them and work together even more successfully and talked about the development road map for 2023.

 

LibreOffice Technology Hackfest

On Wednesday 29th March we also held a Hackfest for those who are involved in the LibreOffice Technology community. Many hours were spent hacking in person, learning from one another and solving bugs with other members of the community.

 

Social Events

We made sure there were plenty of opportunities for team building including a treasure hunt around Cambridge, punting down the river Cam and of course, some delicious meals together. On the final evening we dined at Ridley Hall which for many, gave them a taster of what dining at Hogwarts might be like – minus the owls!

 

You may have seen some of our team live tweeting from the event – search #COOLDays and follow us on Twitter, Mastodon and Linkedin to see updates from events and conferences throughout the year.

We hope to see you at our next COOL Days event.

In the meantime, keep an eye out for where we’ll be next:

Open Education Day

May 6, 2023 – Bern, Switzerland

Congreso esLibre

May 12 - 13, 2023 – Zaragoza, Spain

LibreOffice Conference 2023

September 20 - 23, 2023 – Bucharest, Romania

The post Recapping COOL Days 2023: The Event that Rocked Cambridge! appeared first on Collabora Office and Collabora Online.

by Naomi Obbard at April 13, 2023 02:05 PM

April 10, 2023

LibreOffice QA Blog

QA/Dev Report: March 2023

General Activities

  1. LibreOffice 7.5.1 was announced on March 2
  2. LibreOffice 7.4.6 was announced on March 9
  3. LibreOffice 7.5.2 was announced on March 30
  4. Rafael Lima continued polishing dark mode support, made it so Calc solver settings are saved to file, including XLSX files and made some smaller tweaks to the UI and Help
  5. Adolfo Jayme Barrientos made some tweaks to wordings in UI and Help
  6. Olivier Hallot (TDF) corrected help for Calc’s INDEX() function, updated menu paths and made many refactorings and cleanups in Help. He also added better UNO API error messages for Calc sheet insertion and improved extended tooltips
  7. Seth Chaiklin made many text improvements both in the UI and in Help related to heading numbering, indexes, captions and styles
  8. Alain Romedenne corrected parameter names for Basic functions in Help
  9. Sophia Schröder made many cleanups in Help markup, with Christian Lohmaier (TDF) assisting in mass replacements
  10. Juan C. Sanz added a help page for Firebird external connection
  11. Angelle Leger created a help page for zoom in Calc
  12. Stanislav Horacek made small corrections in ScriptForge and regular expression Help pages
  13. Miklós Vajna (Collabora) worked on multi-page floating tables in Writer
  14. Jean-Pierre Ledure worked on the ScriptForge library
  15. Szymon Kłos and Pranam Lashkari (Collabora) worked on jsdialog used by Collabora Online
  16. Eike Rathke (Red Hat) fixed issues brought up by Ady during review of Calc function articles in the wiki
  17. Tomaž Vajngerl (Collabora) continued polishing support for document themes and made the text auto-fit algorithm in Impress match OOXML better. He also made cleanups in code related to shapes
  18. Julien Nabet made it possible to use the colon key in shortcuts
  19. Andreas Heinisch made empty grid cells evident in the Special Characters dialog, fixed old issues with print ranges being lost upon copying a Calc sheet to another document and level settings being ignored in a table of contents created from custom styles, added support for Unicode minus (0x2212) in Calc value input, fixed an issue causing data loss when renaming libraries in Basic organizer and improved the compatibility of macro modules with other OpenOffice.org derivatives
  20. László Németh fixed an issue with text files with very long lines causing instability alongside some Writer regressions
  21. Xisco Faulí (TDF) did lots of refactoring in automated tests and added many new ones. He also made tracked changes in Calc display Unknown Author, if no name is set in user data and fixed some crashes.
  22. Michael Stahl (allotropia) made many improvements to the export of accessible PDFs, allowing LibreOffice to export with accessible options by default and added a decorative flag for frame styles upon ODT and DOCX export
  23. Mike Kaganski (Collabora) fixed issues with Writer table of contents, autofitting column width in Calc, table indentation in exported HTML files, made many improvements to the LanguageTool remote checking support, made the VBA function StrConv more robust and improved the loading time of Writer documents with lots of tables. He also fixed crashes and made many code cleanups
  24. Caolán McNamara (Red Hat) made many improvements and fixes to all kinds of scrolling actions. He also made many other accessibility and UI-related improvements and crash fixes
  25. Stephan Bergmann (Red Hat) made many code and build-related cleanups, for example changing the parsing of URLs with queries to respect the HTTP/1.1 protocol update from 2014, updating the homegrown string types to make use of C++20 features and dealing with new compiler releases
  26. Noel Grandin (Collabora) made many code cleanups, for example improving the safety of concurrent code, reducing layers of abstraction, reducing the code verbosity of functions called often and making the Chart-related code simpler and more performant
  27. Justin Luth (Collabora) created an experimental UI for setting list levels of paragraphs and fixed issues with page breaks, anchoring and text boxes in DOCX files as well as cycling Calc cell reference types in combination with frozen rows/columns
  28. Heiko Tietze (TDF) increased the size of the status bar icons, reworked how light and dark themes are presented in Application Colors option view and made many other UI improvements and tweaks
  29. Paris Oplopoios (Collabora) added a UNO command to change the application theme and made it possible for separate application views to have different colours
  30. Armin Le Grand (allotropia) worked on multi-color gradient support
  31. Tibor Nagy (NISZ) fixed an issue with losing preset sizes of custom sized backgrounds in Impress
  32. Tor Lillqvist, Marco Cecchetti and Michael Meeks (Collabora) worked on LOKit improvements
  33. Michael Weghorn worked on the Android version, Qt/KDE and accessibility
  34. Regina Henschel improved Fontwork to WordArt compatibility
  35. Franklin Weng made exported XHTML files nicer to read by adding newlines after certain tags
  36. Balázs Varga (allotropia) fixed an issue with dropdown form control width
  37. Colomban Wendling (Hypra) worked on accessibility tests
  38. Kohei Yoshida fixed a Calc crash and improved unit tests
  39. Samuel Mehrbrodt (allotropia) moved Accessibility Check from a dialog to the Sidebar
  40. Czeber László Ádám (NISZ) fixed issues with unwanted empty paragraphs appearing before tables upon DOCX export and tracked field changes not being parsed properly upon DOCX import
  41. Khaled Hosny (Alif Type) made it so proper Unicode code points are used for bullet style names
  42. Jürgen Funk (CIB) fixed an issue with the display of keyboard shortcuts after deleting them and improved the git hooks used in the development process
  43. Björn Michaelsen made refactorings to Writer code
  44. Gábor Kelemen (allotropia) added support for DOCX importing and exporting of styles in tables of figures
  45. Sarper Akdemir (Collabora) implemented support for default tab size in Impress alongside handling of such in PPTX files
  46. Rizal Muttaqin completed a dark variant for Sukapura icon theme and made many updates to the other icon themes
  47. Vojtěch Doležal made many improvements to Writer’s bibliography marks feature
  48. Taichi Haradaguchi updated many dependencies
  49. Patrick Luby (Collabora) fixed an issue with scrolling in Calc on macOS, improved macOS dark mode support and worked on the iOS version
  50. Arnaud Versini made some code cleanups
  51. Jaume Pujantell (Collabora) fixed an issue preventing WebDAV access via macros
  52. Galdam Jitsu continued polishing the new mime type icons
  53. Grigory Mozhaev added an optional Calc formula indicator
  54. Maxim Monastirsky added support for drawing styles in Calc
  55. Attila Szűcs (Collabora) added support for zip64-compressed OOXML files
  56. Tünde Tóth (NISZ) fixed some DOCX hyperlink issues
  57. Mark Hung fixed issues with vertical writing emphasis mark position
  58. Luigi Iucci made it so five most recently used currencies are displayed in the currency toolbar dropdown
  59. Jim Raykowski fixed Tabbed Compact UI tabs not being updated upon context change
  60. Vasily Melenchuk (CIB) added support for document variables in DOCX import

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

630 bugs, 72 of which are enhancements, have been reported by 370 people.

Top 10 Reporters

  1. Eyal Rozenberg ( 52 )
  2. sdc.blanco ( 19 )
  3. Mike Kaganski ( 13 )
  4. Gabor Kelemen (allotropia) ( 13 )
  5. Stéphane Guillou (stragu) ( 11 )
  6. Tuomas Hietala ( 10 )
  7. Telesto ( 9 )
  8. Robert Großkopf ( 9 )
  9. ady ( 7 )
  10. Roman ( 7 )

Triaged Bugs

842 bugs have been triaged by 86 people.

Top 10 Triagers

  1. Buovjaga ( 199 )
  2. Stéphane Guillou (stragu) ( 185 )
  3. Heiko Tietze ( 54 )
  4. eisa01 ( 44 )
  5. m.a.riosv ( 35 )
  6. Dieter ( 31 )
  7. V Stuart Foote ( 31 )
  8. Julien Nabet ( 24 )
  9. raal ( 18 )
  10. Mike Kaganski ( 16 )

Resolution of resolved bugs

649 bugs have been set to RESOLVED.

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

Fixed Bugs

207 bugs have been fixed by 42 people.

Top 10 Fixers

  1. Caolán McNamara ( 22 )
  2. Michael Weghorn ( 18 )
  3. Seth Chaiklin ( 16 )
  4. Rizal Muttaqin ( 10 )
  5. Mike Kaganski ( 9 )
  6. Justin Luth ( 7 )
  7. Andreas Heinisch ( 7 )
  8. Heiko Tietze ( 7 )
  9. László Németh ( 6 )
  10. Eike Rathke ( 6 )

List of high severity bugs fixed

  1. tdf#136904 Crash swlo!SwRedlineData::operator!=+0x177 (steps in comment 7) ( Thanks to László Németh )
  2. tdf#149485 “Show Whitespace” condition changes other documents look ( Thanks to Xisco Fauli )
  3. tdf#152406 macOS Calc: Scrolling: scrollbar showing wrong position resulting in unscrollable document ( Thanks to Patrick Luby )
  4. tdf#153628 Spellcheck now does not work v7.5.0.3 X86_64 ( Thanks to László Németh )
  5. tdf#153669 Formula stops working after copy and paste onto a different cell ( Thanks to Kohei Yoshida )
  6. tdf#153819 Copying table column outside of table crashes Writer ( Thanks to László Németh )
  7. tdf#153891 Crash in: writerfilter::dmapper::DomainMapperTableHandler::endTable(unsigned int, bool) ( Thanks to László Németh )
  8. tdf#153926 FORMATTING: CRASH when trying to change language for selection ( Thanks to Noel Grandin )
  9. tdf#154050 Crashes when inserting or changing a note in Calc With Standard Toolbar (Single Mode) enabled ( Thanks to Maxim Monastirsky )
  10. tdf#154061 CRASH: undoing column insert ( Thanks to Paris Oplopoios )
  11. tdf#154232 Using drag/drop to reorder a Heading in Navigator window causes Writer to crash (EDIT) (gtk only) ( Thanks to Caolán McNamara )
  12. tdf#94319 Copy/Paste of lines (and grouped object with lines inside) places the copy in unpredictable location ( Thanks to Caolán McNamara )

List of crashes fixed

  1. tdf#136904 Crash swlo!SwRedlineData::operator!=+0x177 (steps in comment 7) ( Thanks to László Németh )
  2. tdf#148143 CRASH: after pasting twice the whole sheet ( Thanks to Kohei Yoshida )
  3. tdf#150135 Accessing uninitialized TextInputStream methods crashes ( Thanks to Baole Fang )
  4. tdf#153819 Copying table column outside of table crashes Writer ( Thanks to László Németh )
  5. tdf#153891 Crash in: writerfilter::dmapper::DomainMapperTableHandler::endTable(unsigned int, bool) ( Thanks to László Németh )
  6. tdf#153926 FORMATTING: CRASH when trying to change language for selection ( Thanks to Noel Grandin )
  7. tdf#154000 Large text lines cause it to crash or slow down to the point of unusability. ( Thanks to László Németh )
  8. tdf#154039 LO crashes when navigating in Special Characters dialog table with NVDA screen reader enabled ( Thanks to Michael Weghorn )
  9. tdf#154050 Crashes when inserting or changing a note in Calc With Standard Toolbar (Single Mode) enabled ( Thanks to Maxim Monastirsky )
  10. tdf#154061 CRASH: undoing column insert ( Thanks to Paris Oplopoios )
  11. tdf#154179 Crash opening Chapter Numbering dialog, when current paragraph has an outline style, but DF outline level “Text Body” ( Thanks to Mike Kaganski )
  12. tdf#154205 Crash on reload of file (segfault in libswlo.so) ( Thanks to Caolán McNamara )
  13. tdf#154232 Using drag/drop to reorder a Heading in Navigator window causes Writer to crash (EDIT) (gtk only) ( Thanks to Caolán McNamara )
  14. tdf#154322 XML Form Document: Choosing Instance after first clicking on Bindings leads to Crash of LO ( Thanks to Caolán McNamara )
  15. tdf#154378 LibreOffice crashed when use tablet/Insert the u-disk, and the recovery destroy the saved file (Skia Vulkan) ( Thanks to Julien Nabet )

List of performance issues fixed

  1. tdf#154486 A document with thousands of tables loads very slow, time grows quadratically ( Thanks to Mike Kaganski )

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

  1. tdf#102261 FILEOPEN PPTX Badly aligned text, using spaces as indentation ( Thanks to Sarper Akdemir )
  2. tdf#104394 FILEOPEN DOCX: Textbox is missing ( Thanks to Justin Luth )
  3. tdf#115625 FILEOPEN DOCX: Table placed on wrong position because of Frame Wrap ( Thanks to Justin Luth )
  4. tdf#117037 localc does not understand unicode minus ( Thanks to Andreas Heinisch )
  5. tdf#124472 FILEOPEN DOCX Field code change is not parsed as Track Changes entry ( Thanks to Czeber László Ádám )
  6. tdf#38890 Remove hard-coded project URLs ( Thanks to Adoche Onaji )
  7. tdf#38948 FILESAVE – Calc does not save the solver’s model to files ( Thanks to Rafael Lima )
  8. tdf#39667 Enable accessible/tagged PDF export options by default ( Thanks to Michael Stahl )
  9. tdf#40142 Table of Contents from Custom Styles ignores level limit ( Thanks to Andreas Heinisch )
  10. tdf#51195 : LibreOffice can not save fontwork as docx ( Thanks to Regina Henschel )
  11. tdf#66613 EDITING: sheet copied to another document does not retain a defined print range ( Thanks to Andreas Heinisch )
  12. tdf#83283 LOCALHELP: Write help page for Label Field Selection in

by x1sc0 at April 10, 2023 08:54 AM

April 03, 2023

Miklos Vajna

Multi-page floating tables in Writer: part 2

Writer now has the early steps 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 first post for background.

Motivation

The previous post finished with split rows are now in a reasonable shape towards our journey to fix tdf#61594. In this post, we'll see what else is needed to get perfect rendering for that single document.

The plan is to iterate on that later, adding more and more incremental improvements & fixes for this feature.

Results so far

The feature is still enabled by default, but the DOCX import only makes use of it if you set the SW_FORCE_FLY_SPLIT=1 environment variable. This allows playing with the feature even if there are lots of known problems still.

On the positive side, core.git sw/qa/core/layout/data/ has 12 files now which are rendered exactly the way Word does. Also, there are additional tests that quickly build a specific multi-page floating table in the memory and do some operation on it, e.g. delete the last row and assert what happens.

Here are some screenshots from the effort so far:

Split row and an additional one on 2 pages

Here the problem was that a normal row went to a next page after a split row. Now the document is correctly of 2 pages, instead of the previous unwanted 3 pages.

Floating table with multiple columns

Here the additional complexity was to have multiple columns on a table, since previously we always had 1 column and 2 or more rows. Now these are also split correctly across pages.

Incorrect widow control inside split floating tables

This is an incorrect table row split, because widow control is broken.

Fixed widow control inside split floating tables

And here is how it looks when it's working. That little line on page 2 is no longer alone.

Working minimal height

Even better when the minimal height for non-first ("follow") table frames is working, as you can notice that space between the last line and the table bottom border on page 2.

At this point, the bug document from the motivation section worked fine, apart from the workaround that one has to re-save it in non-legacy mode in Word. So what's next? We need to instantly add a legacy mode for the brand new (not even fully enabled) multi-page floating table feature, since otherwise whatever we do, some DOCX files will be handled incorrectly.

Legacy mode: bad margin

As it turns out, the core of the legacy mode is that the floating table is sometimes allowed to flow into the footer / bottom margin area of the page, but not always. It's quite inconsistent, so one can understand why this is no longer the default behavior. The above is the naive rendering, which is logical, but incorrect.

Legacy mode: good margin

And this is the correct result in legacy mode. After a bit of experimenting, it seems one can flow into the bottom margin area if the height of the table frame would fit the body frame, but some vertical offset causes it to be pushed down.

Legacy mode: minimal row height causes no row split

The final trick with legacy mode is to make sure that all tables (first one, middle ones, last one) have the required minimal height, which can result in not splitting the row in case a part of that would be less than the minimal height. E.g. a 3 cm minimal height means that a total height of 4 cm (2cm + 2cm) is not enough for a split row.

With this, we reached the goal to render that given bug document perfectly (when compared to Word), and the next step is to fix up breakage that would be caused by enabling by default.

Tracked changes in floating tables

The first problem was tracked changes support, which needs special care: as the importer converts body text to table cells, we need to keep the tracked insert/delete text ranges correctly. This is now working fine.

Nested tables: the outer is floating

The next problem is around nested tables: a normal inner table inside a floating table was lost on DOCX file open, now fixed.

Nested tables: broken inner floating table

The other version is when a normal table has an inner floating table. This broke badly, the outer table was not imported at all.

Nested tables: better inner floating table

And it's now better. The inner table is still not actually floating, but turns out that was never working for DOCX files, so it's not a regression. Fine to revisit that only later.

Follow table: bad horizontal positioning

So far all the previous tables were aligned to the left. It turns out that the horizontal positioning was bad in every other case for non-first tables, e.g. when you wanted to center them.

Follow table: good horizontal positioning

And it's now fixed.

As a last fix for this post, let's look at traveling with the cursor:

Good cursor traversal

After fixing this, now you can use the up/down arrows to go from the A1 cell to A2 and back. The cursor traversal code wasn't aware that the master/follow table frame was connected.

And that's where we stand. Hope to enable even the DOCX import bit by default soon.

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 (7.6).

by Miklos Vajna at April 03, 2023 06:54 AM

April 02, 2023

Marius Popa Adrian

Firebird Project announces the first Beta release of Firebird 5.0

Firebird Project announces the first Beta release of Firebird 5.0, the next major version of the Firebird relational database, which is now available for testing.This Beta release arrives with features and improvements already implemented by the Firebird development team, as well as with many bugfixes. Our users are appreciated giving it a try and providing feedback to the development mailing

by Popa Adrian Marius (noreply@blogger.com) at April 02, 2023 12:20 PM

March 23, 2023

LibreOffice Dev Blog

Internal includes instead of global ones – EasyHack

In every C/C++ source code file, we use header files to put declarations of functions, data types, class, macro and other relevant things inside it. These files have the extension of .h (for C) and .hxx (for C++).

We have different header types: internal and global includes. You can find some of the header files in many places. For example, in LibreOffice we have several modules that many other modules depend on them. Here, we focus on the VCL module. For the global includes, they are placed inside include/ folder, and for internal headers of VCL module, the include files are put inside include/vcl/.

On the other hand, not all the VCL headers are beneficial outside the VCL module. In this case, it is preferred that these include files are put inside the vcl/ folder. Usually, those header files should be inside vcl/inc folder.

As an example, we have the header include/vcl/salnativewidgets.hxx file which have declarations that are not used outside vcl/. In this case, we can put the declarations inside vcl. The suggested place is vcl/inc/nativewidgets.hxx.

Finding Internal Includes

As suggested in the bug report, one trick is to look at the class/function declaration. If it doesn’t have a SAL_DLLPUBLIC attribute decorating it, there is good chance that you can move it to the private headers, and in this case, vcl/inc/ folder.

Other than that, you should use the include syntax <…>. For example, if you have created vcl/inc/nativewidgets.hxx, then the include syntax would be:

#include <nativewidgets.hxx>

This is because the file is not exactly next to the cxx file. You can read more here:

Final Notes

EasyHacks are good starting points for someone who wants to start LibreOffice development. This specific issue for improving header files of VCL is avaiable as tdf#97228 in TDF’s Bugzilla. To understand how to start LibreOffice development, you can refer to our getting involved page in the TDF Wiki, or our video tutorial for getting started with LibreOffice development.

by Hossein Nourikhah at March 23, 2023 02:39 PM

March 21, 2023

Caolán McNamara

GTK 4.10 and LibreOffice accessibility

 

Towards GTK 4.10 some of the functionality to integrate LibreOffice's internal accessibility support with GTK has been exposed. Some experimenting this week with GTK trunk gives me the above, writer's document accessibility hierarchy integrated with the GTK one.

Very little actually works, but a working base to start from.

by caolan (noreply@blogger.com) at March 21, 2023 04:58 PM

March 20, 2023

Marius Popa Adrian

Firebird 5 compiling on Oracle Linux 8 Ampere V1 (arm64)

You can compile just fine Firebird 4/5 on Oracle Linux 8 Ampere V1 (arm64) all you need is GCC Toolset 12 enabled as described here .Also same steps work for Oracle Linux 8.x on x86-64.  sudo dnf group install "Development Tools" sudo dnf install libicu-devel cmake git sudo dnf install gcc-toolset-12 scl enable gcc-toolset-12 bash git clone https://github.com/FirebirdSQL/firebird.git cd

by Popa Adrian Marius (noreply@blogger.com) at March 20, 2023 11:01 PM

March 17, 2023

Marius Popa Adrian

Rust Firebird Client updated to v0.23.0 with a few features

Rust Firebird Client updated to v0.23.0 with a few features :Firebird events support added on native client #133 #142Crates.io link is here .Sponsoring Link for Fernando Batels is here .

by Popa Adrian Marius (noreply@blogger.com) at March 17, 2023 10:03 PM

March 06, 2023

LibreOffice QA Blog

QA/Dev Report: February 2023

General Activities

  1. LibreOffice 7.5.0 was announced on February 2
  2. Roman Kuznetsov gave a talk about QA in russian
  3. Rafael Lima continued polishing dark mode support, made it so empty BASIC libraries are populated by an empty module for better user experience, made zooming smoother in Impress and Draw, implemented shortcut-assignable zoom commands as well as commands for toggling Watch/Stack windows for Basic IDE, made colour schemes translatable and fixed some broken links in Help
  4. Adolfo Jayme Barrientos improved the layout of some dialogs and updated some Help texts after UI changes
  5. Olivier Hallot (TDF) improved Help pages for Template Manager, command line conversion filter info and Draw layers. He also added links to Calc function wiki articles
  6. Seth Chaiklin made many text improvements both in the UI and in Help related to heading numbering and indexes
  7. Alain Romedenne corrected malformed keyword names in BASIC function signatures and added a Help page for FormatPercent Basic/VBA function
  8. Sophia Schröder made many smaller fixes and markup rework in Help files
  9. Miklós Vajna (Collabora) worked on multi-page floating tables in Writer
  10. Jean-Pierre Ledure worked on the ScriptForge library
  11. Szymon Kłos, Dennis Francis and Henry Castro (Collabora) worked on LOKit improvements. Szymon also made HTML export more robust regarding closing tags. Henry fixed an issue with master slide previews in Impress
  12. Andras Timar (Collabora) made some build-related improvements and fixes
  13. Eike Rathke (Red Hat) fixed an issue with dates showing as integers in XLSX files, added Saraiki to languages and made many code cleanups
  14. Tomaž Vajngerl (Collabora) made PDFs exported as hybrid conform to PDF validity requirements and continued polishing support for document themes
  15. Julien Nabet fixed an issue with setting search attributes via macros and implemented support for CSS color rules using alpha values when pasting HTML text from clipboard
  16. Andreas Heinisch added an expert option for sorting recent documents list according to the currently active LibreOffice module, made it so the UTF-8 byte order mark is preserved in saved CSV files, made line number alignment look better in Basic IDE and polished the look of highlighting of favourites in Special Characters dialog
  17. László Németh fixed an issue where saving to a WebDAV server too frequently caused the saving to fail
  18. Xisco Faulí (TDF) made over 40 additions and improvements to automated tests, made it possible to change the UI when viewing a read-only document and fixed many crashes
  19. Michael Stahl (allotropia) improved the image alternative text compatibility with different versions of the DOCX format, continued polishing DOCX table of contents style support, improved both the internal handling and the terminology related to the different ECMA-376 DOCX format editions, fixed an issue with bullets in an ODT originating from MS Word and fixed an issue causing text indent and margin in a paragraph style to not override the respective properties in a list style
  20. Mike Kaganski (Collabora) fixed an issue where changing anchoring in a Writer document via a macro would not set modified and undo states, fixed instability and performance issues related to conditional formatting in Calc, made searching by style in Calc more robust, made it possible to install Python-based extensions with spaces in their file names and run macros with non-ASCII characters in their names from the command line, fixed a DOCX compatibility issue affecting text colour and made the logic for adding spaces between the components of table of contents entries smarter. He also made many code cleanups and build fixes
  21. Caolán McNamara (Red Hat) continued polishing dark mode support (like, a lot) and made it so closing the license window does not close LibreOffice. He also made many other UI-related improvements and crash fixes
  22. Stephan Bergmann (Red Hat) made many code and build-related cleanups, for example updating the type reference for the API and making the Clang plugin for detecting mistakes in unit tests smarter. He also fixed crashes and improved and added automated tests
  23. Noel Grandin (Collabora) made many code cleanups, for example converting homegrown mutexes to standard library ones, simplifying allocations and flattening code by removing unnecessary uses of “Pointer to implementation” programming technique
  24. Justin Luth (Collabora) added UI access for Id and TabIndex of FormField controls and fixed DOCX import issues with extra empty paragraphs getting added to sections and incorrect page break positions
  25. Heiko Tietze (TDF) made View Layout status bar icons hidden in Print Preview and improved the layout of Calc’s Sort dialog
  26. Paris Oplopoios (Collabora) fixed an issue with comment replies in DOCX files not getting a paragraph ID
  27. Armin Le Grand (allotropia) worked on multi-color gradient support
  28. Tibor Nagy (NISZ) fixed a priority issue in conditional formatting rules with XLSX import, improved shape connector handling with PPTX files and made it so custom size is retained when saving a background style in PPTX files
  29. Tor Lillqvist (Collabora) worked on the WASM build
  30. Laurent Balland made it so unnecessary options are disabled when using spelled-out number format in Calc and made it so Delete Sheet command in Calc tells you the number of sheets that are to be deleted
  31. Michael Weghorn worked on the Android version, Qt/KDE and accessibility
  32. Regina Henschel improved Fontwork to WordArt compatibility
  33. Áron Budea (Collabora) fixed a couple of crashes
  34. Balázs Varga (allotropia) added VBA function ExportAsFixedFormat for Calc (PDF export)
  35. Colomban Wendling (Hypra) worked on accessibility tests
  36. Kohei Yoshida made it so Calc’s XML source includes the root element of the group
  37. Hossein Nourikhah (TDF) fixed a build configure issue caused by Visual Studio telemetry and made a couple of unit tests work with higher display scalings
  38. Samuel Mehrbrodt (allotropia) fixed issues with table of contents dialog
  39. Czeber László Ádám (NISZ) fixed an issue with extra cells appearing in nested tables with RTF export
  40. Khaled Hosny (Alif Type) made it so macOS’s own Arabic spelling dictionary is detected and corrected the position of the wavy lines indicating spelling errors in case of right-to-left text
  41. Hannah Meeks corrected colour conversions in VBA
  42. Christian Lohmaier (TDF) made some build fixes
  43. Jürgen Funk (CIB) made toolbar tooltips update immediately after shortcut changes
  44. Sebastian Andrzej Siewior made the bin/lo-pack-sources script for compressing sources use more efficient methods of compression
  45. Bartosz Kosiorek improved rendering of arcs in EMF graphics
  46. Björn Michaelsen made refactorings to Writer code
  47. Gábor Kelemen (allotropia) added extra labels to help recognize View menus items when searching in the Customize – Keyboard tab and made it so Rename Sheet only appears once in the Customize dialog
  48. Joel Dowdy fixed bad scoping of frac after MathML import
  49. Sarper Akdemir (Collabora) fixed an issue with extra line breaks in imported PPTX files
  50. Rizal Muttaqin updated Colibre and Sukapura icons in Start Center to match new branding and started working on dark mode support for Sukapura
  51. Vojtěch Doležal made it possible to edit bibliography mark content when right-clicking a bibliography table entry

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

589 bugs, 78 of which are enhancements, have been reported by 382 people.

Top 10 Reporters

  1. sdc.blanco ( 41 )
  2. Rafael Lima ( 14 )
  3. Mike Kaganski ( 13 )
  4. Regina Henschel ( 12 )
  5. Gabor Kelemen (allotropia) ( 12 )
  6. Stéphane Guillou (stragu) ( 8 )
  7. Eyal Rozenberg ( 8 )
  8. peter josvai ( 8 )
  9. jul ( 7 )
  10. Telesto ( 6 )

Triaged Bugs

665 bugs have been triaged by 83 people.

Top 10 Triagers

  1. Buovjaga ( 137 )
  2. Stéphane Guillou (stragu) ( 111 )
  3. Heiko Tietze ( 51 )
  4. m.a.riosv ( 47 )
  5. Dieter ( 38 )
  6. Olivier Hallot ( 29 )
  7. Julien Nabet ( 28 )
  8. V Stuart Foote ( 26 )
  9. Xisco Faulí ( 19 )
  10. Mike Kaganski ( 17 )

Resolution of resolved bugs

483 bugs have been set to RESOLVED.

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

Fixed Bugs

164 bugs have been fixed by 37 people.

Top 10 Fixers

  1. Caolán McNamara ( 20 )
  2. Seth Chaiklin ( 15 )
  3. Mike Kaganski ( 7 )
  4. Michael Stahl ( 6 )
  5. László Németh ( 6 )
  6. Michael Weghorn ( 6 )
  7. Rafael Lima ( 6 )
  8. Justin Luth ( 6 )
  9. Noel Grandin ( 6 )
  10. Heiko Tietze ( 5 )

List of critical bugs fixed

List of high severity bugs fixed

  1. tdf#132714 Crash when icon deleting table-row used for diagram generation. ( Thanks to László Németh )
  2. tdf#152738 LO75RC1: Automatic spell-check not underlining misspelled words; dialog doesn’t use paragraph’s language ( Thanks to László Németh )
  3. tdf#153078 Whole section of Groupedbar Compact UI disappear ( Thanks to Xisco Fauli )
  4. tdf#153756 Unable to open form wizard (GTK3) ( Thanks to Noel Grandin )
  5. tdf#153855 Crash on opening Fontwork dialog with Insert > Fontwork (gtk3) ( Thanks to Xisco Fauli )
  6. tdf#153857 Writer hangs or crashes when right-clicking on form field ( Thanks to Noel Grandin )
  7. tdf#56696 No option to make recent documents list show items for just the currently active LibO module ( Thanks to Andreas Heinisch )

List of crashes fixed

  1. tdf#132714 Crash when icon deleting table-row used for diagram generation. ( Thanks to László Németh )
  2. tdf#153434 crash clicking on “tools -> macro -> manage macro -> basic -> new” ( Thanks to Caolán McNamara )
  3. tdf#153501 Crash when trying to do WollMux mail merge ( Thanks to Stephan Bergmann )
  4. tdf#153622 Crash in: SvListView::SelectListEntry(SvTreeListEntry *,bool) ( Thanks to Caolán McNamara )
  5. tdf#153855 Crash on opening Fontwork dialog with Insert > Fontwork (gtk3) ( Thanks to Xisco Fauli )
  6. tdf#153857 Writer hangs or crashes when right-clicking on form field ( Thanks to Noel Grandin )

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

  1. tdf#104804 Help on “Export Bookmarks” and help on “Export bookmarks as named destinations” is not clear enough ( Thanks to Seth Chaiklin )
  2. tdf#105628 Change “Evaluate” to “Show” in the Entries tab of Table of Contents/Index dialog, when Chapter Number is selected ( Thanks to Seth Chaiklin )
  3. tdf#114773 TOC: Remove additional space after chapter number in ToC ( Thanks to Mike Kaganski )
  4. tdf#30920 Closing License (WRITER-) document closes LibO [summary in comment 36] ( Thanks to Caolán McNamara )
  5. tdf#56696 No option to make recent documents list show items for just the currently active LibO module ( Thanks to Andreas Heinisch )
  6. tdf#63965 CONFIGURATION: two identical functions ( Thanks to Gabor Kelemen )
  7. tdf#78510 FILEOPEN: MSO ODT – Bullet points in wrong location ( Thanks to Michael Stahl )
  8. tdf#82254 FILESAVE: UTF-8 BOM removed from CSV when saving file ( Thanks to Andreas Heinisch )
  9. tdf#95936 Shortcut in tooltip not updated after changing the command’s shortcut ( Thanks to Juergen Funk )
  10. tdf#96039 Not possible to set shortcuts to view modes ( Thanks to Gabor Kelemen )

WORKSFORME bugs

73 bugs have been retested by 35 people.

Top 10 testers

  1. Buovjaga ( 15 )
  2. Stéphane Guillou (stragu) ( 6 )
  3. Dieter ( 5 )
  4. V Stuart Foote ( 4 )
  5. m.a.riosv ( 4 )
  6. Julien Nabet ( 4 )
  7. Olivier Hallot ( 3 )
  8. Robert Großkopf ( 3 )
  9. خالد حسني ( 3 )
  10. tagishsimon ( 2 )

DUPLICATED bugs

125 bugs have been duplicated by 29 people.

Top 10 testers

  1. Stéphane Guillou (stragu) ( 36 )
  2. Buovjaga ( 17 )
  3. V Stuart Foote ( 15 )
  4. Xisco Faulí ( 7 )
  5. m.a.riosv ( 6 )
  6. Heiko Tietze ( 5 )
  7. Telesto ( 5 )
  8. Gabor Kelemen (allotropia) ( 4 )
  9. Dieter ( 4 )
  10. Rafael Lima ( 3 )

Verified bug fixes

45 bugs have been verified by 17 people.

Top 10 Verifiers

  1. NISZ LibreOffice Team ( 6 )
  2. Xisco Faulí ( 6 )
  3. Stéphane Guillou (stragu) ( 5 )
  4. Buovjaga ( 4 )
  5. BogdanB ( 3 )
  6. Gabor Kelemen (allotropia) ( 3 )
  7. V Stuart Foote ( 3 )
  8. Julien Nabet ( 3 )
  9. lol ( 2 )
  10. Michael Weghorn ( 2 )

Categorized Bugs

426 bugs have been categorized with a metabug by 34 people.

Top 10 Categorizers

  1. Stéphane Guillou (stragu) ( 129 )
  2. sdc.blanco ( 48 )
  3. Buovjaga ( 37 )
  4. Heiko Tietze ( 35 )
  5. Dieter

by x1sc0 at March 06, 2023 12:32 PM

March 04, 2023

Jean Hollis Weber

Print editions of new user guides

Recent user guides from the LibreOffice Documentation team are available for free download (PDF, ODT) from the Documentation page on the LibreOffice website, and low-cost printed copies can be purchased from Lulu.com.

Cover of LibreOffice 7.4 Draw GuideCover of LibreOffice 7.5 Writer GuideCover of LibreOffice 7.5 Calc Guide

LibreOffice 7.4 Draw Guide
LibreOffice 7.5 Writer Guide
LibreOffice 7.5 Calc Guide

by Jean at March 04, 2023 08:02 AM

March 03, 2023

LibreOffice Dev Blog

VCL application in its minimal form

LibreOffice uses an internal GUI toolkit, named VCL (Visual Class Library). It creates the GUI widgets for LibreOffice, but it is not generally available for other applications. But there are ways that you can create standalone applications with VCL, at least to learn it better.

If you take a look into the vcl/workben, you will see several workbenches that are actually built during the build process. Previously, we discussed some of them in this post.

Now, I want to discuss the code of the simplest example: minvcl.

It basically creates a simple application with a single window, and that’s all! But even doing that needs several steps. Let’s discuss the code itself.

First come the includes. The include sal/config.h should come with each and every file in LibreOffice, and also VCL. Then, we have several includes from framework, cpppuhelper, comphelper, com/sun/star/lang and com/sun/star/uno, and then language classes from i18nlangtag.

#include <sal/config.h>
#include <framework/desktop.hxx>
#include <cppuhelper/bootstrap.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <i18nlangtag/languagetag.hxx>
#include <i18nlangtag/mslangid.hxx>

After that, comes the includes from VCL. We only use two: the one for a VCL application, and another for a VCL window:

#include <vcl/svapp.hxx>
#include <vcl/wrkwin.hxx>

Keep in mind that you have to provide the link libraries via the make file. In this case, the make file is vcl/Executable_minvcl.mk:

...
$(eval $(call gb_Executable_use_libraries,minvcl,\
    tl \
    sal \
    vcl \
    cppu \
    cppuhelper \
    comphelper \
    i18nlangtag \
    fwk \
))...

And at last, the include file for the main function of the VCL application. Every VCL application is supposed to have SAL_IMPLEMENT_MAIN() instead of main(), which is declared in this file.

#include <sal/main.h>
#include <iostream>

The class TheApplication should fall into an anonymous namespace. This class inherits the VCL application class with the name of Application. As you can see, we keep a VclPtr to a vcl::Window named mpWin that keeps a pointer to our window.

namespace
{
class TheApplication : public Application
{
public:
    virtual int Main();

private:
    VclPtr<vcl::Window> mpWin;
};
}

In the main file, we use a method named Create() to create a window. Then, we set the title using SetText(), and then invoke show() to make the window visible on the screen. This is the main file of the VCL application. It is the entry point for the application.

int TheApplication::Main()
{
    mpWin = VclPtr<WorkWindow>::Create(nullptr, WB_APP | WB_STDWORK);
    mpWin->SetText(u"Minimum VCL application with a window");
    mpWin->Show();
    Execute();
    mpWin.disposeAndClear();
    return 0;
}

We use LibreOffice APIs to create a component context and a service manager. The setProcessServiceFactory() function is used to set the service manager for the process. To understand the service manager, you can refer to the DevGuide:

The LanguageTag::setConfiguredSystemLanguage() function sets the language of the application to the system language. Finally, the framework::getDesktop() function terminates the framework and the DeInitVCL() function frees VCL resources.

SAL_IMPLEMENT_MAIN()
{
    try
    {
        TheApplication aApp;

        auto xContext = cppu::defaultBootstrap_InitialComponentContext();
        css::uno::Reference<css::lang::XMultiServiceFactory> xServiceManager(
        xContext->getServiceManager(), css::uno::UNO_QUERY);
        comphelper::setProcessServiceFactory(xServiceManager);
        LanguageTag::setConfiguredSystemLanguage(MsLangId::getSystemLanguage());
        InitVCL();

        aApp.Main();

        framework::getDesktop(::comphelper::getProcessComponentContext())->terminate();
        DeInitVCL();
        comphelper::setProcessServiceFactory(nullptr);
    }
    catch (...)
    {
        std::cout << "Exception has occurred\n";
        return 1;
    }

    return 0;
}

We should handle the exception in the main function. Here, we just print a simple text to make the user aware that some bad thing has happened.

That’s all! The application is complete now. You can run it via:

./bin/run minvcl

Keep in mind that you have to compile LibreOffice first. 🙂

minvcl

The minvcl window

Final Notes

There are many complex things that you can do with VCL, but this was the simplest example that you can possibly create! I will discuss creating more complex applications that create user interfaces with things like buttons, text and many other UI things. The nice thing about VCL is that you can even create UI from the widgets created from the .ui files designed with Glade. This makes creating GUIs much easier.

I will discuss more complex examples in the next blog posts.

by Hossein Nourikhah at March 03, 2023 07:20 AM

March 01, 2023

Miklos Vajna

Start of multi-page floating tables in Writer

Writer now has the early steps 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.

Motivation

As requested in tdf#61594 10 year ago, the use-case is that you can already have floating tables:

Table in a Writer text frame

And multi-page tables:

Multi-page table

And what we want is a combination of them, like this:

Multi-page floating table

This is a quite complicated feature, since both floating objects and tables are complex, and this combines them to create even more complexity.

However, such constructs are used in existing DOCX files and we're expected to correctly display them.

Results so far

The feature is enabled by default, but the DOCX import only makes use of it if you set the SW_FORCE_FLY_SPLIT=1 environment variable. This allows playing with the feature even if there are lots of known problems still.

On the positive side, core.git sw/qa/core/layout/data/ has 4 files now which are rendered exactly the way Word does.

A bit of terminology: once a frame is split, the first element of the chain is called master, the remaining frames are called follows.

Here are some screenshots from the journey so far:

Not splitting Writer text frame

This is a fly frame with enough content that it doesn't fit the body frame. It should split, but fly frames could not be split.

Writer text frame kept inside the body frame

First try, just limit the height of the (master) fly frame, so at least it stays inside the body frame. But now some content is not rendered.

Incorrect split of a text frame

Next try. Now have have 2 flys, but the second has zero height and the content of the second fly leaks into the body of the second page.

Last version with bad anchoring

This one is better, but the position of the follow fly frame is bad, no actual wrapping happens. Also, we assume that there are multiple paragraphs after the table, which will cause problems for floating tables at the end of the document. So I reworked the anchoring code to split the anchor to as many pages as necessary...

Duplicated anchor text

Which sounds good, but now the text around the anchor point is duplicated.

Less duplicated anchor text on the first page

Better, now the anchor text is gone in the master anchor, but still there is a misleading paragraph marker.

Last text frame without a table

And now this looks reasonable. Fine, we have some minimal split flys, let's try it with tables instead of just two paragraphs:

Floating table with duplicated anchor text

With a bit of work, the table's two rows can split, but again the text in the anchor is duplicated.

Bad horizontal position

Next try, now the anchor text is correct, but the horizontal position of the table is still bad, it bleeds out towards the left margin area.

Fixed horizontal position

And with more work, now this looks correct.

Fixed vertical position

Let's add some vertical offset! That should be only applied on the first page, and now the follow fly doesn't have that unwanted offset.

Now we have 2 documents that lay out correctly on 2 pages. Let's try 3 pages:

Wanted 3 pages, have 2 pages

This falls apart, the 2nd and the 3rd row are both on page 2.

Correctly rendered 3 pages

After partitioning the fly frames to 3 categories (master, non-last follows, last follow), more than 2 pages also work.

Row split is not performed at all

This is a sample where the table has a single cell, so we need to split the (only) row, not just split the table's rows. The first is harder. Currently we don't even try to split it.

Row split is performed, but the 2nd page's object has a bad position

Next try, now we split it, but the position of the follow fly is wrong.

Row split with correct object positioning on all pages

Finally split of a single row inside multi-page floating tables also work. That's where we are. Don't try to do anything too custom (like inserting a header or footer), those cases are still known-broken.

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:

The design of the layout representation is documented in the SwFormatFlySplit constructor.

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 (7.6).

by Miklos Vajna at March 01, 2023 07:11 AM

February 21, 2023

LibreOffice Dev Blog

Telemetry required? Ask users first!

In this article, I will discuss the recent problems with compiling LibreOffice using Microsoft Visual Studio, things that I did to debug and find the root cause, the source of problem itself – which is problems in Microsoft’s telemetry – and how I could fix it.

Describing The Problem

Recently, I was encountering a problem when configuring LibreOffice’s source code before compilation. Sometimes, random errors appeared without further details on why. The title: “powershell.exe” was also strange, as I wasn’t using PowerShell directly.

Powershell Error

Powershell Error

At first, I ignored the message, but then it become more error common, and at some point the configuration was aborted. I ignored that for a while, but after a few days, one of the mentees reported a somehow similar problem.

The error was that the UCRT (which is Microsoft Visual Studio C++’s standard C library), was not found. This is an error log:

$ ./autogen.sh
.
.
.
checking for Windows SDK... found Windows SDK 10.0 (/cygdrive/c/PROGRA~2/WI3CF2~1/10)
checking for midl.exe... C:\Program Files (x86)\Windows Kits\10\/Bin/10.0.20348.0/x64/midl.exe
checking for csc.exe... C:\Windows\Microsoft.NET\Framework\v4.0.30319\/csc.exe
checking for al.exe... C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\/al.exe
checking .NET Framework... found: C:/PROGRA~2/WI3CF2~1/NETFXSDK/4.8/
checking whether jumbo sheets are supported... yes
checking whether to enable runtime optimizations... yes
checking for valgrind/valgrind.h... no
checking for sys/sdt.h... no
checking what the C++ library is... configure: error: Could not figure out what C++ library this is
Error running configure at ./autogen.sh line 321.

Checking the Error Logs

The important log that contains the output of the configuration is the config.log file. In this file, I could see these related lines:

...
configure:19511: result: no
configure:20052: checking what the C++ library is
configure:20078: C:/PROGRA~1/MIB055~1/2022/COMMUN~1/VC/Tools/MSVC/1430~1.307/bin/Hostx64/x64/cl.exe -c  -IC:/PROGRA~2/WI3CF2~1/10/Include/ucrt  -IC:/PROGRA~2/WI3CF2~1/10/Include/ucrt -IC:/PROGRA~1/MIB055~1/2022/COMMUN~1/VC/Tools/MSVC/1430~1.307/Include conftest.cpp >&5
conftest.cpp
C:/PROGRA~1/MIB055~1/2022/COMMUN~1/VC/Tools/MSVC/1430~1.307/Include\cstddef(12): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
Microsoft (R) C/C++ Optimizing Compiler Version 19.30.30711.2 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.
...

The strange thing was that I could configure that compilation with another Cygwin terminal with slightly different settings. To find the differences, I used the command export to see the values of the environment variables in the two configured terminals, and compare them using diff.

Then, I found that I could evade the problem by setting this environment variable. This was the environment variable from one of the terminals:

export CYGWIN="disable_pcon"
https://cygwin.com/cygwin-ug-net/using-cygwinenv.html

Unfortunately, this was not the case for our mentee who has the same problem. I also knew that this approach may lead to performance degradation.

Looking Further Into the Details

I tried to look further into the details of configure.ac, and debug to understand the root cause of the problem. At first, I changed the version manually in configure.ac, and the configuration actually worked! If you take a look into find_ucrt() function, the relevant part is:

PathFormat "$(win_get_env_from_vsdevcmdbat UniversalCRTSdkDir)"
UCRTSDKDIR=$formatted_path
UCRTVERSION=$(win_get_env_from_vsdevcmdbat UCRTVersion)

Setting the PathFormat and UCRTVERSION to something from a good build fixed the problem: configuration and make went smooth, and finished successfully.

Then, I tried to look into win_get_env_from_vsdevcmdbat() function. As the name implies, it runs the VsDevCmd.bat, and uses the contents of the two environment variables: PathFormat and UCRTVERSION.

This function creates a batch file in the temporary folder, runs it and gets the output, and then removes it. So, removed the removal part, and saved the created batch files.

I was skeptical about the commands that were processing the outputs of the batch files, so I tried to change them a little, but that didn’t help. The nice thing was that each of them were working fine. I ran them several times, but there was no problem! Then I decided to run them exactly one after another, and then I saw that sometimes there was no output.

Finding the Root Cause

At the point, I was almost certain that the problem was from the VSDevCMD.bat itself, but I didn’t know why, and how to fix that. So, I took a look into the script, and guess what: the problem was from the telemetry! If the variable VSCMD_SKIP_SENDTELEMETRY is not set, the command line tries to open a PowerShell script, and send data to Microsoft! That was the source of problem. This is the relevant part of the code:

@REM Send Telemetry if user's VS is opted-in
if "%VSCMD_SKIP_SENDTELEMETRY%"=="" (
    if "%VSCMD_DEBUG%" NEQ "" (
        @echo [DEBUG:%~nx0] Sending telemetry
        powershell.exe -NoProfile -Command "& {Import-Module '%~dp0\Microsoft.VisualStudio.DevShell.dll'; Send-VsDevShellTelemetry -NewInstanceType Cmd;}"
    ) else (
        START "" /B powershell.exe -NoProfile -Command "& {if($PSVersionTable.PSVersion.Major -ge 3){Import-Module '%~dp0\Microsoft.VisualStudio.DevShell.dll'; Send-VsDevShellTelemetry -NewInstanceType Cmd; }}" > NUL
    )
)

To fix that, I used the value 1 for the variable to opt out of telemetry:

set VSCMD_SKIP_SENDTELEMETRY=1

This change is now merged into the LibreOffice code:

So, the problem should be fixed by now.

Best Practices for Doing Telemetry

It took a lot of time to debug and find the root cause of the problem. I think the best way to avoid causing problems for the users of the Visual Studio would be asking for the users’ consent before activating the telemetry.

I agree that there are legitimate or justifiable reasons to do telemetry, but getting the users’ consent is very important before sending data back to the corporate servers.

In LibreOffice, we consider users the top priority, and we are bound to the best practice of: “Telemetry required? Ask users first”, and we ask others to do the same.

by Hossein Nourikhah at February 21, 2023 03:03 PM

February 13, 2023

Roman Kuznetsov

Video about QA process in LibreOffice

On last Saturday I talked online (using our jitsi) about QA process in LibreOffice for some Russian people who want to be QA engineer in near future. One smart person made the record of my video presentation and now you can watch it on Youtube by link below: 

There were around 20 persons there. Some from them now want to try to contribute in LibreOffice project as QA. Let's see =)

by Roman Kuznetsov (noreply@blogger.com) at February 13, 2023 08:31 AM

February 10, 2023

LibreOffice QA Blog

QA/Dev Report: January 2023

General Activities

  1. LibreOffice 7.4.5 was announced on January 26
  2. Rafael Lima continued polishing dark mode support, made the BASIC code editor warn in case of read-only modules and dialogs and made it possible to toggle the display of section boundaries independent from text boundaries in Writer. He also added a help page for Calc’s STYLE function and improved and expanded ScriptForge help
  3. Adolfo Jayme Barrientos made many smaller string improvements both in help and in the UI
  4. Olivier Hallot (TDF) added a guide to help for Content Controls, updated menu item paths and added help pages for Translate command, page numbering wizard and reworked help pages about indexes
  5. Stéphane Guillou (TDF) improved the help for paragraph styles
  6. Miklós Vajna (Collabora) made XHTML export more robust, created plumbing for citation handling in Writer and expanded the XML layout dumping developer functionality. He also fixed crashes and several Writer regressions
  7. Jean-Pierre Ledure worked on the ScriptForge library
  8. Tünde Tóth (NISZ) fixed issues with oversized bounding boxes when editing embedded objects in PPTX or XLSX files and made it so linked OLE objects are retained upon PPTX export
  9. Szymon Kłos, Pranam Lashkari, Mert Tumer, Ashod Nakashian, Andras Timar and Henry Castro (Collabora) worked on LOKit improvements. Szymon also corrected the exporting of symbol characters to DOCX. Andras added support for importing colours with transparency from HTML
  10. Eike Rathke (Red Hat) fixed issues related to the Calc option “Use English function names” and Manage Changes dialog in Calc. He also corrected the help references for End and Shift+End keyboard shortcuts in Calc
  11. Tomaž Vajngerl (Collabora) polished support for document themes, for example adding a dialog for changing the theme used in the document
  12. Julien Nabet made many cleanups in autocorrect entries for different languages (together with Caolán), also adding a script to check for mistakes in the autocorrect definition files. He also fixed an issue with copying content in Base to a table without an auto value primary key and an issue with rendering text warp shapes in RTF files (together with Regina Henschel)
  13. Jim Raykowski added an indicator for linked images in Navigator and made it possible to navigate by field starting from the last field
  14. Andreas Heinisch made it so AutoText dialog proposes the name and shortcut for a new snippet based on currently selected text, made Calc sheet arrangement in the tab bar respect RTL settings and made CSV import dialog display RTL words in the expected order
  15. László Németh made DOCX import of tables more relaxed in case of missing definitions, made it so hidden bookmarks don’t display markers in the document, fixed a WebDAV upload issue and fixed some crashes and regressions
  16. Xisco Faulí (TDF) made over 20 additions and improvements to automated tests and fixed some crashes
  17. Michael Stahl (allotropia) improved the DOCX and RTF compatibility with hidden paragraph breaks, made it so URLs are not hyphenated by default, improved DOCX and RTF compatibility with table of content styles and fixed issues with XForms form submission and selecting all when a hidden paragraph is at the start or end of a Writer document
  18. Mike Kaganski (Collabora) fixed issues with list numbering and line height in DOCX files and a layout refresh issue after running certain macros. He also made many code cleanups and improvements to readability
  19. Caolán McNamara (Red Hat) improved the accessibility of the Envelope dialog, worked on initial accessibility support for gtk4, continued polishing dark mode support and removed the arbitrary limit of thirty thousand words in dictionaries. He also made many other UI-related improvements and crash fixes
  20. Stephan Bergmann (Red Hat) made many code and build-related cleanups, for example adding support for dynamic_cast on UNO proxy objects, simplifying accessibility code, refactoring many helper classes, removed some dead C++ UNO bridge implementations and fixed some deadlocks. He also made fixes to automated tests
  21. Noel Grandin (Collabora) updated Skia to the latest version. He also made many code cleanups, for example fixing issues found by ThreadSanitizer, working toward the goal of converting VCL to use alpha instead of transparency in colours, simplifying code by using dynamic_cast instead of XUnoTunnel and reducing complexity in Impress and Draw code that uses UNO
  22. Justin Luth (Collabora) added support for conditional text to DOC and RTF export, VBA macro buttons in XLSM files, Linked Cell property of checkboxes in XLSX files and FormField controls in BASIC and VBA. He also fixed issues with DOCX Merge Field Formatting, unnecessary highlighting of No List toolbar button, incorrect table cell heights in DOC and DOCX files and made big improvements to outline numbering
  23. Heiko Tietze (TDF) improved the accessibility of status icons for colour blind people, made the Paragraph Style toolbar dropdown less cluttered and made several other UI improvements
  24. Paris Oplopoios (Collabora) worked on Content Controls and DOCX compatibility with comment replies
  25. Armin Le Grand (allotropia) made refactorings in graphics handling code, for example changing how graphical primitives are rendered with Direct2D
  26. Taichi Haradaguchi updated some patches for external dependencies and updated curl
  27. Tibor Nagy (NISZ) fixed incorrect scaling in shape backgrounds with PPTX export
  28. Radhey Parekh fixed an issue with unwanted line breaks in imported text files and limited sheet insertion action in Calc to just the button instead of the whole tab bar
  29. Arnaud Versini made some code cleanups
  30. Tor Lillqvist (Collabora) worked on the WASM build
  31. Chenxiong Qi ported many Java SDK examples to Python
  32. Laurent Balland fixed issues in Calc number formats
  33. Patrick Luby (NeoOffice) fixed issues related to Skia and improved stability on macOS
  34. Attila Szűcs (Collabora) fixed PPTX import issues related to shape transparency, connectors and line breaks in Fontwork
  35. Dennis Francis (Collabora) made PDF exporting more robust
  36. Michael Weghorn worked on the Android build
  37. Ilhan Yesil made it possible to set a background colour for listbox form controls
  38. Vasily Melenchuk (CIB) fixed RTF import issues related to list numbering, indent in tables and table cell widths
  39. Regina Henschel implemented conversion of WordArt to Fontwork upon DOCX import, started working on Fontwork DOCX export support and improved compatibility with DOCX document themes
  40. Áron Budea (Collabora) fixed a regression affecting right-to-left UI
  41. Wu Jiahuan (Loongson) fixed a test failure affecting loongarch64 UNO bridge
  42. Winfried Donkers made MATCH, HLOOKUP and VLOOKUP Calc functions comply with the ODF specification
  43. Gülşah Köse (Collabora) fixed a pie chart MS Office compatibility issue and made the Sidebar area property panel more intuitive
  44. Fred Kruse made improvements that benefit the performance of the LanguageTool extension
  45. Balázs Varga (allotropia) added formula support to Calc’s data validation feature
  46. Colomban Wendling (Hypra) worked on accessibility tests
  47. Kohei Yoshida added support for wrap-text and shrink-to-fit flags in Excel 2003 XML import, fixed a character encoding issue in Calc’s XML source feature and upgraded mdds and orcus libraries
  48. Mark Hung worked on custom animation sound support for PPTX export
  49. Hossein Nourikhah (TDF) improved the VCL workbench examples
  50. Samuel Mehrbrodt (allotropia) converted dialogs warning about disabled macro functionality into infobars

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

501 bugs, 44 of which are enhancements, have been reported by 302 people.

Top 10 Reporters

  1. Gabor Kelemen (allotropia) ( 26 )
  2. BogdanB ( 23 )
  3. Mike Kaganski ( 17 )
  4. Telesto ( 14 )
  5. Regina Henschel ( 13 )
  6. Stéphane Guillou (stragu) ( 13 )
  7. Xisco Faulí ( 13 )
  8. sdc.blanco ( 9 )
  9. Robert Großkopf ( 8 )
  10. NISZ LibreOffice Team ( 6 )

Triaged Bugs

717 bugs have been triaged by 77 people.

Top 10 Triagers

  1. Buovjaga ( 207 )
  2. Stéphane Guillou (stragu) ( 136 )
  3. Heiko Tietze ( 38 )
  4. m.a.riosv ( 33 )
  5. Julien Nabet ( 32 )
  6. Telesto ( 26 )
  7. Dieter ( 21 )
  8. V Stuart Foote ( 21 )
  9. Xisco Faulí ( 16 )
  10. Mike Kaganski ( 15 )

Resolution of resolved bugs

541 bugs have been set to RESOLVED.

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

Fixed Bugs

164 bugs have been fixed by 34 people.

Top 10 Fixers

  1. Caolán McNamara ( 21 )
  2. Michael Stahl ( 10 )
  3. Heiko Tietze ( 8 )
  4. Rafael Lima ( 8 )
  5. Justin Luth ( 7 )
  6. László Németh ( 6 )
  7. Mike Kaganski ( 6 )
  8. Andreas Heinisch ( 5 )
  9. Patrick Luby ( 5 )
  10. Noel Grandin ( 5 )

List of critical bugs fixed

  1. tdf#153059 CRASH: Clicking on the header/footer button after scrolling ( Thanks to Caolán McNamara )

List of high severity bugs fixed

  1. tdf#107625 Envelope dialog: Make dialog more a11y friendly ( Thanks to Caolán McNamara )
  2. tdf#146248 Crash at undo header swlo!sw::XTextRangeToSwPaM+0x5f9: ( Thanks to László Németh )
  3. tdf#147342 [macOS] UI Scale not working on non HighDPI external display when using Skia and a laptop with Retina display (HighDPI) ( Thanks to Patrick Luby )
  4. tdf#150380 Calc crash when clicking on the title of the Border Color toolbar popdown ( Thanks to Noel Grandin )
  5. tdf#152245 Crash with copy-paste from Calc to Writer table with tracked changes ( Thanks to László Németh )
  6. tdf#152710 CRASH: importing ooo84576-1.odt, crashtest; corrupt document structure ( Thanks to Michael Stahl )
  7. tdf#152950 Calc sort crashes after changing from default language to a different one ( Thanks to Caolán McNamara )
  8. tdf#152964 Crash on undo deletion of table with track changes enabled ( Thanks to László Németh )
  9. tdf#153003 Copying a query and pasting as table in same database impossible ( Thanks to Julien Nabet )
  10. tdf#153161 FILESAVE: Data cannot save successfully if I open an old presentation, add some text in it, save it and close it. ( Thanks to Mike Kaganski )
  11. tdf#42437 Enable the macOS press-and-hold functionality for special character input (é, ñ, etc.) ( Thanks to Patrick Luby )
  12. tdf#45147 right-to-left words appear in the wrong order in the CSV import dialog ( Thanks to Andreas Heinisch )

List of crashes fixed

  1. tdf#146248 Crash at undo header swlo!sw::XTextRangeToSwPaM+0x5f9: ( Thanks to László Németh )
  2. tdf#148453 LibreOffice crashes/hangs when macOS onscreen keyboard is enabled (Arm64) M1 ( Thanks to Patrick Luby )
  3. tdf#150380 Calc crash when clicking on the title of the Border Color toolbar popdown ( Thanks to Noel Grandin )
  4. tdf#150819 CRASH & assert after a few paste and undo (Assertion failed: (abs(rNode.GetIndex() – pMoveText->pDestNode->GetIndex()) == SwNodeOffset(1)), function SwClientNotify, file txtfrm.cxx, line 2135) ( Thanks to Noel Grandin )
  5. tdf#152245 Crash with copy-paste from Calc to Writer table with tracked changes ( Thanks to László Németh )
  6. tdf#152404 Crash in Writer when using Japanese Hiragana input method and shortcut Ctrl+Alt+C to insert a new comment while there is uncommitted text ( Thanks to Caolán McNamara )
  7. tdf#152710 CRASH: importing ooo84576-1.odt, crashtest; corrupt document structure ( Thanks to Michael Stahl )
  8. tdf#152950 Calc sort crashes after changing from default language to a different one ( Thanks to Caolán McNamara )
  9. tdf#152964 Crash on undo deletion of table with track changes enabled ( Thanks to László Németh )
  10. tdf#153059 CRASH: Clicking on the header/footer button after scrolling ( Thanks to Caolán McNamara )
  11. tdf#153116 CRASH when removing text box from drawing object (GTK3) ( Thanks to Caolán McNamara )
  12. tdf#153154 changing instance structure in XML Forms document causes crash ( Thanks to Xisco Fauli )
  13. tdf#153220 CRASH: Clicking on Border and background after undoing header insertion ( Thanks to Caolán McNamara )

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

  1. tdf#100584 With an RTL sheet, make added sheets RTL as well ( Thanks to Andreas Heinisch )
  2. tdf#101731 Rename gradient ‘border’ label to something more meaningful ( Thanks to Stéphane Guillou )
  3. tdf#106731 No indication macro is read-only ( Thanks to Rafael Lima )
  4. tdf#107625 Envelope dialog: Make dialog more a11y friendly ( Thanks to Caolán McNamara )
  5. tdf#112417 UI – Insert Sheet called when clicking anywhere on the footer ( Thanks to Radhey Parekh )
  6. tdf#113439 [UX] Add a Show/hide entry in context menu of layers tabs in Draw ( Thanks to Heiko Tietze )
  7. tdf#114537 Filesave: Export ConditionalText field to DOC ( Thanks to Justin Luth )
  8. tdf#114973 Ctrl+A and Select All don’t work

by x1sc0 at February 10, 2023 01:12 PM

February 06, 2023

Miklos Vajna

Citation handling: plumbing in Writer for e.g. Zotero

Writer now has a set of new automation commands and APIs that allow clients to build user interface for citation handling that's more advanced than the default in-Writer bibliography support.

This work is primarily for Collabora Online, see the CODE release notes for one possible way to use this.

Motivation

Citations and bibliography in Writer, using fieldmarks

Users frequently using scientific citations are probably familiar with the limits of Writer's built-in bibliography support, and solutions like Zotero appeared (with a LibreOffice extension included) to improve that situation.

This means that instead of storing all your scientific notes and data locally, you can store them on a Zotero server, then work with that from anywhere, once you provide your credentials.

The trouble comes when you want to combine this with collaborative editing, which is provided by Online, but you can't use the extension made for the desktop.

The above CODE release notes explains how an end user can use this feature, this post is meant to document what new UNO commands and LOK APIs I added that serve as a backend for this. Especially the UNO commands are also useful in other contexts, like in macros or other extensions.

Results so far

Zotero can store citations using 3 markups in documents: fields (DOCX only), bookmarks (DOCX and ODT) and finally reference marks / sections (ODT only). The added plumbing allows several operations for all 3 cases, to work with existing documents using any of these markups.

The citation and the bibliography is handled the same way for fields (Writer's fieldmarks) and bookmarks. The last case uses reference marks for citations, but sections for the bibliography.

The following operations are supported:

  • create the citation / bibliography

  • read the object under the cursor

  • read all objects of a given type in the document

  • update the object under the cursor

  • update all objects of a given type in the document

  • delete all objects of a given type in the document

Reading is only available to LOK clients, you need to call the getCommandValues() API. The rest is normal UNO commands that you can invoke from document macros or extensions as well.

The added plumbing is the following:

Operation Fieldmark Bookmark Refmark Section
Create .uno:TextFormField .uno:InsertBookmark .uno:InsertField .uno:InsertSection
Read getCommandValues(".uno:TextFormField") getCommandValues(".uno:Bookmark") getCommandValues(".uno:Field") None
Read all getCommandValues(".uno:TextFormFields") getCommandValues(".uno:Bookmarks") getCommandValues(".uno:Fields") getCommandValues(".uno:Sections")
Update .uno:UpdateTextFormField .uno:UpdateBookmark .uno:UpdateField None
Update all .uno:TextFormFields .uno:UpdateBookmarks .uno:UpdateFields .uno:UpdateSections
Delete all .uno:DeleteTextFormFields .uno:DeleteBookmarks .uno:DeleteFields .uno:DeleteSections

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 22.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 (7.6).

by Miklos Vajna at February 06, 2023 07:45 AM

February 05, 2023

LibreOffice Dev Blog

QR code improvement – LibreOffice EasyHack

A QR code is a type of 2D barcode that is useful for encoding data, such as a URL, contact information and many other data types. One can scan the code via applications on mobile phones to capture a URL or import contact information.

For example, the code below encodes the address of the LibreOffice website:

Encoding LibreOffice website URL with QR code

Encoding LibreOffice website’s URL in a QR code

Generating QR Codes in LibreOffice

In LibreOffice, it is possible to create different barcodes, either 1D or 2D, via extensions, or LibreOffice’s internal functionality.

QR code dialog

QR code dialog

For QR codes, it is possible to use the internal functionality via Insert > OLE Object > QR and Barcode:

The implementation in LibreOffice is using ZXing QR code library:

If you take a look at the source code in cui/source/dialogs/QrCodeGenDialog.cxx, there is ConvertToSVGFormat() function which creates the SVG output. In the recent versions of ZXing library (we use v1.4 right now), there is a function that does that, ZXing::ToSVG(). The task here is to replace the our function with the one from ZXing library.

Handling Different Library Versions

Unfortunately, only recent versions of ZXing provide ZXing::ToSVG() functions. It is not available in 1.3, but is added in 1.4. Looking into the packaging of the library in different distributions, it becomes obvious that this package version is not available yet in many distributions:

Therefore, a solution should check the ZXing library version, and use the new function if the library version is >= 1.4. In other words, limiting the change to where the new version of the library is present is necessary. This is possible using compiler conditionals. It is important where one configures the LibreOffice compilation to use system provided ZXing library, using --with-system-zxing while invoking autogen.sh.

Final Notes

EasyHacks are good starting points for someone who wants to get started in LibreOffice development. This specific issue for improving QR code is filed as tdf#153328 in TDF’s Bugzilla. To understand how to get started with LibreOffice development, you can refer to our getting involved page in the TDF Wiki, or our video tutorial for getting started with LibreOffice development.

by Hossein Nourikhah at February 05, 2023 03:35 PM

January 30, 2023

Collabora Community

Collabora Productivity at FOSDEM 2023

FOSDEM 2023 – Back in Brussels

FOSDEM 2023 is back home in Brussels. Meet the Collabora Productivity team at Europe’s largest gathering of open-source developers and have a chat, some fries or a beer with us (also: make sure to grab some stickers!). As usual, our engineers will be giving talks about the latest developments in Collabora Online, Collabora Office and LibreOffice at the LibreOffice Technology devroom. Here’s the schedule!

Saturday, February 4th 2023

Collabora at the LibreOffice Technology devroom

 

Noel Grandin

16:10 – LibreOffice Technology devroom See details

Turbocharging an Elephant – Making LibreOffice Faster

Most of the easy tasks are already done. This talk covers several improvements to LibreOffice, that required lots of preparational work and interesting challenges to introduce improvements into a massive (and messy) codebase.

 

Pranam Lashkari

16:20 – LibreOffice Technology devroom See details

Feature Locking and Feature Restriction – Integrator’s Way to Unlock Potential

In the talk, Pranam Lashkari will explain and demonstrate how feature locking and restrictions work in Collabora Online. Using such methods, integrators can control which features to deliver to which user or group.

 

Sarper Akdemir

16:30 – LibreOffice Technology devroom See details

An Interoperability Improvement in LibreOffice Impress Tables

Sarper Akdemir tells the story of an interoperability bug fixing adventure where the problem turned out to be deeper than it appeared at first glance, showcasing how there are multiple approaches to a single interoperability problem.

 

Miklos Vajna

16:40 – LibreOffice Technology devroom See details

Writer Content Controls – What Happened in the Past Half Year

LibreOffice was capable of handling form filling in Writer for a while already. In the meantime, the competition introduced Structured Document Tags. Writer Content Controls are meant to perform a great handling of this third type of form filling. See Miklos Vajna‘s talk about what we have done to bring themes to LibreOffice, hear what still needs doing and find out how you can help.

 

 

 

Szymon Kłos

 17:40 – LibreOffice Technology devroom See details

LibreOfficeKit – Bridge Between Your Application and LibreOffice

Szymon Klos gives a short introduction into integrating LibreOffice using LibreOfficeKit with external software. He will describe the most important code pieces and show, where to look for information. Furthermore, he’ll demonstrate how to add new features, which API we provide, and what can be done with tiled rendering.

 

Michael Meeks

 17:50 – LibreOffice Technology devroom See details

Collabora Online Over Lockdown – How LibreOffice Technology in the Browser Got Better

Come and hear how Collabora Online (COOL) has improved over the COVID-19 era, not only in core feature-function, but also in ease of access and deployment for everyone. See how we can deliver scalable, secure, on-premise editing of your documents with a simple, easy to deploy office for the free world.

 

Pedro Pinto Silva

 18:10 LibreOffice Technology devroom See details

Make Collabora Online Yours – Customize and Integrate it Everywhere

Collabora Online is quite flexible in the means that you can alter to your personal taste without the need to change other core components. Pedro Pinto Silva shows how to make Collabora Online yours. Discover all the shining new additions to the user interface and learn how to customize and integrate it everywhere.

 

Tor Lillqvist

18:30 – LibreOffice Technology devroom See details

Collabora Online and WASM – Assembling Off-line Collabora Online with the Web

Come hear Tor Lillqvist‘s talk about a new approach to enabling browser deployment of rich office functionality – built on top of allotropia’s investment in enabling the core LibreOffice technology to compile to Web Assembly (WASM) – combined with the Collabora Online front-end. Hear about how this can be used to provide a fall-back (non-collaborative) editing mode for when you lose network connectivity for a while, and about the plans to re-synchronize documents on the return from such a tunnel.

 

 

About Collabora Online

Collabora Online 22.05 is our latest enterprise release. It’s suitable for large-scale deployment, and comes with SLA, enterprise support with signed security updates as well as interaction with product management, helping to direct our development priorities. Collabora Online integrates flawlessly into Nextcloud, ownCloud, Seafile, and many of the major file sync & share, groupware and hosting solutions. It’s ideal for organizations that want to collaborate on documents, without losing control over them or compromising on privacy. With the ability to host it on your own hardware or to integrate it into a trusted environment, Collabora Online is the ideal online office suite for digital sovereignty. Enterprises interested in using Collabora Online can check out our home page for more information on partner integrations and online demos. Hosting and Cloud businesses that wish to add Collabora Online to their product portfolio can become a partner. For any questions or tailored solutions, do not hesitate to contact hello@collaboraoffice.com.

 

The post Collabora Productivity at FOSDEM 2023 appeared first on Collabora Office and Collabora Online.

by Marc Rodrigues at January 30, 2023 10:12 AM

January 28, 2023

LibreOffice Dev Blog

VCL example applications and tools

You may already know that LibreOffice uses its internal GUI toolkit, named VCL (Visual Class Library). This library is responsible for creating the GUI widgets for LibreOffice, providing abstraction from the operating system including the basic rendering. To see more details, you can read its documentation page:

VCL has the nice feature of being able to work with different GUI libraries on different platforms. For example, if you are on Linux, you can use X11, Gtk3/4, Qt, or KDE back-ends for the VCL applications like LibreOffice. You can easily switch between them by using the environment variable SAL_USE_VCLPLUGIN. For example, you can use the old style X11 GUI in this way:

SAL_USE_VCLPLUGIN=gen instdir/program/soffice

Or, by passing it to the LibreOffice program itself:

instdir/program/soffice -env:SAL_USE_VCLPLUGIN=gen

In addition, there are other GUI backends, or plugins which are as follows:

UI Plugin UI Backend
qt5 Qt 5
qt6 Qt 6
kf5 KDE KF5
gtk3 GTK 3
gtk4 GTK 4
gtk3_kde5 GTK 3 KDE 5
win Windows UI (Windows only)
osx macOS X UI (macOS only)

You can read more about the related environment variables here:

The code for the library is available in the vcl/ folder inside core source code. Also, beside the main source code and tests, there is a folder named workbench. Inside this folder, you can find several standalone VCL applications:

VCL Applications and Workbenches

vcldemo: This is a showcase of some of the VCL rendering abilities including the lines, shapes, internationalized text, pictures and more! You can see run this demo by invoking this command, after you could be able to build LibreOffice:

./bin/run vcldemo
vcldemo vcl application

vcldemo

minvcl: This is possibly one of the smallest example application that can be created with VCL. Basically, It creates a window and draws a simple text inside it. Likewise, you can run it by invoking:

./bin/run minvcl
minvcl vcl application

minvcl

Image Tools

icontest: This bitmap image testing is used by some of the developers to test VCL bitmap rendering capabilities. It can be invoked this way:

./bin/run icontest <image>

mtfdemo: This is a small application for displaying and dumping the structure of EMF/EMF+/WMF files, which is a vector image format from Microsoft. This is previously discussed in another blog post here:

Similarly, it can be run in this way:

./bin/run mtfdemo <emf|wmf image>

Font Tools

listfonts: This utility lists the current list of fonts installed in the system, and the features of each font. To display the information on the screen, you can invoke it this way:

./bin/run listfonts --

listglyphs: This utility lists the current glyphs in a font that is already installed on the system. You should provide the font name to it, in this way:

./bin/run listglyphs FreeMono --

VCL Fuzzers and Platform Specific Tools

Beyond the above applications and tools, there are many other platform specific tools that are not available on each and every platform. Also, there are many fuzzers ans testing tools that are helpful for fuzz-testing the library. You can find the complete list of executables using this command:

ls vcl/Executable_*.mk

As can be seen in the output, many of them are fuzzers. To use the fuzzers, first you have to setup the oss-fuzz via ./bin/oss-fuzz-setup.sh script. Then, you may be able to build the fuzzers using ./bin/oss-fuzz-build.sh script. Make sure that you have $OUT, $SRC and $WORK environment variables to set the fuzzer build environment. Be ready for several tarballs and archives downloads at first. You will need curl and svn to continue.

Final Notes

These tools and small applications and their source code are good for testing and getting to understand the VCL library better. As a suggestion, you can start from the minvcl.cxx to understand how to create a GUI application that can work across various platforms with different GUI toolkits. Hopefully, I will discuss the source code of some of these examples in the later blog posts.

by Hossein Nourikhah at January 28, 2023 01:56 PM

January 20, 2023

January 17, 2023

LibreOffice QA Blog

LibreOffice 7.5 RC2 is available for testing

LibreOffice 7.5 will be released as final at the beginning of February, 2023 ( Check the Release Plan ) being LibreOffice 7.5 Release Candidate 2 (RC2) the forth and final pre-release since the development of version 7.5 started in mid June, 2022. Since the previous release, LibreOffice 7.5 RC1, 89 commits have been submitted to the code repository and 39 issues got fixed. Check the Release Notes to find the new features included in this version of LibreOffice.

LibreOffice 7.5 RC2 can be downloaded for Linux, macOS and Windows, and it will replace 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 January 17, 2023 01:10 PM

January 10, 2023

LibreOffice QA Blog

QA/Dev Report: December 2022

General Activities

  1. Rafael Lima continued polishing dark mode features and improved scrolling and zooming in the Basic code editor. He also improved help for ScriptForge
  2. Adolfo Jayme Barrientos updated the icons and colours in Help to match the new application icons
  3. Alain Romedenne improved help pages on built-in file dialogs
  4. Olivier Hallot (TDF) improved several extended tooltips and improved the help on cell references and cell addressing in Calc
  5. Bogdan Buzea improved the quality of the applause audio clip found in the gallery and made many string fixes and improvements in help and in the UI code
  6. Ilmari Lauhakangas (TDF) dropped the unnecessary name attribute from link elements in help with support from Christian Lohmaier
  7. Miklós Vajna (Collabora) added new commands .uno:GotoMark for jumping to a bookmark and .uno:UpdateBookmarks to update the content of a bookmark (helps especially with Zotero citations) and enhanced .uno:InsertBookmark and .uno:InsertField to allow specifying bookmark/refmark text. He also improved the Writer layout XML dump developer feature, improved the DOCX compatibility of paragraph marker formatting, fixed a layout issue related to bookmarks and fixed some Writer crashes.
  8. Jean-Pierre Ledure worked on the ScriptForge library
  9. Szymon Kłos, Andras Timar and Michael Meeks (Collabora) worked on LOKit improvements. Michael also fixed a macOS deadlock related to user input events
  10. Henry Castro (Collabora) added a mail merge unit test and made some code cleanups
  11. Eike Rathke (Red Hat) fixed an issue with date handling in Base, made it so line breaks are preserved in multi-line text when applying Formula to Value in Calc and fixed some crashes. He also improved the help for STYLE and INDEX Calc functions
  12. Tomaž Vajngerl (Collabora) polished support for document themes, for example adding the ability for reading theme colours from OOXML
  13. Julien Nabet fixed an issue with Base table UI, made Calc’s Paste Special dialog fully translatable, added an Nvidia GPU to Skia Vulkan denylist and fixed some crashes
  14. Jim Raykowski implemented a feature that highlights elements in a Writer document when selecting or hovering over their counterparts in the Navigator. He also made several other improvements to the Navigator, such as making it possible to delete references through it
  15. Andreas Heinisch made it so AutoText no longer inserts an additional empty paragraph, made bibliography entries appear sorted by identifier in Insert Bibliography dialog and improved the behaviour of input fields with a length restriction
  16. László Németh improved LibreLogo rendering speed and made it support more character formatting features. He also made it possible to check the spelling of hyperlinks, fixed an issue with comments disappearing from corrected misspelled words, added two options to spell checking dealing with compound words and fixed some regressions
  17. Xisco Faulí (TDF) continued refactoring automated tests, getting rid of much code duplication and created several new tests. He also improved the script used for downloading documents from online forums and fixed several crashes
  18. Michael Stahl (allotropia) continued improving the compliance of exported PDFs with Universal Accessibility standard, made DOCX export of bold attributes more robust and fixed some regressions
  19. Mike Kaganski (Collabora) made the code for setting property values safer, improved the new Math Sidebar panel, improved Visual Studio debugging experience, added support for hyphen-minus in style IDs. He also made many code cleanups and improvements to readability
  20. Caolán McNamara (Red Hat) continued polishing dark mode support, improved the opening performance of Application Colors option view, made it so localised font names match UI language instead of system locale, made text layouting more robust, added a button to remove all document events and made it possible to discover the causes of event-bound macro warnings through an infobar, made Statusbar in Writer show tooltips for sections and tables, made Calc’s sheet navigation and insertion buttons show tooltips and improved the Romanian AutoCorrect file. He also made many other UI-related improvements and crash fixes
  21. Stephan Bergmann (Red Hat) improved the debugging experience of unit tests. He also adapted the code to compiler changes and made many code and build-related cleanups as well as test fixes
  22. Noel Grandin (Collabora) improved the performance of SUMPRODUCT(IF..) in Calc and fixed an API usage issue with some chart UNO objects not advertising their types properly. He also made many code cleanups and general optimisations
  23. Justin Luth (Collabora) worked on VBA ContentControls support, improved the DOCX roundtripping of content controls, improved the indentation of list styles and made font and highlight colour toolbar buttons work in comments
  24. Paris Oplopoios (Collabora) added support for hidden status of range filter buttons in XLSX files, improved XLSX compatibility of charts and DOCX compatibility of content controls and made saving Writer documents with macros to Microsoft format conform to the DOCM file type requirement. He also improved Writer’s Accessibility checker
  25. Chris Sherlock made some code cleanups in vcl
  26. Maxim Monastirsky improved the handling of Draw table styles, for example making pasting action behave more intuitively
  27. Khaled Hosny (Alif Type) removed the bundled Source Serif/Sans/Code Pro, Kacst Book/Office fonts due to various issues, separated stylistics sets and character variants in the Font Features dialog, fixed the calculation of ascenders and descenders of some fonts upon PDF export, worked around an issue with strike out formatting of text using Liberation Serif font, improved the handling of different script types in various text previews and fixed an issue with gaps appearing after Kashida. He also made many renovations in font-related code
  28. Armin Le Grand (allotropia) improved the appearance of the blur effect with shadows and made refactorings in graphics handling code
  29. Taichi Haradaguchi upgraded some dependencies
  30. Daniel Lohmann made it so the presenter screen displayed as a normal window can also be shown on a single monitor
  31. Tibor Nagy (NISZ) fixed issues with tiled image sizes being reset in the Area tab, incorrect 3D shape properties in PPTX export and tiled background images in PPTX import
  32. Christian Lohmaier (TDF) made huge optimisations to the build performance of help and made many other build-related optimisations such as avoiding needless rebuilding of icon and gallery themes
  33. Kevin Suo fixed PDF import issues with Asian font settings not being loaded correctly and ligatures in RTL text being reversed incorrectly
  34. Thorsten Behrens (allotropia) made some build-related improvements and fixed a Writer unit test
  35. Arnaud Versini made some code cleanups
  36. Nick Wingate (Collabora) worked on the JavaScript dialog code used by Collabora Online
  37. Tor Lillqvist (Collabora) worked on the WASM build
  38. Chenxiong Qi ported many Java SDK examples to Python
  39. Tünde Tóth (NISZ) fixed an issue with charts getting lost upon DOCX export
  40. Galdam Jitsu replaced application and mime type icons with newly designed ones
  41. Patrick Luby (NeoOffice) fixed many macOS issues, including a printing issue with the Skia graphics engine and crashes and hangs. He also implemented support for the macOS press-and-hold functionality for special character input and made the macOS installation process faster by switching from bzip2 to lzfse compression in the .dmg file
  42. Tarcísio Ladeia de Oliveira fixed some unit test issues
  43. Aurimas Fišeras made some cleanups in configure.ac
  44. Povilas Kanapickas implemented support for touchpad zoom gestures
  45. Đoàn Trần Công Danh made a Boost 1.81.0 compatibility fix
  46. Attila Szűcs (Collabora) fixed conditional border colour not being exported to XLSX
  47. Dennis Francis (Collabora) made PDFium-based import of PDF files more robust
  48. Roman Kuznetsov added Duplicate Page command to Draw’s page pane context menu
  49. Michael Weghorn fixed a KDE UI issue in the BASIC Dialog Editor and worked the Android build
  50. Ilhan Yesil fixed an issue with the size of wizard pages created using the UNO API
  51. Vasily Melenchuk (CIB) made handling of invalid styles in RTF files more robust and implemented checking of Windows Security Zones to determine macro security level
  52. Brett T. Warden (Intel) made the SVG conversion method of QR codes compatible with the latest library version

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

437 bugs, 53 of which are enhancements, have been reported by 260 people.

Top 10 Reporters

  1. BogdanB ( 35 )
  2. Eyal Rozenberg ( 22 )
  3. Mike Kaganski ( 16 )
  4. Stéphane Guillou (stragu) ( 15 )
  5. Rafael Lima ( 8 )
  6. rferraro ( 8 )
  7. steve ( 7 )
  8. Robert Großkopf ( 6 )
  9. خالد حسني ( 6 )
  10. Telesto ( 6 )

Triaged Bugs

583 bugs have been triaged by 65 people.

Top 10 Triagers

  1. Buovjaga ( 147 )
  2. Stéphane Guillou (stragu) ( 89 )
  3. Dieter ( 42 )
  4. m.a.riosv ( 37 )
  5. Heiko Tietze ( 26 )
  6. Alex Thurgood ( 22 )
  7. V Stuart Foote ( 22 )
  8. خالد حسني ( 19 )
  9. Mike Kaganski ( 17 )
  10. Julien Nabet ( 17 )

Resolution of resolved bugs

534 bugs have been set to RESOLVED.

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

Fixed Bugs

146 bugs have been fixed by 31 people.

Top 10 Fixers

  1. Caolán McNamara ( 27 )
  2. Khaled Hosny ( 9 )
  3. Bogdan B ( 8 )
  4. Patrick Luby ( 8 )
  5. László Németh ( 7 )
  6. Rafael Lima ( 6 )
  7. Tünde Tóth ( 5 )
  8. Julien Nabet ( 5 )
  9. Michael Stahl ( 5 )
  10. Tibor Nagy ( 5 )

List of high severity bugs fixed

  1. tdf#142147 File->Save As: “Save with password” is deselected by default for password-protected documents ( Thanks to Justin Luth )
  2. tdf#146842 All pages are empty/white when printing (skia, macOS only) ( Thanks to Patrick Luby )
  3. tdf#146875 Writer: ToC Index updating hangs ( Thanks to Michael Stahl )
  4. tdf#151842 Font “Base size” reverts to sm config default of 12pt after reloading any formula (OLE object and standalone document) ( Thanks to Xisco Fauli )
  5. tdf#151894 FILEOPEN a Base Document with customized event for open a startform by “open document” LO stuck ( Thanks to Stephan Bergmann )
  6. tdf#152434 FILEOPEN:PPTX: Images not displayed ( Thanks to Tibor Nagy )
  7. tdf#152520 Crash: if macro uses module TITLE_CASE or SENTENCE_CASE in Transliteration module ( Thanks to Julien Nabet )
  8. tdf#152606 Crash if I open the specified pptx file ( Thanks to Julien Nabet )
  9. tdf#152717 DDE linking in calc is broken since 7.4.3 RC1 ( Thanks to Mike Kaganski )
  10. tdf#42437 Enable the macOS press-and-hold functionality for special character input (é, ñ, etc.) ( Thanks to Patrick Luby )

List of crashes fixed

  1. tdf#145843 Incidental Crash on macOS with skia raster (STR comment 8) ( Thanks to Patrick Luby )
  2. tdf#146765 Base Form – crash when scrolling in dual form & “data as table” display (macOS Arm) ( Thanks to Patrick Luby )
  3. tdf#152495 crash when closing ruby (phonetic guide) dialog with escape (gtk3) ( Thanks to Caolán McNamara )
  4. tdf#152520 Crash: if macro uses module TITLE_CASE or SENTENCE_CASE in Transliteration module ( Thanks to Julien Nabet )
  5. tdf#152606 Crash if I open the specified pptx file ( Thanks to Julien Nabet )
  6. tdf#82115 Repeatable crash/hang entering Japanese into a Writer comment on OSX ( see comment 4 ) ( Thanks to Patrick Luby )

List of performance issues fixed

  1. tdf#105575 Slow rendering when using a Logo command ( Thanks to László Németh )
  2. tdf#152301 slow opening of Options > Application Colors ( Thanks to Caolán McNamara )

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

  1. tdf#105575 Slow rendering when using a Logo command ( Thanks to László Németh )
  2. tdf#120190 Data “Formula to Value” don’t preserve line break with multi-line text value ( Thanks to Eike Rathke )
  3. tdf#121297 LO Impress: “JPG Quality” overlapping with “Reduce image resolution” in Presentation Minimizer Wizard in some GTK3 ( Thanks to Caolán McNamara )
  4. tdf#42437 Enable the macOS press-and-hold functionality for special character input (é, ñ, etc.) ( Thanks to Patrick Luby )
  5. tdf#45949 SPELL check does not work for words with hyperlink ( Thanks to László Németh )
  6. tdf#53023 AutoText (text only) embeds extra carriage return ( Thanks to Andreas Heinisch )
  7. tdf#65535 Correcting a misspelled word with a comment in the middle erases the comment (see comment 38) ( Thanks to László Németh )
  8. tdf#82115 Repeatable crash/hang entering Japanese into a Writer comment on OSX ( see comment 4 ) ( Thanks to

by x1sc0 at January 10, 2023 10:53 AM

January 04, 2023

allotropia

Improving LibreOffice’s list numbering feature

Numbering and bullet list are a core feature of every word processing application, and naturally LibreOffice Writer has gazillion options in that area. Of course, Writer can also handle multilevel lists:

  1. First line, first level
    1. Second line, second level
    2. Third line, second level
      1. Fourth line, third level
      2. etc etc

Now, how are these lists stored in ODF? Each level defines a num-prefix (what will be written before numbering), a num-suffix (same as prefix, but appended after the number), and display-levels – determining how many previous levels will be in list:

<text:list-level-style-number
text:level="3"
style:num-prefix="&gt;&gt;"
style:num-suffix="&lt;&lt;"
style:num-format="1"
text:display-levels="3">

In this example, we define a format for the third list level (in a numeric format), with displaying of all 3 levels and >> & << as a prefix/suffix. The output in Writer then looks like this: “>>1.2.3<<”

This is a nice and concise representation for many Western use-cases. But what can we do in this example:

arabic numbered list

Or in this case (https://bugs.documentfoundation.org/show_bug.cgi?id=116883):

One possible simple solution: we add a configurable number delimiter. In most cases, we would separate level numbers by “.” (and this was hard-coded in LO previously). For other cases, we should use “-” or “/”.

But before getting ahead of ourselves, lets first take a look what Word and DOCX does here:

Hmm, so Word does something completely different here: instead of a prefix/suffix, it uses an elaborate formatting string for numbers, where we can define any random prefix and suffix, plus arbitrary delimiters between different level numbers! We can even omit some numbers or worse, change their order of appearance (it is unclear how much sense that makes, but surely someone is now (mis)using that feature out there in documents).

And this is stored in DOCX in a rather simple xml attribute:

<w:lvlText w:val="%1-%2-%3-%4-"/>

Instead of prefix, suffix, display-levels and some additional separators, this has just one property, which at the same time provides much more flexibility.

Since LibreOffice 7.0, we are now using this lvlText (list format string) as an internal representation for documents (https://git.libreoffice.org/core/+/7459b9ecb54a298f02d19089620149718f8d8d48). This is enough to correctly load and save DOCX/DOC/RTF files, like the one from the screenshot above.

But we need to go further. If we save such DOCX files to ODT, more complex list level formattings will be lost.

Starting with LibreOffice 7.2, and with commit https://gerrit.libreoffice.org/c/core/+/117156/16, LibreOffice now features something quite similar to the DOCX properties: a new loext:num-list-format, which is obsoleting the older, less expressive num-prefix, num-suffix and text:display-levels attributes.

Unlike in DOCX instead of placeholders like “%1”, “%2”, this new ODF property is using “%1%”, “%2%”, etc. So why is that? Well in Word you can define up to 9 levels of list numberings, and %1 – %9 are enough for this representation. In LibreOffice, there are at least 10 levels, but even more ODF strives to be implementation-independent – so any hard limits here are anathema. Since format strings like “%10” are ambiguous (is it the “%1” placeholder with a “0” suffix, or is it the “%10” placeholder?) – the ODF specification uses the “%” delimiter on both sides of the placeholder.

Further improvements here include incorporating also style:num-format, to define numbering types for each level independently, in a way similar to the classical printf() format strings, in use with many programming languages.

The new num-list-format property is proposed for inclusion in ODF 1.4, but while this standard update slowly proceeds towards ratification, LibreOffice is meanwhile using its own namespace for it.

Work in this area is ongoing. Further efforts are needed:

  • LibreOffice’s UI need an update, to at least optionally allow list format string editing. Right now it is still using the old prefix/suffx edit boxes, where values are extracted from the list format string.
  • more refactoring of the Writer model – list format strings are still an optional element in list level definitions, and there are scenarios that need fallbacks if it is missing
  • more bugfixing of course – although the newest LibreOffice 7.4 / 7.5 beta are in fairly good shape, also thanks to the work of many other contributors
  • for reference, there’s a wiki page now to collect ToDo items around improving numbering support

by allotropiasoft at January 04, 2023 06:05 PM

January 03, 2023

Miklos Vajna

Improved number portion formatting in Writer

Number portions generated when using lists/numberings/bullets in Writer now can have formatting which is preserved in ODT files as well.

First, thanks Docmosis for funding this work by Collabora.

Motivation

Word and DOCX files support explicit character properties for the paragraph marker, and these are also used for the formatting of a number portion if the paragraph has one. This was already loaded from / saved to DOCX, but it was lost when saving to ODT.

Results so far

First, we got a bug document, where the reference rendering and our rendering differed:

Reference (on the left) and our old (on the right) rendering, due to bookmarks

In this case, what happened was that part of the heading text was covered by a bookmark, so we first created multiple character ranges (outside the bookmark, inside the bookmark), then as an optimization we even unified them to be a single formatted character range, covering the entire paragraph. This was a document model that is different from the bookmark-free version, where the character formatting was set on the paragraph itself.

This was fixed at render time and at DOCX export time to consider both full-paragraph character ranges and in-paragraph character properties. For a while, this looked like the entire story, since this now looks good in Writer:

Our new rendering, handling bookmarks

A bit later another, related bug was discovered. Given a reference document:

Reference rendering of a second document

Just opening this DOCX file in Writer, it looked like this:

Old rendering in Writer

Note how the first number portion turned into bold! This was expected after the above layout change to consider full-paragraph formatted character ranges, but it also meant that Word can have one set of character formatting for the entire character range of a paragraph, and another for the paragraph marker.

To make the problem worse, this second document was showing that even the ODT export/export feature had problems, still:

Old rendering in Writer after ODT save + load

The fix to solve all of the above was to undo the previous render / DOCX export change, then teach the ODT export to explicitly save the paragraph marker formatting (as an empty span at the end of the text node) to ODT, and also to load it back.

This means that now Writer can render the second document correctly, without breaking the first document:

New rendering in Writer

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 22.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 (7.6).

by Miklos Vajna at January 03, 2023 07:30 AM

December 08, 2022

Marius Popa Adrian

Firebird high-level native client for Node.js / TypeScript status status for Firebird Advent 2022

Firebird high-level native client for Node.js / TypeScript status status for Firebird / Typescript Advent 2022https://qiita.com/advent-calendar/2022/firebirdTo use the driver you can start with the readme from npm/githubhttps://www.npmjs.com/package/node-firebird-driver-nativeA few more examples are in the packages/node-firebird-driver/src/test directoryWe have seen several releases with a few

by Popa Adrian Marius (noreply@blogger.com) at December 08, 2022 12:15 PM

November 29, 2022

LibreOffice Design Blog

Results from the survey about LibreOffice Impress

Similar to the questionnaires about LibreOffice Draw (see first and second blog post) and LibreOffice Calc (see this post) we now run a survey on LibreOffice Impress to learn how the program is utilized, what features are used most frequently, and what users see as positive and negative and what they expect of the future.…

by Heiko Tietze at November 29, 2022 03:18 PM

November 24, 2022

Caolán McNamara

macOS Dark Mode


For LibreOffice 7.5 I've reworked the theming on macOS to get some support for Dark Mode, as seen above. As a side effect "accent colors" work in Light Mode too.

by caolan (noreply@blogger.com) at November 24, 2022 03:39 PM

November 15, 2022

Jean Hollis Weber

Second edition of Designing with LibreOffice available for free download

Designing with LibreOffice coverBruce Byfield and Jean Hollis Weber announce the second edition of Designing with LibreOffice. The book is available as an .ODT or .PDF file under the Creative Commons Attribution/Sharealike License version 4.0 or later from https://designingwithlibreoffice.com/

The first edition was published in 2016, and was downloaded over thirty-five thousand times. Michael Meeks, one of the co-founders of LibreOffice, described the first edition as “an outstanding contribution to help people bring the full power of LibreOffice into their document.” Similarly, free software author and journalist Carla Schroder wrote, “Designing With LibreOffice teaches everything you need to know about document production…. suitable for beginners to wizened old pros, who will probably discover things about LibreOffice that they didn’t know.”

The second edition updates the original, removing outdated information and adding updated screenshots and new information about topics such as Harfbuzz font shaping codes, export to EPUB formats for ereaders, the Zotero extension for bibliographies, and Angry Reviewer, a Grammarly-like extension for editing diction. In the future, the writers plan to release other editions as necessary to keep Designing with LibreOffice current.

For more information or interviews, contact Bruce Byfield at bbyfield@axion.net.

by Jean at November 15, 2022 04:54 AM