The Document Foundation Planet

 

June 11, 2021

Official TDF Blog

Extended: Tender to implement Curl based HTTP/WebDAV UCP (#202104-01)

We originally posted this tender in April, but we are now extending the application deadline.

The deadline for questions stays as in the original tender: June 15, 2021
The deadline for applications has been extended to: June 24, 2021

For all details on the tender, please refer to the original blogpost.

by Florian Effenberger at June 11, 2021 07:58 AM

June 10, 2021

Official TDF Blog

LibreOffice 7.1.4 Community available for download

Berlin, June 10, 2021 – LibreOffice 7.1.4 Community, the fourth minor release of the LibreOffice 7.1 family, targeted at technology enthusiasts and power users, is available for download from https://www.libreoffice.org/download/. LibreOffice 7.1.4 includes around 80 bug fixes, with 20% focused on Microsoft Office file compatibility (DOCX, XLSX and PPTX, and legacy DOCs).

For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners, with long-term support options, professional assistance, custom features and Service Level Agreements: https://www.libreoffice.org/download/libreoffice-in-business/.

LibreOffice Community and the LibreOffice Enterprise family of products are based on the LibreOffice Technology platform, the result of years of development efforts with the objective of providing a state of the art office suite not only for the desktop but also for mobile and the cloud.

Products based on LibreOffice Technology are available for major desktop operating systems (Windows, macOS, Linux and Chrome OS), mobile platforms (Android and iOS) and the cloud. They may have a different name, according to each company brand, but they share the same LibreOffice unique advantages, robustness and flexibility.

Migrations to LibreOffice

The Document Foundation has developed a Migration Protocol to support enterprises moving from proprietary office suites to LibreOffice, which is based on the deployment of a LTS version from the LibreOffice Enterprise family, plus migration consultancy and training sourced from certified professionals who offer CIOs and IT managers value-added solutions in line with proprietary offerings. Reference: https://www.libreoffice.org/get-help/professional-support/.

Availability of LibreOffice 7.1.4 Community

LibreOffice 7.1.4 Community represents the bleeding edge in term of features for open source office suites. For users whose main objective is personal productivity and therefore prefer a release that has undergone more testing and bug fixing over the new features, The Document Foundation provides LibreOffice 7.0.6.

LibreOffice 7.1.4 change log pages are available on TDF’s wiki: https://wiki.documentfoundation.org/Releases/7.1.4/RC1 (changed in RC1) and https://wiki.documentfoundation.org/Releases/7.1.4/RC2 (changed in RC2).

LibreOffice Technology based products for Android and iOS are listed here: https://www.libreoffice.org/download/android-and-ios/, while for App Stores and ChromeOS are listed here: https://www.libreoffice.org/download/libreoffice-from-microsoft-and-mac-app-stores/.

LibreOffice individual users are assisted by a global community of volunteers: https://www.libreoffice.org/get-help/community-support/. On the website and the wiki there are guides, manuals, tutorials and HowTos. Donations help us to make all of these resources available.

LibreOffice users are invited to join the community at https://ask.libreoffice.org, where they can get and provide user-to-user support. People willing to contribute their time and professional skills to the project can visit the dedicated website at https://whatcanidoforlibreoffice.org.

LibreOffice users, free software advocates and community members can provide financial support to The Document Foundation with a donation via PayPal, credit card or other tools at https://www.libreoffice.org/donate.

LibreOffice 7.1.4 is built with document conversion libraries from the Document Liberation Project: https://www.documentliberation.org.

by Italo Vignoli at June 10, 2021 11:16 AM

Miklos Vajna

Writer line heights: removing a 16bit limit

Line heights in Writer are typically defined in points on the UI (e.g. 12pt), though they are measured in twips internally (1 point is 20 twips). This height was stored in a 16bit unsigned integer, so the maximum allowed height was 65536 twips, around 116 cm.

Now we track line heights with 32 bits ints, so this limitation is practically removed.

First, thanks Vector who made this work by Collabora possible.

Motivation

Once you insert an image to a Writer document, you can customize its anchor type. The as-char anchor type is handy if you don’t want text to flow around the image. This has the side effect that a large image significantly increases the nominal height of a line. The problematic document had an image height of 118.9 cm (46.81 inch), so the unsigned integer used to represent its height wrapped around, leading to an incorrect layout.

Results so far

Now it looks like the way you would expect it:

https://share.vmiklos.hu/blog/sw-line-height/sw-line-height.png
Figure 1. Writer as-char image with height that is larger than 65k twips

How is this implemented?

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

As usual, the end goal was reached via a set of incremental commits:

Want to start using this?

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

by Miklos Vajna at June 10, 2021 08:25 AM

June 08, 2021

Official TDF Blog

Tender to implement master document fixes (#202106-02)

The Document Foundation (TDF) is the charitable entity behind the world’s leading free/libre open source (FLOSS) office suite LibreOffice.

We are looking for an individual or company to implement master document fixes.

The documentation team regularly publishes guides and books. The underlying workflow requires to fix bugs and issues with the master document feature of Writer.

The scope of this tender is to fix at least the following issues:

  1. ToC is never shown in Master Document if it is in ODT in a section with a hide condition
    https://bugs.documentfoundation.org/show_bug.cgi?id=103612
  2. Exported PDF of master document with hidden sections containing headings shows headings anyway
    https://bugs.documentfoundation.org/show_bug.cgi?id=142129
  3. Creating master document from *.odt breaks cross-references
    https://bugs.documentfoundation.org/show_bug.cgi?id=128106
  4. TRACK CHANGES: linked files changes are not shown in the master document
    https://bugs.documentfoundation.org/show_bug.cgi?id=121166

The work has to be developed on LibreOffice master, so that it will be released in the next major version.

The bugs must be fixed and verified.

All technology standards of relevance, as well as their targeted versions for this tender should be declared or defined in the offer’s description of implementation.

A key item of the deliverables for this tender and therefore also a decision criteria – besides qualification, references, price, and completeness of fullfilment – is extensive is documentation about the approach chosen to implement or fix the above items. We expect bidders to provide documentation on both the code and the non-code parts of this tender, e.g. methodology, structure and technical aspects. The Document Foundation will publish this under a free and open source license and make it available to the general public. Publications will be in the Help system and in the Guides books.

If the bug fix incurs in a change in the user interface or user procedure, it should also contain the necessary instructions to activate the procedure.

Required skills

  • Extensive knowledge of C++
  • Experience working on the LibreOffice source code

Other skills

  • English (conversationally fluent in order to coordinate and plan with members of TDF)

We use free, libre and open source (FLOSS) software for development wherever possible, and the resulting work on the program code must be licensed under the Mozilla Public License v2.0.

TDF welcomes applications from all suitably qualified persons regardless of their race, sex, disability, religion/belief, sexual orientation or age.

Bidders will get a preference for including a partner or independent developer who has not been involved in a successful tender before. For such developers, who have not yet been part of a successful tender bid, we aim on a best-effort basis, but without any guarantees whatsoever, to provide some mentoring in understanding the code base and the process in contributing to the code. We expect that time and efforts on the bidder’s side for this should not be part of the paid work for this tender. Please mention such need of LibreOffice development mentoring in your offer.

As always, TDF will give some preference to individuals who have previously shown a commitment to TDF, including but not limited to certified developers and/or members of TDF. Not being a member, or never having contributed before, does not exclude any applicants from consideration.

The task offered is a project-based one-off, with no immediate plans to a mid- or long-term contractual relationship. It is offered on a freelance, project basis. Individuals and companies applying can be located anywhere in the world.

When budgeting, we anticipated that this project (all items combined) to take in the region of 5 days of work. Should bidders’ assessment result in a significantly different number, please reach out to us before sending your bid, so we can clarify upfront.

TDF is looking forward to receiving your applications for the aforementioned tasks, your offer in form of a fixed-time, fixed-budget approach, and the duration period for the implementation in calendar weeks after the final awarding of the tender, via e-mail to a committee at tender20210602@documentfoundation.org no later than July 5, 2021.

Applicants who have not received feedback by August 2, 2021 should consider that their application, after careful review, was not accepted.

All bidders are invited to ask their questions on this tender until June 23, 2021. Questions and answers will be made public in a collected and anonymized form.

by Florian Effenberger at June 08, 2021 03:30 PM

June 07, 2021

Marius Popa Adrian

New Flamerobin snapshot available : version 0.9.3.8 with a few fixes and features

New Flamerobin snapshot available : version 0.9.3.8 with a few fixes and features:New featuresIndexes, Functions, Packages, Global Temporaries, DB Triggers and DDL Triggers supportedNew localized grid support, allows to use commas or dots for decimal separator (View->Preferences->General: Use language locale settingsEnhancements and Bug fixesFix Dependency tab not showing Functions and

by Popa Adrian Marius (noreply@blogger.com) at June 07, 2021 06:50 PM

Firebird Project is happy to announce general availability of Firebird 4.0

Firebird Project is happy to announce general availability of Firebird 4.0 — the latest major release of the Firebird relational database.Firebird 4.0 introduces new data types and many improvements without radical changes in architecture or operation, the most important are:Built-in logical replication;Extended length of metadata identifiers (up to 63 characters);New INT128 and DECFLOAT data

by Popa Adrian Marius (noreply@blogger.com) at June 07, 2021 05:42 PM

LibreOffice QA Blog

QA/Dev Report: May 2021

General Activities

  1. LibreOffice 7.1.3 was released on May 6
  2. LibreOffice 7.0.6 was released on May 13
  3. The PowerPoint compatibility team reported on its recent work
  4. Alain Romedenne and Rafael Lima improved the Help content for the ScriptForge library. Rafael Lima also documented the WeekDay Basic function and improved the help for Calc’s CONVERT function
  5. Kevin Suo improved the Python script for generating the file filter table for Help. Kevin also fixed a font family problem in the Help CSS related to Simplified Chinese display on Linux
  6. Steve Fanning made several improvements to Calc function Help pages.
  7. Olivier Hallot (TDF) improved Help on Calc functions, databases and Calc’s autofilter
  8. Eike Rathke (Red Hat) made Calc accept 123.45 fractional input on weird formats like 0″.” or 0″.”0, expanded NatNum12 modifier support for all day and month names and made it so Calc’s ROUND() function does not limit decimal digits
  9. Jean-Pierre Ledure worked on the ScriptForge library
  10. Caolán McNamara not only continued with GTK3 backend polishing, but took on a new large-scale project: a GTK4 backend! See here and here. He also made many cleanups and crash fixes
  11. Noel Grandin (Collabora) started fixing memory leaks like an angry plumber. He also speeded up saving large ODS files, made a big refactoring as part of a longer-term goal of doing UI widget rendering only inside a top-level render- context and made many code cleanups and optimisations
  12. Linus Heckemann made it so the code for opening links is more portable considering different *nix systems
  13. Szabolcs Tóth (NISZ) fixed a case, where Calc autofilter item list would be lost after saving and reloading the spreadsheet
  14. Vasily Melenchuk (CIB) fixed a DOCX import problem with list item indentation
  15. Joshua Williams swapped comparison operators for static strings, so Basic macro code behaves logically
  16. Muhammet Kara (Collabora) made it so experimental commands are hidden, when experimental mode is not active. He also fixed a crash in Additions when fetching bad JSON data
  17. Thorsten Wagner polished the macOS window scaling implementation for Retina displays
  18. Aritz Erkiaga fixed a problem with Stock Charts corrupting upon saving
  19. Oleg Shchelykalnov added an option to respect hidden paragraphs, when exporting to plain text
  20. Vert D fixed a problem with deleting categories in the Template Manager
  21. Tünde Tóth (NISZ) fixed some Calc autofilter problems
  22. Edward Lynch fixed Impress Grow/Shrink animation scaling
  23. Bubli fixed hatch and bitmap lists being hidden in the Sidebar
  24. Justin Luth (Collabora/SIL) fixed some DOCX/DOC numbered list problems and improved the character formatting dialog presentation of subscripts and superscripts
  25. Georgy Litvinov fixed losing sections at the end of text inserted with the “Insert text from file” functionality in Writer
  26. Sarabjot Singh added a thick cursor into Calc in the style of MS Excel and Gnumeric. The cursor is used when hovering over cells.
  27. Baltasar changed the behaviour of adding commands to menus, so instead of an altert reporting of a duplicate command, the Add button becomes disabled
  28. Matt K made it so multiple Tip-of-the-Day tips can be opened and the user can interact with the application without closing the tips. He also added new UI options when opening a locked or non-writeable document to allow the user to be notified when such a document becomes editable
  29. Rizal Muttaqin made updates to Sukapura, elementary and Colibre icon themes
  30. Maxim Monastirsky made it so Calc sets the font size for the default cell style when saving ODS files
  31. Dennis Francis (Collabora) made many improvements to Calc’s autocompletion feature. The logic for presenting suggestions is now more user-friendly.
  32. Regina Henschel fixed wrong scaling of shape groups and incorrect rotation of VML shapes in imported DOCX files
  33. Arnaud versini made some code cleanups
  34. Tibor Nagy and Attila Szűcs (NISZ) fixed unhiding grid lines in imported XLSX files and fixed lost column break in shapes in imported DOCX files with support from Justin Luth
  35. Heiko Tietze (TDF) added a dark colour set in order to provide a dark theme leveraging the Application Colours feature
  36. Jan-Marek Glogowski and Thorsten Behrens (allotropia) worked on the WASM build, now merged into master
  37. Michael Weghorn made many improvements to the Android version with topics including stability, document view and inserting images
  38. Mark Hung improved the rendering of vertical text
  39. László Németh (NISZ) made many improvements to change tracking and made line style dropdowns display all of the styles in imported DOCX files
  40. Bartosz Kosiorek made a whopping 16 improvements to EMF and WMF graphics support, inching closer to perfect support. Valek Filippov helped with the file analysis and testing.
  41. Jim Raykowski made it so drawing objects selected in the document are highlighted in Navigator’s content navigation view. He also added shortcut keys for each Sidebar deck and improved the outline folding feature
  42. Attila Bakos (NISZ) fixed z-ordering and positioning of shapes in imported DOCX files
  43. Tibor Nagy (NISZ) fixed PPTX import/export problems related to slide names, internal hyperlinks and custom slide shows
  44. Daniel Arato (NISZ) fixed DOCX exporting of hidden headers and DOCX importing of text wrapping in headers
  45. Balázs Varga (NISZ) fixed several Calc autofilter issues
  46. Mike Kaganski (Collabora) improved the handling of 0-byte files, made Calc CSV import properly handle the case of no string delimiter, improved the look of the new thick Calc cursor on Windows and made many code cleanups
  47. Xisco Faulí (TDF) made over 50 improvements and additions to unit and UI tests
  48. Chris Sherlock did some housecleaning in VCL
  49. Dante Doménech finished the work on using Kahan summation algorithm in Calc in order to reduce the numerical error in the total of floating-point calculations. He also the Math formula input box zoomable
  50. Roland Kurmann made many improvements to Calc transposed and special pasting
  51. Andreas Heinisch made Basic respect case-insensitivity in find & replace, fixed a problem with sheet references not updating in charts when copying multiple sheets in Calc, fixed an issue with item selection properties not being updated in a Base form after selecting all, fixed 3D look listbox in Chart wizard not showing selected text, made macro import/export use UTF-8 with BOM and made it so externally linked tables in Calc get named based on their HTML caption element
  52. Stephan Bergmann (Red Hat) made many code cleanups and continued improving compatibility with C++20
  53. Miklos Vajna (Collabora) fixed handling of list labels and a bunch of other things in Writer XHTML export, fixed a problem with OLE object display areas, fixed a couple of crashes and made many code cleanups and optimisations
  54. Samuel Mehrbrodt (allotropia) implemented the very popular request for filtering by colours in Calc
  55. Gábor Kelemen (NISZ) made some improvements to dialogs, toolbars and Hungarian shortcuts
  56. Gülşah Köse (Collabora) improved the new UNO object inspector, removed the warning of missing data sources upon load as the Mail Merge dialog also warns about it and fixed a PPTX export highlighting colour issue
  57. Mert Tumer (Collabora) improved the table cell selection logic in Impress & Draw
  58. Julien Nabet made many code cleanups and optimisations
  59. Michael Stahl (allotropia) fixed some Writer layout crashes and infinite loops
  60. Christian Lohmaier (TDF) fixed a build issue with recent Cygwin versions, improved the VS Code workspace template and started cleaning up the installer codebase
  61. Tushar Kumar Rai made the StrConv VBA Function handle its third argument (LCID) and fixed related QA tests. He also fixed a Data Provider crash
  62. Tomaž Vajngerl (Collabora) added a hecking awesome Heads-up Display type of search and made internal improvements to graphics handling code
  63. Luboš Luňák (Collabora) made optimisations related to graphics rendering and bitmap loading and improved the Skia integration. He also made it possible to write canvas unit tests and added a bunch of tests

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

567 bugs, 57 of which are enhancements, have been reported by 323 people.

Top 10 Reporters

  1. NISZ LibreOffice Team ( 38 )
  2. Valek Filippov ( 31 )
  3. Telesto ( 24 )
  4. Regina Henschel ( 14 )
  5. Xisco Faulí ( 12 )
  6. Thorsten Wagner ( 10 )
  7. Mike Kaganski ( 9 )
  8. Rafael Lima ( 8 )
  9. Nico ( 7 )
  10. Heiko Tietze ( 7 )

Triaged Bugs

584 bugs have been triaged by 85 people.

Top 10 Triagers

  1. Xisco Faulí ( 70 )
  2. Timur ( 61 )
  3. Heiko Tietze ( 50 )
  4. Dieter ( 50 )
  5. Roman Kuznetsov ( 36 )
  6. V Stuart Foote ( 26 )
  7. Julien Nabet ( 25 )
  8. NISZ LibreOffice Team ( 20 )
  9. Harshita Nag ( 20 )
  10. Aron Budea ( 17 )

Resolution of resolved bugs

620 bugs have been set to RESOLVED.

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

Fixed Bugs

198 bugs have been fixed by 52 people.

Top 10 Fixers

  1. Caolán McNamara ( 16 )
  2. Bartosz Kosiorek ( 11 )
  3. László Németh ( 9 )
  4. Andreas Heinisch ( 7 )
  5. Balazs Varga ( 7 )
  6. Gülşah Köse ( 7 )
  7. Eike Rathke ( 6 )
  8. Noel Grandin ( 6 )
  9. Tibor Nagy ( 5 )
  10. Michael Weghorn ( 5 )

List of critical bugs fixed

  1. tdf#142390 calc 7.2.0.0.a0+ >2021-05-19, no mouse cursor in cell area ( Thanks to Mike Kaganski )

List of high severity bugs fixed

  1. tdf#138302 Restart of numbering is not saved when saving to DOC ( Thanks to Justin Luth )
  2. tdf#141571 Base crashed on creation of user function ( Thanks to Noel Grandin )
  3. tdf#141613 Crash: swlo!SwTableNode::DelFrames+0x27: ( Thanks to Daniel Arato (NISZ) )
  4. tdf#141930 libreoffice math does not ask to save changes when closing ( Thanks to Caolán McNamara )
  5. tdf#142040 CSV import broken in master ( Thanks to Noel Grandin )
  6. tdf#142150 Application crashes when EDITING line end styles (arrows) ( Thanks to Caolán McNamara )
  7. tdf#142255 Crash when trying to insert a shape ( Thanks to Noel Grandin )
  8. tdf#142367 Writer crashes when opening docx (GTK3) ( Thanks to Noel Grandin )
  9. tdf#142370 CRASH: Closing tip of the day ( GTK3 ) ( Thanks to Caolán McNamara )
  10. tdf#142547 Crash when adding comment in a table in Writer ( Thanks to Noel Grandin )
  11. tdf#54037 FILESAVE: Loss of internal hyperlinks in PPT/PPTX ( Thanks to Tibor Nagy )
  12. tdf#76258 Filter by colors in Calc ( Thanks to Samuel Mehrbrodt )
  13. tdf#91874 A Search by function or keyword over main menu– similar to SpotLight, Tell Me, or Ubuntu’s HUD but native for LO GUI ( Thanks to Tomaž Vajngerl )

List of crashes fixed

  1. tdf#126226 CRASH: Adding comment to Track Change ( Thanks to László Németh )
  2. tdf#136292 Additions: Bad JSON crashes LibreOffice ( Thanks to Muhammet Kara )
  3. tdf#138855 Draw crashes if I use ALT+TAB to switch between two draw windows while the cursor focus is in a text box ( Thanks to Caolán McNamara )
  4. tdf#139500 Crash mergedlo!EditUndo::GetComment+54 press undo inside table in impress ( Thanks to Miklos Vajna )
  5. tdf#141307 Crash in: SvtBroadcaster::Add (probably a basic macro issue) ( Thanks to Bjoern Michaelsen )
  6. tdf#141571 Base crashed on creation of user function ( Thanks to Noel Grandin )
  7. tdf#141613 Crash: swlo!SwTableNode::DelFrames+0x27: ( Thanks to Daniel Arato (NISZ) )
  8. tdf#141973 Calc crashes after F5 pressing when opened some file ( Thanks to Caolán McNamara )
  9. tdf#142150 Application crashes when EDITING line end styles (arrows) ( Thanks to Caolán McNamara )
  10. tdf#142255 Crash when trying to insert a shape ( Thanks to Noel Grandin )
  11. tdf#142364 Crash when closing document after canceling chart wizard (Writer) ( Thanks to Caolán McNamara )
  12. tdf#142367 Writer crashes when opening docx (GTK3) ( Thanks to Noel Grandin )
  13. tdf#142370 CRASH: Closing tip of the day ( GTK3 ) ( Thanks to Caolán McNamara )
  14. tdf#142467 Inserting series in Stock Chart Data Table crashes Writer (Fedora only?) ( Thanks to Stephan Bergmann )
  15. tdf#142479 CRASH: pressing return key after opening arrow styles floating window ( Thanks to Caolán McNamara )
  16. tdf#142547 Crash when adding comment in a table in Writer ( Thanks to Noel Grandin )

List of performance issues fixed

  1. tdf#142080 FILEOPEN: DOCX: Hang after opening the file ( Thanks to Michael Stahl )
  2. tdf#79049 FILEOPEN: OOXML Workbook file hangs when opening ( Thanks

by x1sc0 at June 07, 2021 11:15 AM

Official TDF Blog

LibreOffice Documentation Team Activities in 2020

In 2020, the documentation community released many updated guidebooks, translated them into several languages, and participated in the Google Season of Docs

(This is part of The Document Foundation’s Annual Report for 2020 – the full version is here.)

New and translated guides

In January 2020, just before release of LibreOffice 6.4, the Documentation Team was proud to announce the Math Guide 6.4, an update of the previous version (4.0), updated to cover all of the innovations included in the latest release of the software. The guide was updated by Roman Kuznetsov and revised by Dave Barton from the documentation community. This was followed by the Calc Guide 6.2, a long-awaited update of the old Calc Guide 4.4.

In May, the guide to Base for LibreOffice 6.2 was released, covering, LibreOffice’s database component. It was updated by Pulkit Krishna, Dan Lewis, Jean Hollis Weber, Alain Romedenne, Jean-Pierre Ledure and Randolph Gamo. Another update in May was the Getting Started Guide 6.4 – the introductory guide for the latest LibreOffice 6.4, aimed to the general public interested to quickly get familiar with the software. It’s available as a PDF for offline reading, and ODT (OpenDocument Text) for editors and translators.

In summer, the Documentation Team announced the availability of the LibreOffice Draw Guide 6.4, the complete handbook for the drawing tool of LibreOffice. The guide was updated from the existing release (4.3) and include all the improvements developed since early 2014, when the last version of the guide was published.

Then there was the LibreOffice Calc Guide 6.4, the complete handbook for the spreadsheet tool. It was also updated from the existing release (6.2) and included all of the improvements developed in Calc since then.

In October, the Math Guide 7.0 was published – being the first guide based on LibreOffice 7.0. The effort was mostly carried by Rafael Lima and reviewed by Jean H. Weber. The new guide covers were designed by Rizal Muttaqin and Drew Jensen. The final publication was carried by Olivier Hallot. This was followed by the Calc Guide 7.0, a team effort of Steve Fanning, Gordon Bates, Kees Kriek, Annie Nguyen, Samantha Hamilton, Olivier Hallot and Jean Hollis Weber, coordinated by Felipe Viggiano.

Many guides were also translated in to various languages, thanks to our worldwide communities. For more information on their work, and the specific guides that they translated, see the “Native Language “Projects” section of this Annual Report.

Google Season of Docs

For the second year in a row, The Document Foundation was accepted as an organization in the Google Season of Docs, a programme whose goals are to give technical writers an opportunity to participate in contributing to open source projects, and to give open source projects an opportunity to engage the technical writing community.

In 2020, TDF’s documentation community offered a wide range of projects for technical writers, and extended the reach by providing projects for e-learning, mathematical documentation and code-oriented documentation.

TDF received several applications, containing important information including the technical writer’s resumés, proposals for project schedule and suggested deliverables. After a careful evaluation by the project mentors, TDF accepted the application of Ronnie Gandhi, a computer science undergraduate student enrolled at IIT Roorkee, India.

Steve Fanning, who had already worked as coordinator of the Calc Guide, served as mentor with Olivier Hallot as second mentor. Ilmari Lauhakangas and Olivier managed the administrative aspects of the project on behalf of The Document Foundation.

Ronnie worked on improving the descriptions for Calc’s functions, adding statements describing each function’s compliance with the Open Document Format for Office Applications (OpenDocument) Version 1.2 specification. Each function was also supplemented by extra use cases, illustrations and external references (where applicable).

Access the Extensive Calc Functions Description on The Document Foundation’s wiki. Thanks to Ronnie for all his work, and the mentors for assisting him on his journey.

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 June 07, 2021 08:33 AM

June 06, 2021

Official TDF Blog

Announcing the winners in the Month of LibreOffice, May 2021!

At the beginning of May, we started a new Month of LibreOffice, celebrating community contributions all across the project. We do these every six months – so how many people got sticker packs this time? Check it out…

Fantastic! This makes it the most successful Month of LibreOffice ever, slightly overtaking the results from May 2020.

Great work, everyone! Hundreds of people, all across the globe, have helped out in our projects and communities. We’re hugely thankful for your contributions – and, of course, everyone who’s listed on the wiki page can get a sticker pack, with these stickers and more:

How to claim

If you see your name (or username) on this page, get in touch! Email mike.saunders@documentfoundation.org with your name (or username) from the wiki page so that we can check, along with your postal address, and we’ll send you a bunch of stickers for your PC, laptop and other kit.

(Note: your address will only be used to post the stickers, and will be deleted immediately afterwards.) If you contributed to the project in May but you’re not on the wiki page, please let us know what you did, so that we can add you!

There is one more thing…

And we have an extra bonus: 10 contributors have also been selected at random to get an extra piece of merchandise – a LibreOffice hoodie, T-shirt, rucksack or snazzy glass mug. Here are the winners – we’ll get in touch personally with the details:

  • Michael Warner
  • Jorge Gustavo Rocha
  • Roland Kurmann
  • Astur
  • Alessandro Volturno
  • Harshita Nag
  • Érico Nogueira
  • Chris Shaw
  • Wanderer
  • María del Mar

Congratulations to all the winners, and a big thanks once again to everyone who took part! Your contributions keep the LibreOffice project strong. We plan to have another Month of LibreOffice in November, but everyone is welcome to see what they can do for LibreOffice at any time!

by Mike Saunders at June 06, 2021 01:17 PM

June 04, 2021

Caolán McNamara

LibreOffice GTK4 Port: More MenuButtons

 

More MenuButton features working under GTK4. Now with working radio entries in GtkPopoverMenu dropdowns.

by caolan (noreply@blogger.com) at June 04, 2021 04:02 PM

June 03, 2021

June 02, 2021

Caolán McNamara

GTK4 LibreOffice Port: Print Dialog

 

LibreOffice's Print Dialog in GTK4 Port with fancy "suggested-action" blue "Print" button.

by caolan (noreply@blogger.com) at June 02, 2021 07:04 PM

May 26, 2021

Caolán McNamara

LibreOffice GTK4 Port: Some more progress

More progress, Entries, SpinButtons, PushButtons, CheckBoxes/RadioButtons, TreeViews and basic Notebooks and DrawingAreas working in the GTK4 port


by caolan (noreply@blogger.com) at May 26, 2021 08:01 PM

May 25, 2021

LibreOffice QA Blog

LibreOffice 7.2 Alpha1 is ready for testing

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 7.2 Alpha1 is ready for testing!

LibreOffice 7.2 will be released as final in mid August, 2021 ( Check the Release Plan ) being LibreOffice 7.2 Alpha1 the first pre-release since the development of version 7.2 started at the end of November, 2020. Since then, 5971 commits have been submitted to the code repository and more than 1040 bugs were set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 7.2 Alpha1 can be downloaded from here for Linux, MacOS and Windows, and it can be installed alongside the standard version.

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

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

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

Happy testing!!

Download it now!

by x1sc0 at May 25, 2021 09:21 AM

May 14, 2021

Caolán McNamara

First Cut at a GTK4 Port of LibreOffice

Early days yet, but here's some screenshots of an experimental port of LibreOffice to GTK4 I've commited upstream during the week. It starts without crashing, renders, accepts user keystrokes and mouse events, basic Input Method support also works.

Standard GTK file dialog functionality works.

Standard GTK message dialogs work.

Context menus, now using Popover Menus, work.

Toplevel Menubar and menus, via gtk_popover_menu_bar_new_from_model, are also functional.

Working sample native GTK dialog. A work in progress, my current thinking is with GtkButtonBox gone that moving the old action area contents to the dialogs GtkHeaderBar seems the easiest route.

by caolan (noreply@blogger.com) at May 14, 2021 03:57 PM

May 13, 2021

Tomaž Vajngerl

Command Popup HUD for LibreOffice

Command Popup is a pop-up window that lets you search for commands that are present in the main menu and run them. This was requested in bug tdf#91874 and over-time accumulated over 14 duplicated bugs reports, so it was a very requested feature.

I'm intrigued by similar functionality in other programs, because it enables very quick access to commands (or programs) and at the same time don't need to move your hand off the keyboard. It also makes it easy to search for commands - especially in an application like LibreOffice with humongous main menu. So I decided to try to implement it for LibreOffice.

Figure 1: Command Popup window

I was working on it here and there in my free time and managed to make it work as I imagined, however it was very rough around the edges and needed a lot of polish. Luckily in April, we had a hack week at Collabora, where I decided to use some time to work on finishing the command popup. I dusted up the old code and converted it to use the weld framework for widgets and fixed the many bugs, but I didn't manage to finish it completely so it took until recently that I actually pushed the code upstream into master.

The main UX focus is to easy search and navigate with the keyboard. When the Command pop-up is focused, all keyboard events should go to the search edit box, so it is possible to change the search term, however hitting up/down should change the selection in the tree view, where the search results are shown, and enter should execute the command. To get this working correctly was quite a challenge, but I found the correct formula eventually after trying some different ideas. Of course using the mouse should still work as well. 

To show the Command Popup, there is a menu entry in "Help > Search Commands" and is by default bind to "Ctrl+F1" shortcut (however this may change). 

The Command Popup will be available in LibreOffice 7.2, but if you want to try it out, you can get the current daily build, or wait for the LibreOffice 7.2 Alpha1. Any suggestions and comments are welcome. If you find a bug, please report it in the LibreOffice bugzilla page.


by Tomaž Vajngerl (noreply@blogger.com) at May 13, 2021 02:14 PM

May 05, 2021

LibreOffice QA Blog

QA/Dev Report: April 2021

General Activities

  1. LibreOffice 7.1.2 was released on April 1st
  2. Ilmari Lauhakangas (TDF) wrote a nice report about the progress done by the Macro Team in the last year
  3. Stanislav Horacek updated some menu paths in Help.
  4. Seth Chaiklin clarified the meaning of numbered paragraphs in Help.
  5. Olivier Hallot (TDF) made 20 changes and additions to Help with topics including menus, Calc cell protection and direct formatting.
  6. Jean-Pierre Ledure worked on the ScriptForge library
  7. Alain Romedenne and Rafael Lima improved the Help content for the ScriptForge library. Rafel also made it so word wrapping in shapes is enabled by default in Impress and Draw.
  8. Xisco Faulí (TDF) made about 30 improvements and additions to unit and UI tests, fixed some regression bugs and added an automated check for translation domains in .ui files
  9. Rizal Muttaqin made updates to all icon themes
  10. Jan-Marek Glogowski, Armin Le Grand and Thorsten Behrens (allotropia) worked on the WASM build in a feature branch
  11. Tibor Nagy (NISZ) fixed losing internal hyperlinks upon PPTX import
  12. Vert D improved renaming behaviour in the Template Manager
  13. Tushar Kumar Rai fixed a Data Provider crash
  14. Roland Kurmann fixed filtered/transpose paste in Calc while adding many new unit tests for the functionality, fixed copying multiple cells from a Calc column and pasting outside LibreOffice and made it so only the count of non-filtered rows will be shown in Calc’s status bar
  15. Dante Doménech added some MathML structures and started making use of the Kahan summation algorithm in Calc in order to reduce the numerical error in the total of floating-point calculations
  16. Ilhan Yesil made it so the tooltip of a button created by an extension in the Sidebar is refreshed immediately upon text changes
  17. Áron Budea (Collabora) fixed a regression in the Modify DDE Link dialog layout
  18. Attila Bakos (NISZ) fixed some Writer textbox crashes and regressions and fixed PPTX exporting of template textbox placeholders
  19. Tünde Tóth (NISZ) fixed some issues with Calc filtering
  20. Jeff Huang fixed a Writer regression in inserting lines with arrow/circle
  21. Mark Hung fixed an undo-redo crash
  22. Andreas Kainz improved the Notebookbar command logic and improved the layout of some dialogs
  23. Aditya Pratap Singh made the image export dialog behaviour more intuitive
  24. Luke Deller fixed an issue with Writer using 100% CPU while idle
  25. Pedro Pinto Silva improved the macro selector and about dialog layouts
  26. Bubli fixed some Impress animation issues
  27. Heiko Tietze (TDF) made it so the location in file properties dialog is a hyperlink and improved the Style Inspector layout
  28. Matej Kivader fixed the display of custom button text colour in Basic dialog designer
  29. Gábor Kelemen (NISZ) made improvements in menu accelerators, buttons and Impress/Draw general options layout
  30. Stephan Bergmann (Red Hat) made many code cleanups, replaced apache-commons-logging with java.util.logging.Logger in report builder and elsewhere, fixed unnecessary authentication prompt upon having sftp URIs in recent documents and improved compatibility with C++20
  31. Hossein Noorikhah converted all the README files to consistent Markdown format while updating them in many places. He also fixed problems with the HTML generation solution for the READMEs
  32. Luboš Luňák (Collabora) made optimisations related to graphics rendering and bitmap loading and improved the Skia integration
  33. Armin Le Grand (allotropia) fixed vanishing form controls in edit mode or print preview and fixed a couple of linked OLE object issues
  34. László Németh (NISZ) continued adding metadata display capabilities to the Style Inspector, added support for deleted images in change tracking, improved the change tracking UX and fixed a mail merge document counting off by one error
  35. Michael Stahl (allotropia) fixed a z-order issue with floating objects, fixed missing images in imported DOCX header/footer, improved the performance of Writer word count and fixed some Writer crashes
  36. Bayram Çiçek made it so MIME type icons are displayed in the recent documents menu list
  37. Noel Grandin (Collabora) improved the speed of opening XLSX files with thousands of shape objects (with additional contributions by Caolán McNamara), improved the speed of opening XLSX files with massive amounts of row range style attributes and made many code cleanups and optimisations
  38. Arnaud versini fixed a regression in breaking links to external images
  39. Vasily Melenchuk (CIB) added unit tests for Basic dialog XML serialisation (none existed so far)
  40. Andreas Heinisch added checks for valid range names and cell references inserted via API, made Calc range name definition errors show in a tooltip, taught UI tests how to check tooltip text, made Calc sorting respect “Include formats” option, made Calc’s IRR function accept an array as argument, limited the calculation of Pearson coefficient in Calc’s RSQ and PEARSON functions and improved the Calc Manage Names dialog
  41. Thorsten Behrens (allotropia) added initial support for sccache builds on Windows
  42. Regina Henschel fixed DOCX import of group or line with rotation
  43. Bartosz Kosiorek implemented PAINTRGN record and complex clipping support for EMF graphics
  44. Jan-Marek Glogowski (allotropia) fixed clipboard handling with Wayland + Qt as well as several other Qt/kf5 issues
  45. Gülşah Köse (Collabora) fixed a mail merge issue where empty fields were returned
  46. Tomoyuki Kubota helped Caolán with the UI backend work with a couple of patches
  47. Tomaž Vajngerl (Collabora) made internal improvements to graphics handling code
  48. Justin Luth (Collabora/SIL) fixed losing outline levels upon DOC export, fixed z-order issues with background shapes in DOC import, made DOCX export support russianUpper/russianLower numbering, fixed a DOC import layout issue related to MS Word’s excessively liberal design settings, fixed DOC/RTF export of fixed date and time fields, fixed dupliction of comments, fields and footnotes in DOCX export and fixed many DOC/DOCX import/export issues related to numbering
  49. Michael Weghorn made many improvements to the Android version with topics including recent file display, file saving and PDF export
  50. Tor Lillqvist (Collabora) worked on the iOS version and improved the event tracing API
  51. Rounak Modi added his first unit test
  52. Eike Rathke (Red Hat) overhauled VBA Range getFormula(R1C1) to make it work properly
  53. Szymon Kłos (Collabora) added a Fontwork options panel into the Sidebar and made Impress collaborative editing more robust
  54. Julien Nabet fixed regressions in image filters and made code cleanups and crash fixes
  55. Miklos Vajna (Collabora) continued improving gutter margins (RTL) and made improvements to the bibliography feature (URL handling, page references). He also fixed issues with OLE object sizing in HTML export
  56. Jim Raykowski improved the Outline folding feature, made crash fixes, added the ability to navigate by fields with the Navigate By control and added fields content type to Navigator
  57. Samuel Mehrbrodt (allotropia) added a mechanism to selectively enable macros for document events
  58. Matt K added a check for ODF file format associations on Windows upon startup and changed the Windows file dialog to run on the main thread to avoid crashes
  59. Mike Kaganski (Collabora) improved the Calc tab bar look, made it so pasting RTF content does not wipe out document settings, added DOCX export/import of resolved comments as “done” and made code cleanups and optimisations, crash fixes and improvements to unit tests
  60. Caolán McNamara fixed an infinite loop in spellchecking dialog layout, fixed an issue with duplicated and misplaced images in exported Archive/A-1b PDFs, made dragging hyperlinks in Writer with GTK3 backend work, continued on the last stretch of the massive UI backend work and made many cleanups and crash fixes

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

577 bugs, 71 of which are enhancements, have been reported by 362 people.

Top 10 Reporters

  1. Xisco Faulí ( 24 )
  2. NISZ LibreOffice Team ( 24 )
  3. Telesto ( 24 )
  4. Eyal Rozenberg ( 22 )
  5. Regina Henschel ( 13 )
  6. Olivier Hallot ( 8 )
  7. Scito ( 6 )
  8. Roman Kuznetsov ( 6 )
  9. BDF ( 6 )
  10. Rizal Muttaqin ( 6 )

Triaged Bugs

609 bugs have been triaged by 100 people.

Top 10 Triagers

  1. Xisco Faulí ( 111 )
  2. Heiko Tietze ( 56 )
  3. Dieter ( 50 )
  4. Buovjaga ( 49 )
  5. Timur ( 33 )
  6. Julien Nabet ( 22 )
  7. Mike Kaganski ( 17 )
  8. Roman Kuznetsov ( 16 )
  9. raal ( 15 )
  10. Olivier Hallot ( 15 )

Resolution of resolved bugs

617 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 47 people.

Top 10 Fixers

  1. Caolán McNamara ( 23 )
  2. Mike Kaganski ( 10 )
  3. Andreas Heinisch ( 9 )
  4. Olivier Hallot ( 9 )
  5. Justin Luth ( 7 )
  6. László Németh ( 7 )
  7. scito ( 6 )
  8. Miklos Vajna ( 6 )
  9. Jan-Marek Glogowski ( 6 )
  10. Attila Bakos (NISZ) ( 5 )

List of critical bugs fixed

  1. tdf#106282 Crash in: windows.storage.dll when hitting cancel in file open dialog, when a file search is running ( Thanks to Matt K )
  2. tdf#86321 EDITING, FORMATTING: diagram didn’t automatic update when change variable (steps in comment 28) ( Thanks to Xisco Fauli )

List of high severity bugs fixed

  1. tdf#106195 Change docs to explain how to handle and remove direct formatting ( Thanks to Olivier Hallot )
  2. tdf#132472 FILEOPEN PPTX Table text imported with white color ( Thanks to Xisco Fauli )
  3. tdf#132901 Tools > Options > LibreOffice > Online update crashes if “online update” feature is not installed ( Thanks to Xisco Fauli )
  4. tdf#138785 Empty frames after deleting an image and (auto-saving the file) (track changes involved) ( Thanks to Michael Stahl )
  5. tdf#140639 It is not possible to work with an older document from LO 6.4 in new LO 7.0, slow perf ( Thanks to Caolán McNamara )
  6. tdf#141345 new feature gutter-margin in LO7.2 produces unnecessary incompatibility with LO7.1 ( Thanks to Miklos Vajna )
  7. tdf#141504 UI Images look ugly with 1-bit depth with QT5 backend ( Thanks to Jan-Marek Glogowski )
  8. tdf#141703 EDITING Tab key no longer moves to next cell in Impress table ( Thanks to Samuel Mehrbrodt )

List of crashes fixed

  1. tdf#106282 Crash in: windows.storage.dll when hitting cancel in file open dialog, when a file search is running ( Thanks to Matt K )
  2. tdf#131634 Crash in sd::View::SdrEndTextEdit(bool) ( Thanks to Mark Hung )
  3. tdf#132901 Tools > Options > LibreOffice > Online update crashes if “online update” feature is not installed ( Thanks to Xisco Fauli )
  4. tdf#135997 SPECIAL CHARACTER DIALOG: Crash in: SvxCharacterMap::updateRecentCharControl() ( Thanks to Mike Kaganski )
  5. tdf#141405 LO crashes when adding control in dialog editor ( Thanks to Jim Raykowski )
  6. tdf#141499 Crash inserting hyperlink (fairly often) and cursor not starting in URL field ( Thanks to Caolán McNamara )
  7. tdf#141511 CRASH: creating new document while navigator is displayed ( Thanks to Jim Raykowski )
  8. tdf#141531 Android Viewer crashes trying to open mail merge file with unavailable data source ( Thanks to Michael Weghorn )
  9. tdf#141537 UNO Object Inspector: Crash while inspecting file ( Thanks to Julien Nabet )
  10. tdf#141547 CRASH: opening Standard Filter dialog ( Thanks to Mike Kaganski )
  11. tdf#141557 DOCX file crashes when the anchor changed to_paragraph from as_char ( Thanks to Attila Bakos (NISZ) )
  12. tdf#141689 Crash with trendline using moving average with 2 points and type central ( Thanks to Samuel Mehrbrodt )
  13. tdf#141701 EDITING Crash when closing 3D View dialog of 3D chart ( Thanks to Noel Grandin )
  14. tdf#141708 CRASH: closing document while navigator is open ( gen ) ( Thanks to Caolán McNamara )
  15. tdf#141854 Crash in: mergedlo.dll ( Thanks to Caolán McNamara )
  16. tdf#141887 Crash on closing Writer via window decoration (X) with unmodified document and active IM ( Thanks to Jan-Marek Glogowski )
  17. tdf#141924 A specific file crashes with Style Inspector open, after deleting some text ( Thanks to Mike Kaganski )
  18. tdf#141967 Crash when closing Asian Phonetic Guide (gtk3) ( Thanks to Caolán McNamara )

List of performance issues fixed

  1. tdf#140639 It is not possible to work with an older document from LO 6.4 in new LO 7.0, slow perf ( Thanks to Caolán McNamara )
  2. tdf#141416 [FILEOPEN] Excel file very long to open (more than one hour) ( Thanks to Xisco Fauli )
  3. tdf#141556 Ongoing 100% CPU usage after opening document ( Thanks to Luke Deller )
  4. tdf#45820 insanely slow wmf import (complex

by x1sc0 at May 05, 2021 03:42 PM

Miklos Vajna

Bibliography improvements in LibreOffice Writer: refer to a specific page

The bibliography feature in Writer allows authors of e.g. scientific papers to track sources: first you can insert bibliography entry fields, then at the end you can generate a bibliography table automatically.

Writer recently gained two improvements in this area, and now there is one more: the ability to refer to a specific page of a (potentially long) source.

First, thanks TUBITAK ULAKBIM who made this work by Collabora possible.

Motivation

The same feature in normal HTML linking / citation is well-known: you can place anchors in your document and then links can refer to not only to your page, but also can set the fragment part of the URL to jump to a specific section directly. E.g. this link will jump to the "Motivation" section of the above referred previous post.

Wouldn’t it be nice if you could also jump to a specific page of a scientific PDF?

Results so far

You can add such references by choosing the Insert → Table of Contents and Index → Bibliography Entry menu item. Set Bibliography Source to Document Content and press the New button. The appearing dialog now has widgets to set a specific page number:

https://share.vmiklos.hu/blog/sw-bibliography-page/page.png
Figure 1. Refer to a specic page of a bibliography source, user interface

This is then stored in the URL by setting its fragment to page=..., and typically PDF readers understand this syntax, so when you click on the URL, the PDF will open exactly on the cited page.

This also works the other way around: URLs with such syntax are presented to the user with the dedicated widget to see, edit or delete the page number of the URL.

Finally, if you refer to different pages of the same source, the bibliography text generator detects this and lists the source in the bibliography only once.

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 incremental development steps:

Want to start using this?

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

by Miklos Vajna at May 05, 2021 09:25 AM

April 18, 2021

Luboš Luňák

The effect of CPU, link-time (LTO) and profile-guided (PGO) optimizations on the compiler itself

 In other words, how much faster will a compiler be after it's been built with various optimizations?

Given the recent Clang12 release, I've decided to update my local build of Clang11 that I've been using for building LibreOffice. I switched to using my own Clang build instead of openSUSE packages somewhen in the past because it was faster. I've meanwhile forgot how much faster :), and openSUSE packages now build with LTO, so I've built Clang12 in several different ways to test the effect and this is it:


The file compiled is LO Calc's document.cxx, a fairly large source file, in a debug LO build. The compilation of the file is always the same, the only thing that differs is the compiler used and whether LO's PCH support is enabled. And the items are:

  1. Base - A release build of Clang12, with (more or less) the default options.
  2. CPU - As above, with -march=native -mtune=native added.
  3. LTO - As above, with link-time optimization used. Building Clang this way takes longer.
  4. LTO+PGO - As above, also with profile-guided optimization used. Building Clang this way takes even longer, as it needs two extra Clang builds to collect the PGO data.
  5. Base PCH - As Base, and the file is built with PCH used.
  6. LTO+PGO PCH - As LTO+PGO, again with PCH used.

Or, if you want this as numbers, then with Base being 100%, CPU is 85%, LTO is 78%, LTO+PGO is 59%, Base PCH is 37% and LTO+PGO PCH is 25%. Not bad.

Mind you, this is just for one randomly selected file. YMMV. For the build from the video from the last time, the original time of 4m39s with Clang11 LTO PCH goes down to 3m31s for Clang12 LTO+PGO PCH, which is 76%, which is consistent with the LTO->LTO+PGO change above.


 

by llunak (noreply@blogger.com) at April 18, 2021 06:18 PM

April 14, 2021

Michael Meeks

2021-04-14 Wednesday

  • Catch up with Tor, sales call with Eloy - prodded at a nasty mis-feature with web view mode in Online and code read through a nasty with Ash. M's ballet re-starting; fun.

April 14, 2021 09:00 PM

Miklos Vajna

Improving borders of merged table cells in Writer

Writer now has better support for Word-compatible border rending when it comes to vertically merged cells in tables.

First, thanks Docmosis who made this work by Collabora possible.

Motivation

Both Word and Writer allow specifying borders for any kind of table cells. When the user creates a vertically merged cell, there is a covering cell and there is one or more covered table cells.

The Writer approach is to render the cell borders according to the properties of the covering cell. This has the benefit that each edge of the table cell has a single border style (e.g. dashed or hairline).

The Word approach is to render the cell borders as if there would be no vertical merge, according to the properties of the covered cell. This has the benefit that merging the content of cells vertically doesn’t change the border rendering, but it also requires more complex code for painting.

Results so far

Writer can now detect that your tables originate from Word formats and render table borders the Word way in that case.

Here is how the new rendering result look like:

https://share.vmiklos.hu/blog/sw-merged-border/new.png
Figure 1. Writer rendering in compatibility mode, new output

And here is how it used to look like:

https://share.vmiklos.hu/blog/sw-merged-border/old.png
Figure 2. Writer rendering in compatibility mode, old output

And finally the reference rendering is:

https://share.vmiklos.hu/blog/sw-merged-border/ref.png
Figure 3. Writer rendering in compatibility mode, reference output

You can see that the B4 and B5 cells are covered, they had some unwanted border on their left side and this is now gone.

How is this implemented?

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

  • First, some building blocks were introduced: SwCellFrame::GetCoveredCellInRow() can look up a covered cell in a certain row, provided that this cell covers it

  • Building on top of this, SwCellFrame::GetCoveredCells() can provide a list of cell frames which are covered by the current cell, due to vertical merge. This is needed, because previously the layout didn’t have to consider properties of covered cells, so while the document model had this information, it was not visible to the layout in a convenient way

  • Using the above functionality, SwTabFramePainter::Insert() can suppress painting of certain border lines in Word compatibility mode

  • Finally, the code change can be covered with a test by recording the rendering and asserting the vertical positions of border points: we can check that all the positions belong to the 1st, 2nd or 3rd rows, and not to a row below them

Want to start using this?

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

by Miklos Vajna at April 14, 2021 07:00 AM

April 13, 2021

Michael Meeks

2021-04-13 Tuesday

  • Mail chew, sync with Kendy; chased customer bugs, and contractuals; catch-up with Pedro.

April 13, 2021 09:00 PM

April 12, 2021

Michael Meeks

2021-04-12 Monday

  • Mail chew, planning call, catch up with Eloy.

April 12, 2021 09:00 PM

Excommunicating a heretic

Young & foolish?

In 1988 as a scrawny eleven-year old arrival alone at boarding school, perhaps the only Quaker in a thousand strong body; I wore a white poppy to the large Remembrance Day commemorations. I recall the interest and forceful objections of my peers and elders - some with armed service connections, and my impassioned pleas for a personal pacifism. No doubt there were some who were intellectual defenders of the doctrine of Just War: (love's response to a neighbour threatened), as I myself became later in life - but I suspect that the fun of picking on those who are noticeably different was the dominant motivation. I imagine a majority of those in the Free Software community have suffered similar or more traumatic experiences, associated with being noticeably and vocally different; of being outstanding in one area & yet weak in others: perhaps socially and/or athletically. Hopefully that lets us empathise with others who are oppressed. That's why in this debate I think the purest motives on both sides here are closest to this: What is love's response to a neighbour who is threatened? and then what is proportional?

Disclaimer: something must be done

Recently RMS returned to the FSF board with to my mind an indefensible lack of grace & engagement with his critics. This seems to unfortunately intersect with the absence of good, representative governance structures for eg. GPL users to affect license direction. People started on-line petitions in liu of voting to either remove the FSF board or to unconditionally support RMS. Spoiler alert - there is something to annoy everyone here. I don't believe either of these stated positions is helpful and one of them is actively dangerous. I expect RMS to demonstrate hard-core leadership by preparing for his inevitable political or physical death, and building good governance structures that can live on and continue his work. It is not a time to do nothing. KDE's, statement seemed constructive, Debian had a middle ground option, and even RedHat's position was not so extreme. I sincerely hope that the FSF can be improved and continue to reflect RMS' vision of Software Freedom.

Its not all awful

The open letter to remove the FSF board contains much that is deeply problematic, yet there are some sensible pieces, take this one:

While these ideas have been popularized in some form by Richard M. Stallman, he does not speak for us. We do not condone his actions and opinions. We do not acknowledge his leadership or the leadership of the Free Software Foundation as it stands today.

Notice the credit, and yet creating distance, notice the sensible tone, and the moderate approach. I would like to think that the several thousand people signing up to this, many of whom I like, some of whom I've really enjoyed working with are primarily saying only what this paragraph says. If so - good, I can understand that. Unfortunately alongside this reasonableness are some very profound problems that needlessly makes this one of the most divisive initiatives I've seen in free-software:

Attacking people's beliefs?

The rational here seems really damaging:

"He has shown himself to be misogynist, ableist, and transphobic, among other serious accusations of impropriety [impiety?]. These sorts of beliefs have no place in the free software, digital rights, and tech communities. ... There has been enough tolerance of RMS’s repugnant ideas ... we will not continue suffering his behaviour, ... or otherwise holding him and his hurtful and dangerous ideology as acceptable. ... We ask for contributors to free software projects to take a stand against bigotry and hate within their projects."

This focus on beliefs is unconscionable. Beliefs struggle to exist outside people's heads so I read this as: People who we can plausibly accuse of having misogynistic, ableist or transphobic beliefs have no place in the free software community. This might sound plural and welcoming, and I understand the desire to stick up for those who are marginalized, but it has a number of acute problems.

What is the new orthodoxy?

Which are the views that must be held (or not held) to have a place in free software? Unfortunately the new orthodoxy while having sixteen promoters is unbounded - we are not given a comprehensive creed. We do have some very precise examples on what is not acceptable though. Lets take trans-phobia. Apparently RMS while not on the autistic spectrum, does have a phobia. However - exactly what that phobia is is rather less than clear. Many (including I suspect RMS) are convinced that he is not transphobic. There seems to be a somewhat complex difference in the doctrine of how best to de-gender pronouns which causes the problem.

Interestingly the ableist issue when I skimmed the snippets seems to be rooted in a specific view on the ethics of abortion. As a young woman finds herself unexpectedly alone at a crossroads of life-changing consequence it is hard not to have deep compassion for her! Indeed, my wife has spent some years giving space and a listening ear, to help women think through their choices at this crisis point. Views vary widely here, but it seems that even among abortion activists the (perhaps comforting) view that there is zero moral dimension: that the act is no more significant than clipping your fingernails is a rather extreme one. Nevertheless if you hold it I expect it makes it much harder to critique selective abortion - whether for sex, disability or (as technology advances) more eugenic Gattaca-style scenarios. I read RMS' deeply disturbing advice on selecting for ability (which is sadly common) as flowing from this understanding. Should an affirmation of the wonderful, unique, created in the image of God value of all persons at some point in this process be mandatory for inclusion in our community? A tough one.

Apparently the signatories of this document also think that having mysogynistic beliefs is grounds for excommunication from the free software community. Who chose these three beliefs? where did they appear from? are there any more things we should not believe? Presumably traditional convictions around marriage are also grounds, cf. the Brendan Eich hysteria but; what else?

On excommunicating heretics

The paradox of intolerance is often aired to lazily avoid spending any thought justifying this sort of statement & action. One day I hope to have time to read The Open Society and its Enemies and its counterpoint. The vital need is to respect the dignity, protect the property, and cherish the lives of others - particularly those who have historically suffered. I can see how this is especially important to trans people, and I take no pleasure in seeing them offended. Having said that there are also many groups who have suffered historically in horrible ways. History is indeed littered with examples of well meaning intolerance going badly wrong. It is also clearly the case that some speech is unacceptable (but beliefs!?). The interesting question here is really where to draw the line. No doubt it feels good to stand up for a vulnerable marginalized community by excluding those with whom they disagree. I do wonder whether that is easier than trying to understand and accurately portray both sides - or "putting the work in to understand other human beings".

This is fun! lets find more heretics!

It seems to me there is a substantial convergence of views between RMS and this new orthodoxy - so it should be far easier to find those whose beliefs diverge significantly. Luckily very detailed descriptions exist of what very large groups of people believe around the world. Many have different ideas of how best to love those with whom they disagree. For example Male and Female he created them - towards a path of dialogue on the question of gender theory in education. (published 2019 under Pope Francis). That should be easy to caricature in order to exclude people from the Free Software community. I think it would also be easy to argue that a loyal Catholic faithfully upholding the Churches' teaching has beliefs that are more easy to caricature as mysogynist than RMS'. I really don't want to pick on Catholics (who just happen to be rather good at multi-lingual write-ups of their doctrines), so how about a random update from the Church of England. Of course - in each case adherents would reject such a caricature and these labels; no doubt they would also have powerful convictions on when life begins. But perhaps that's all a bit Euro-centric - so how about Wikipedia on Islam, or we can spend all day cycling through major belief systems each representing hundreds of millions of people, and collectively billions. Almost all of these will have some element that will conflict with or upset the opinions of someone else. Most of these belief systems are mutually contradictory and/or mutually offensive at some level to adherents of others. So there should be no shortage of beliefs for which we can excommunicate others.

I hear the common objection: "But I have a friend who is a <insert religion> and they don't believe anything (like that) - perhaps we can only exclude the ones that actually believe these things?". I'm sure you do have such a friend, and so do I. Clearly no world religion has a monolithic interpretation. The balance between revelation & personal experience, the hermeneutics and theology varies extraordinarily widely. That results in sets of people under the same apparent umbrella holding widely different beliefs; even if we can safely assume that you truly know what your friend believes; and this is before we get into more esoteric Spaghetti Monster style creeds.

All that aside - I see no way to argue for excluding RMS on the basis of his beliefs (ie. he is not progressive-orthodox enough) without also loosing a big chunk of the rest of the world as well. Please notice - nothing in the statement that so many signed says this is specific to leaders, or being a prominent person, each belief itself is grounds: "these sort of beliefs have no place in the free software community?". Why pick belief as a rationale?

Potential allies in surprising places

An acquaintance of a friend spent many decades smuggling 'pornographic literature' into the Eastern Block - (very good for marriage enrichment). He also founded a non-profit Open Doors, here's a quote from the pre-amble to their watch list:

In the most populated countries on earth, [people] live in a surveillance state ... China has also developed widespread facial recognition software and established laws requiring facial scans to purchase a phone. When taken together, these two technological advances mean the government can track individuals like never before ... China is also rolling out a country-wide Social Credit System (SCS) by which authorities plan to reward "good" citizenship and punish "bad."

Do people with those beliefs, who are actively working to educate, lobby, change hearts & minds to guard society and help others - have common cause with us in the "digital rights community"? - or do they need excommunicating too? It is interesting that Open Doors provide one of the more conservative estimates of the ~thousand(s) of Christians killed each year specifically for their faith. I worry about an ethnocentricity that extrapolates from the USA's poisonous cultural divisions to erase the oppression of minorities around the globe. It is not acceptable to consider the impact of community policies based only on the Silicon Valley population & culture.

Transient heretics in surprising places

Another interesting problem with orthodoxy is the surprising belligerence and infighting that it can breed - often on minor issues. This is familiar from the innumerable schisms in small churches. A joke is told in the aftermath of a church dividing; of an old friend checking in with one of the new leaders: "Ah, these are terrible faithless times - we've split again over doctrine, and now it's just me and my brother. And to be honest - I'm not so sure about him!". I was interested to see the story of eg. Valerie Aurora: an extremely smart & dynamic feminist who is a leading expert on the latest diversity topics. Yet she was somehow ejected from Double Union the hacker/maker space she co-founded because of inadvertently infringing the code of conduct that she ~wrote. I fear living in a world where even outwardly conforming to the latest progressive orthodoxy would tax the wisdom of Solomon.

Prophets of a new creed

It is interesting to read about the beliefs of some of the people involved here; sadly I don't know Molly - but I've had the privilege of working with Matthew Garrett in his early days on GNOME - and a smarter, more charismatic, outspoken, iconoclastic(?), amusing person it's hard to find - quite apart from his amazing depth of contribution to Free Software. I was interested to try to quickly skim Molly & Matthew's beliefs based on what they write and see how they measure up.

Before doing that - let me re-assert that I take the freedoms of speech, conscience and expression extremely seriously as self-evidently vital for the functioning of an open society, though not absolute. While I want everybody to live in a physically safe space, I want to discuss views robustly in an atmosphere of respectful enquiry, with complete freedom and openness. It is not my intention to enlarge the sphere of (self) censorship.

There is however a kind of humour whose value (if any) is drawn from trampling the personal & sacred to elicit a response; is it nervous schadenfreude for those thus offended? (in this case those who love Christ more than friends or family). I don't see many cursing with ~obsolete god's names eg. Marduk so what can we learn from:

I'd prefer five words such as: challenging, fascinating, absorbing, collaborative, rewarding myself - but I'd hate to live in a world devoid of humour. Another example - I was interested by Molly's re-tweet on another hot potato (as always well worth reading the primary source court judgement rather than the dubious spin below):

To me it is curious that someone can champion excluding people over their heterodox beliefs, while simultaneously shouting things like the below; perhaps some irony overload here:

Apparently it is easy to end up championing the gentle treatment of a sexual minority while thinking it is funny to be gratuitously offensive to other minorities. Surely it can be offensive enough to respectfully state ones position. Still - in a world where there is a broad freedom of belief, conscience and speech, possibly some humour can cut through the gloom. A possibly tragic, possibly humorous but probably co-incidental aside here is that some chunk of this is based on an excessive focus on a small divergence in linguistic orthodoxy; when this was a hallmark of the GNU-slash-Linux campaigns of the past.

Perhaps you think it is deeply unfair to examine people's public twitter feeds - which occur outside the context of a project - to determine whether their beliefs are aligned with the standards they demand from others. Actually - I tend to agree. For good reason any sensible code of conduct excludes speech and behaviour outside its immediate project context. Not so this statement - its scope is everyone, everywhere and all of the time - even historic beliefs.

But possibly you think that it is ok to attack the privileged to defend the weak; that it is proportional to agitate to end someone's career in order to avoid the risk of a friendly minority member inadvertently working alongside someone who has some subset of beliefs that differ from theirs.

Saint Obama: the world is complicated

I was encouraged recently to watch this, and I excerpt the first part:

This idea of purity, never compromised, always politically woke & all that stuff - you should get over that quickly. The world is messy, there are ambiguities, people who do really good stuff have flaws.

(his Catholic vice-president also seems to be doing well as of late too). I expect that any model of people that doesn't tolerate the complexity and malleability of human experience and belief will ultimately not represent the world well. That will lead to disappointment. You should get over that quickly. I'm certainly far from perfect, my views change over time, perhaps the same is true for you. As Lincoln pointed out that Those who look for the bad in people will surely find it, I'm often guilty of that myself.

Conclusion

Should we fear a world-view that locates most of the world's problems in other people? The flaws I'm most concerned about are my own (which are more than obvious though I'm certain I have more that you can locate). It is because of those flaws that I need to live in a place that is patient and loving.

Should we fear a world-view that builds a path to redemption via being maximally unpleasant to others who disagree? Or is it better to try hard to "Act justly and to love mercy and to walk humbly with your God" (Micah 6).

Is being offended occasionally by others' (truly objectionable) beliefs the price of collaborating with people with diverse viewpoints, discussing anything and everything without boundaries and learning? Not always a small price to pay, but is it not necessary? Surely it is the case that each member of outlying groups benefits from mutual tolerance. Indeed we often celebrate the amazing contributions to society of those who (at the time) were viewed to have unacceptably fringe beliefs & practices. Becoming a less tolerant society is potentially polarizing and dangerous.

What is love's response to a neighbour in need in this instance? Probably it is to vigorously encourage RMS to setup a representative governance so actual users of the GPL family can determine its post-RMS future. Perhaps it is to loudly re-iterate the obvious: that RMS does not represent you or me - and that we don't share the details of his unusual politics; to make more obvious that personal views are disjoint from organizations' missions, and to ensure we are able to choose our representatives in a secret ballot. But love's response is certainly not to let Free Software get twisted into a new and narrow orthodoxy consumed by gender politics to its own harm and the exclusion of others. We should remain a broad, tolerant and inclusive church even when it hurts. We used to be focused on liberty & freedom - I miss that.

"We ask for contributors to free software projects to take a stand against bigotry and hate within their projects."

Bigotry - a stubborn and complete intolerance of any creed, belief, or opinion that differs from one's own.

Postscript A - why religious tolerance?

It seems obvious to me that this new orthodoxy combined with political power is rather dangerous. Perhaps those who have not grown up with some of the common stories would do well to read them. How about the fiery furnace - takes two minutes of your life; but why is it so hard to show due respect to the pagan government's request? is that really breaking the 2nd commandment? Or - if you have a very strong stomach - try just eat the pork: why won't they obey orders from an authority (Epiphanes: 'god manifest') - perhaps interesting? What requirements or forced conformity might be too much? Is there a shortcut via coercion to truly change society to how I want it to look? or is winsome persuasion the best way? Of course there is a shameful record of burnings, division & bigotry - often over rather small divergences in orthodoxy throughout the Church's history, without even getting into where major creeds interacted at a larger world scale. Then again I'm sympathetic to the Pastafarian concern that arbitrarily unreasonable creeds can be created, and that other points of view have no systematic orthodoxy to protect them which seems unfair: surely it is so: so lets treat all people fairly when our worlds collide.

Postscript B - hiring people

"We want to hire diverse people - but only if they are exactly like us."

One of the things that has saddened me most among those I've worked with in the past is that it is now acceptable for people to say that they would not hire people with beliefs that I know many wonderful, excellent, Christian programmers have. There is a rising tide of intolerance of those that are perceived not to kowtow to the new progressive orthodoxy.

Generally an attitude of graciously accepting others' hostility has held, along with avoiding law-suits. I fear though that as attacks on believers' presence in Free Software get more explicit there will be a slowly growing realization of the problem here. Not to pick on Mozilla (though they did sign this problematic statement) but I'm curious how views that are 'traumatic and damaging' can be accommodated there. I think it is past time to start monitoring religious affiliation as well as ethnicity as part of diversity.

Can any company explain how These sorts of beliefs have no place in the free software, digital rights, and tech communities can intersect with companies that build products around such communities? Surely we can find lots of quotes saying how important community is to developing software. Surely we can find statements that employees are members of such communities. So is it really credible to a-priori exclude masses of people on the basis of their beliefs from your employee pool? Does that extend to refusing to hire people based on their beliefs? Or perhaps people with incompatible beliefs just get inferior jobs inside the company partitioned away from those communities? Certainly - I feel far from safe & welcome applying to one of the listed companies there without further re-assurance. It is deeply ironic that in the past one of the (baseless) explanations from some of the more reasonable people I talk with for excluding believers from management is that they might discriminate when hiring.

If this statement was focused on leaders, it could be characterized as installing a new glass-ceiling for any who are not progressive-orthodox. Even if it were re-written as a criteria for leaders - I'm still far from sure we will get better leaders by selecting for conformity rather than competence.

As the virtual becomes increasingly more important than the physical for some people's livelihoods hopefully we can all agree that encouraging equitable behaviour online is a good thing.

Postscript C - (goes without saying)

As should not need saying: these views are mine, my own. I don't speak for my employer, nor any projects I'm affiliated with, nor my Church, or my friends. Feel free to borrow any views you find persuasive or reject any you find objectionable.

Updates

2021-04-14: Impressed to receive a very gracious apology from Matthew G for his language; though of course - I'd prefer movement on the substance; good chap; (he approved this, and tweeted). Also an amusing comment from a friend on the parallels between Act justly, and to love mercy and the Robustness principle

April 12, 2021 02:00 PM

April 11, 2021

Michael Meeks

2021-04-11 Sunday

  • Sermon in the car on the way to R&A's - lovely to meet L - in person: another, wonderful nephew - exciting times, and tired parents. Lots of crypto mining going on, thank goodness for an increasingly de-carbonized electricity grid. Home, slugging, bed.

April 11, 2021 09:00 PM

April 09, 2021

Miklos Vajna

My hack week at Collabora: improvements to gutter margin in Writer

As mentioned in a previous such report, a hack week is when we are allowed to hack on anything we want in LibreOffice / Collabora Office / Collabora Online for a few days at Collabora. I used this time to implement core support for RTL gutter margin in Writer.

Motivation

I posted about Writer gutter margin in general back in February, and two follow-up requests accumulated around this new feature since then.

First, the gutter margin could be on the left or at the top for non-mirrored documents, which initially sounded like a complete solution, but later it turned out that right-to-left (RTL) documents want it on the right.

Second, there was a request from the OASIS TC to to implement the ODF filter differently for gutter margin.

Neither of these is simple to do, so this hackweek was a good opportunity to address these problems.

Results so far

Here is the layout and user interface for RTL gutter looks like:

https://share.vmiklos.hu/blog/hackweek-2021/layout-ui.png
Figure 1. RTL gutter margin in Writer, layout and UI

You can see how the gutter is on the right (not the left) and you can alter this behavior with a dedicated checkbox on the UI.

How is this implemented?

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

Finally I had a little bit of remaining time, so I addressed a request from the OASIS ODF TC:

Want to start using this?

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

by Miklos Vajna at April 09, 2021 12:48 PM

April 07, 2021

LibreOffice QA Blog

QA/Dev Report: March 2021

General Activities

  1. LibreOffice 7.0.5 was released on March 12
  2. LibreOffice 7.1.1 was released on March 4
  3. LibreOffice was accepted as a project for the Googgle Summer of Code 2021 program
  4. Ilmari Lauhakangas (TDF) created a new wiki widget to help with navigating the Calc function documentation
  5. Steve Fanning made corrections to the Help content for Calc’s database functions
  6. Jean-Pierre Ledure worked on the ScriptForge library
  7. Alain Romedenne and Rafael Lima improved the Help content for the ScriptForge library. Rafael also updated Slide menu help for Impress and added an example for using hyperlink to folders in Writer and Calc
  8. Adolfo Jayme Barrientos and Johnny_M made smaller fixes and cleanups to Help pages
  9. Olivier Hallot (TDF) improved the Help for Java, Special characters dialog, font embedding and made cleanups
  10. Seth Chaiklin made nearly 50 changes and additions to Help, with topics including list formatting, menus, chapter numbering, page styles and shortcuts. He also made many improvements to tooltips and labels in LibreOffice. Among the people he worked with on perfecting the changes were Mike Kaganski (Collabora) and Dieter Praas.
  11. Akshit Kushwaha changed the QR code encoder library to zxing-cpp, which will allow implementing barcode support. René Engelhard and Mike Kaganski helped with code reviews.
  12. Panos Korovesis made a Writer code cleanup
  13. Jan-Marek Glogowski and Thorsten Behrens (allotropia) worked on the WASM build in a feature branch
  14. Fridrich Štrba made many improvements to libcdr (Corel DRAW importer) and release 0.1.7 was added to LibreOffice
  15. Lionel Elie Mamane fixed an SQL query crash
  16. Vert D fixed refresh showing the wrong category in the Template manager
  17. Gábor Kelemen (NISZ) assigned F4 as a shortcut for Image Properties in Writer and fixed importing WordArt effects textDeflate and textInflateTop from PPTX files
  18. Balázs Sántha improved the performance of Writer change tracking
  19. John fixed an initialisation bug in Basic
  20. Michael Stahl (allotropia) made many internal improvements to the handling of digital signatures, fixed a shape z-index issue with ODF export and implemented BackgroundFullSize property for ODF pages
  21. Jun Nogata added mixed Gregorian and Japanese gengou date formats
  22. Arpit Bandejiya made it so Basic CCur function accepts negative values
  23. Tibor Nagy and Attila Szűcs (NISZ) fixed overlapping wrapped rotated Calc cell contents and an extra page break in DOCX table export. Tibor also fixed losing table cell vertical alignment in PPTX export
  24. Bartosz Kosiorek fixed EMF issues with line width and region filling
  25. Mark Hung fixed a crash when undoing cell merge in Impress
  26. Dipanshu Garg added a UNO command for selection cycling (word, sentence, paragraph, all at cursor), so it can be used with a keyboard shortcut (F8). Dipanshu also made paragraph-anchored objects move more logically
  27. Armin Le Grand (allotropia) fixed incorrect resizing of OLE objects in Writer
  28. Tünde Tóth (NISZ) made several improvements to Calc AutoFilter, including XLSX to compatibility
  29. Eike Rathke (Red Hat) improved date format handling in order to support mixed Gregorian and Japanese gengou calendars, made Calc named ranges UI representation clearer and fixed a problem with Calc LOOKUP function
  30. Bayram Çiçek made restart prompting more logical when installing an extension
  31. Andreas Heinisch fixed an incrementing problem with autofilling dates in Calc, made it so hidden whitespaces in Calc’s AutoFilter dialog are indicated with quotes, fixed detecting end of month when autofilling dates in Calc, added a full HD image resolution option to Impress HTML export and with help from Tomoyuki Kubota, fixed referring to Calc named ranges when using the Excel R1C1 formula syntax
  32. Regina Henschel fixed a 3D shape origin problem and saving 3D wordart from PowerPoint back to PPTX
  33. László Németh (NISZ) fixed losing comment ranges and bad strikethroughs in tracked deletions, fixed a crash when undoing accept all changes, made deleted comments show antialiased lines, fixed losing DOCX tables in footnotes and endnotes and made Style Inspector support RDF metadata
  34. Ayhan Yalçınsoy rearranged the items in UI options
  35. Aditya Pratap Singh and Vikram Bais created their first unit tests
  36. Arnaud Versini made some code cleanups in Basic and animations
  37. Marco Cecchetti improved Impress slides JavaScript export
  38. Julien Nabet renamed “No-width No Break” character to “Word Joiner”, fixed an AutoCorrect crash and fixed PDF exported form buttons not working in Adobe Reader
  39. Rizal Muttaqin made updates to all icon themes
  40. Thorsten Wagner fixed blurry text on macOS 11 with Retina displays, blank tab names in dialog frames on macOS 11 and scrolling artifacts in bitmap images on macOS
  41. Michael Weghorn made many improvements to the Android version and improved the accessibility of Calc’s formatting toolbar
  42. Gülşah Köse (Collabora) implemented PPTX import support for clipped graphics
  43. Szymon Kłos (Collabora) made Calc AutoFilter dropdown button scale according to zoom level, improved Style preview performance and made it so fontwork objects can not be inserted outside the view area
  44. Mike Kaganski (Collabora) fixed an annoying Windows clipboard bug with help from jasonkres and Telesto, fixed a Navigator section listing order issue, made the Mail Merge toolbar visible whenever there is a data source, fixed issues with unnecessary password prompts in protected Mail Merge documents and made code cleanups and improvements to unit tests
  45. Vasily Melenchuk (CIB) fixed a header/footer issue with exported DOCX files
  46. Tomaž Vajngerl (Collabora) worked on the new UNO object inspector and made internal improvements to graphics handling code
  47. Christian Lohmaier (TDF) fixed language pack installation on macOS
  48. Tor Lillqvist (Collabora) worked on the iOS and Android versions, among other things improving pasting support on iOS and enabling thesauruses.
  49. Samuel Mehrbrodt (allotropia) made it so buttons in documents can be triggered with their mnemonic without first focusing on them
  50. Svante Schubert made many improvements to the XSL transformations of HTML export
  51. Heiko Tietze (TDF) fixed image blurriness in tips of the day and added scaling value to Draw’s statusbar
  52. Xisco Faulí (TDF) made nearly 60 improvements and additions to unit and UI tests
  53. Balázs Varga (NISZ) improved the XLSX import of autofilters and improved Mail Merge performance
  54. Attila Bakos (NISZ) fixed broken As character anchoring of Writer text boxes and improved DOCX header/footer compatibility
  55. Luboš Luňák (Collabora) improved image dragging performance in Writer, made crash fixes and improved font handling performance, PNG handling and Skia integration
  56. Daniel Arato (NISZ) made it so headers/footers in a Writer document are not lost when checking a “Same content on…” option, optimised DOCX export regarding header images and, together with Attila Bakos, fixed losing of header/footer undo stack
  57. Mert Tumer (Collabora) fixed an Impress slidesorter crash
  58. Stephan Bergmann (Red Hat) made many code cleanups and test fixes
  59. Justin Luth (Collabora/SIL) continued with character highlight fixes, fixed old issues with tabstops, superscript formatting in DOCX import and paragraph backgrounds and spacing in DOCX export
  60. Miklos Vajna (Collabora) continued improving gutter margins and made improvements to the bibliography feature
  61. Áron Budea (Collabora) fixed an exception crash when opening a DOCX with a certain type of table
  62. Dante Doménech made many internal improvements to Math
  63. Noel Grandin (Collabora) improved macOS widget look and feel, added a script to install build dependencies on different Linux distributions, helped Tomaž with graphics handling improvements and made many code cleanups, crash fixes and optimisations
  64. Caolán McNamara (Red Hat) made the Analog Clock sidebar extension demo work again, made a couple of accessibility fixes, fixed a scrolling issue in conditional formatting dialog, continued on the last stretch of the massive UI backend work and made many cleanups and crash fixes
  65. Jim Raykowski improved the selection mode control in the statusbar, made it so heading levels are displayed in the selection dialog for “Target in document” hyperlinks, fixed Writer’s “Add selection” functionality, made drawing objects have names upon creation in Writer and Calc, fixed table selection from the Navigator not selecting the whole table in Writer and improved the Outline folding feature

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

654 bugs, 69 of which are enhancements, have been reported by 414 people.

Top 10 Reporters

  1. Telesto ( 34 )
  2. Mike Kaganski ( 21 )
  3. NISZ LibreOffice Team ( 20 )
  4. sdc.blanco ( 18 )
  5. Xisco Faulí ( 14 )
  6. Eyal Rozenberg ( 11 )
  7. Jean-François Fortin Tam ( 10 )
  8. Regina Henschel ( 8 )
  9. Christian Lehmann ( 8 )
  10. Matheod ( 7 )

Triaged Bugs

698 bugs have been triaged by 101 people.

Top 10 Triagers

  1. Dieter ( 111 )
  2. Xisco Faulí ( 88 )
  3. Timur ( 64 )
  4. Buovjaga ( 57 )
  5. Roman Kuznetsov ( 48 )
  6. Heiko Tietze ( 31 )
  7. Olivier Hallot ( 27 )
  8. V Stuart Foote ( 25 )
  9. Julien Nabet ( 24 )
  10. Mike Kaganski ( 18 )

Resolution of resolved bugs

637 bugs have been set to RESOLVED.

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

Fixed Bugs

224 bugs have been fixed by 51 people.

Top 10 Fixers

  1. Caolán McNamara ( 16 )
  2. Seth Chaiklin ( 12 )
  3. Luboš Luňák ( 9 )
  4. Jim Raykowski ( 8 )
  5. Mike Kaganski ( 8 )
  6. László Németh ( 7 )
  7. Justin Luth ( 7 )
  8. Michael Weghorn ( 6 )
  9. Miklos Vajna ( 6 )
  10. Xisco Fauli ( 5 )

List of critical bugs fixed

  1. tdf#116983 Paste is sometimes deactivated in (context) menu even though text is copied to clipboard and CTRL+V functioning (steps: Comment 0 and Comment 13 and Comment 28 and Comment 78) ( Thanks to Mike Kaganski )
  2. tdf#127217 PDF export: LibreOffice 6.3 option buttons in forms not working in Adobe Reader (OK in other readers) ( Thanks to Julien Nabet )
  3. tdf#134607 LO7RC1 – LANGPACK macOS – many versions fail to recognize LibreOffice 7.0 / 7.1 installation as valid on Catalina and Big Sur ( Thanks to Christian Lohmaier )
  4. tdf#138122 LibreOffice text blurry on Retina displays on macOS 11 ( Thanks to Thorsten Wagner )

List of high severity bugs fixed

  1. tdf#118693 FILEOPEN: Drawing has incorrect size ( Thanks to Xisco Fauli )
  2. tdf#122717 FILEOPEN DOCX: Horizontal line has wrong size/position and vertical line rendered horizontally ( Thanks to Xisco Fauli )
  3. tdf#122894 FILEOPEN DOC: Crash: SwFrame::RemoveFromLayout() ( Thanks to Caolán McNamara )
  4. tdf#136956 CRASH: Undoing merge cell ( Thanks to Mark Hung )
  5. tdf#138314 Blank tab names in dialog frames, macOS 11 Big Sur ( Thanks to Thorsten Wagner )
  6. tdf#140136 When we click on the FILTERED dropdown + sign it CHECKS and UNCHECKS all along with expanding and contracting ( Thanks to Attila Szűcs )
  7. tdf#140606 PDF: EXPORT: Crash in: mergedlo.dll ( Thanks to Tomaž Vajngerl )
  8. tdf#140668 CRASH: importing docx file ( Thanks to Daniel Arato (NISZ) )
  9. tdf#140863 Error hiding and unhiding sections ( Thanks to Bjoern Michaelsen )
  10. tdf#141166 Crash in: mergedlo.dll: Press “Help” button in Hyperlink dialog ( Thanks to Caolán McNamara )
  11. tdf#141171 FILESAVE: PDF: PNG images are exported as black ( Thanks to Luboš Luňák )
  12. tdf#88442 Global of struct type behave as local variables ( Thanks to John )
  13. tdf#93441 EDITING: cursor jumps to different horizontal position when moving to a different line with Up / Down ( Thanks to Xisco Fauli )
  14. tdf#99913 Importing autofiltered XLSX and selecting cells copies hidden cells, too ( Thanks to Tünde Tóth )

List of crashes fixed

  1. tdf#122894 FILEOPEN DOC: Crash: SwFrame::RemoveFromLayout() ( Thanks to Caolán McNamara )
  2. tdf#133933 CRASH: Undoing paste of table with images of cats ( Thanks to Miklos Vajna )
  3. tdf#136956 CRASH: Undoing merge cell ( Thanks to Mark Hung )
  4. tdf#139350 Crash when create a new odg,ods,odp file ( Thanks to Michael Weghorn )
  5. tdf#140288 Crash with zero-size window when running a macro ( Thanks to Luboš Luňák )
  6. tdf#140539 Crash when I open the help window ( Thanks to Caolán McNamara )
  7. tdf#140590 Crash in: mergedlo.dll: Using Save-As dialog in Tools>Chapter Numbering ( Thanks to Noel Grandin )
  8. tdf#140606 PDF: EXPORT: Crash in: mergedlo.dll ( Thanks to Tomaž Vajngerl )
  9. tdf#140668 CRASH: importing docx file ( Thanks to Daniel Arato (NISZ) )
  10. tdf#140700 calc crash at exit in ScSelectionTransferObj::~ScSelectionTransferObj (steps in comment 18) ( Thanks to Mike Kaganski )
  11. tdf#140754 LibreOffice Calc crash when selecting filters (threaded) ( Thanks to Luboš Luňák )
  12. tdf#140757 EDITING Crash when

by x1sc0 at April 07, 2021 07:25 AM

April 06, 2021

Luboš Luňák

Clang precompiled headers and improving C++ compile times, conclusion

 With Clang12 almost released, I guess it's high time to write a conclusion to the Clang11 changes that improve compilation times with PCHs. I originally planned to do this after the Clang11 release, but with the process to get the changes reviewed and merged having been so tedious I was glad it was finally over and I couldn't at the time muster the little extra effort to also write this down (I spent way more time repeatedly writing 'ping' and waiting for a possible reaction than writing the code, which was really demotivating). But although the new options are described in the Clang11 release notes, I think it'd be useful to write it down in more detail.

First of all, I've already written why C++ developers might care, but a thousand pictures can be worth more than a thousand words saying how this can save you even 60% of the build time:


 In case you'd like to see a similar change in your LibreOffice compilation times, it should be as simple as this:

  1. Get Clang11 or newer and use it to build LibreOffice.
  2. Use --enable-pch (preferably --enable-pch=full) to enable PCH use.
  3. Profit.

You may want to check that your ccache and icecream are not too ancient if you use them, but by now any reasonably recent version should do. And if you need to do changes that would repeatedly trigger larger rebuilds (such as changing a header), the trick to temporarily disable PCH builds is to do 'make BLOCK_PCH=1'. And since PCH builds sometimes cause build errors in non-PCH builds because of missing #include's of headers, it's a good idea to touch all your changed files and do 'make BLOCK_PCH=1' before pushing your change to Gerrit. This is all you should need to know, the LO build system will take care of everything else.

As for the rest of the world, this boils down to the two PCH-related sections in the Clang11 release notes.

The first one is using -fpch-instantiate-templates. It needs to be set when building the PCH, but it will work even if you just add it to the CXXFLAGS used for building everything. Recent enough CMake version should handle this option automatically, I have no idea about other build systems. It should be safe to enable the option for any building with PCH. It's not enabled by default in Clang only because of really corner cases with PCHs that are not self-contained. In other words, as long as your PCH works with an empty .cpp file, it's safe, and if your PCH is not self-contained, you'd be better off fixing that anyway.

The second part using -fpch-codegen -fpch-debuginfo is more complicated, as it requires build system support, and I'm not aware of any build system besides LibreOffice's providing it. This discussion in a CMake ticket provides an example of how to use the option that seems rather simple. For other build systems have a look at the description in the Clang11 release notes for all the details and possible complications, and consider whether it'd be worth it. Which it sometimes may not be, as this graph from my previous post shows (Clang means normal PCH build, Clang+ means only -fpch-instantiate-templates, Clang++ means all 3 options).

Note that you may get rather different results depending on how much you put in your PCHs. Unlike before, now the general rule should be that the more you add to your PCHs, even if shared only by several source files, the faster the builds usually will be. And since these options move building some code to the PCH-related object file, the improvement is usually even better for incremental builds than full rebuilds. I've been using PCHs this way for slightly more than a year, and I forgot already quite some time ago how slow it used to be.


by llunak (noreply@blogger.com) at April 06, 2021 01:38 PM

April 04, 2021

Roman Kuznetsov

Hey, Lubuntu maintainners! Please build LibreOffice with vcl:kf5 instead vcl:qt5!

I should ask you Lubuntu maintainers: please build LibreOffice with vcl:kf5 instead vcl:qt5. Because LibreOffice's vcl:qt5 backend still buggy and unstable. Look at it:

 

I just tried to use Lubuntu 21.04 beta, opened LibreOffice Writer and I wanted increase a scale of the page. So you can see what I saw: wrong vertical rule, ugly page view, etc.

by Roman Kuznetsov (noreply@blogger.com) at April 04, 2021 05:45 PM

March 24, 2021

LibreOffice Design Blog

The Dos and Don’ts of Writer Templates

As we have seen in the previous posts (1st and 2nd) there are many advantages of using templates. And you should use them whenever is possible, they will help you with consistency across documents and will make your workflow more efficient.…

by Pedro Pinto Silva at March 24, 2021 12:11 PM

Miklos Vajna

Bibliography improvements in LibreOffice Writer

The bibliography feature in Writer allows authors of e.g. scientific papers to track sources: first you can insert bibliography entry fields, then at the end you can generate a bibliography table automatically.

Writer now has two improvements in this area: more information about these entries in the form of a mouse tooltip and clickable URLs in the table.

First, thanks TUBITAK ULAKBIM who made this work by Collabora possible.

Motivation

Generating a bibliography (table) for a document is a two-step process: first the user inserts bibliography entry fields to refer to sources, then later the bibliography can be auto-generated. It was not great that details of a source was only visible in the Writer edit window after generating the bibliography table. A somewhat related shortcoming was that URLs of sources were handled as plain text, while users expect that references are also clickable, similar to e.g. table of contents.

Results so far

This is how a tooltip looks like, available even if there is no bibliography table yet:

https://share.vmiklos.hu/blog/sw-bibliography/tooltip.png
Figure 1. Tooltip for bibliography entry fields

And URLs in the bibliography table are now clickable:

https://share.vmiklos.hu/blog/sw-bibliography/url.png
Figure 2. Clickable URLs in the bibliography table

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 incremental development steps:

Want to start using this?

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

by Miklos Vajna at March 24, 2021 11:18 AM

Tomaž Vajngerl

Built-in "Xray" like UNO object inspector – Part 3

DevTools implementation has been completed and this is the third and final part of the mini-series. The focus of this part is on the object inspector, but I have also improved or changed other DevTools parts, so first I will briefly mention those.

New menu position


Figure 1: Development Tools location in the menu

The position in menu has changed from "Help / Development Tools" to "Tools / Development Tools". The new position fits better as it is near the position of macro editor and they go hand in hand with each-other.

Updates to the document model tree view



Figure 2: Document model tree view and "Current Selection" toggle button

The left-hand side document model tree view has been changed to use the same approach than the object inspector tree view uses, where the object attached tree view (in this case DocumentModelTreeEntry) has all the behavioural logic for a specific tree view node. This makes it easier to manipulate the tree view and add new nodes (if necessary).

In the document object tree view I have added a top toolbar with "Refresh" (icon) button and I changed the existing “Current Selection” button to a toolbar toggle button, so it looks more consistent as the is only the toolbar now (see figure 2).

In Writer, each paragraph tree view node now has text portion child nodes (as shown in figure 2), to make it possible to quickly inspect all the individual parts of a paragraph.

The object inspector tree view

Figure 3: Top toolbar and tab bar in object inspector


The object inspector shows various information about an object. Each object has a implementation class, which is always shown for the current object (see figure 3).

The other information that the object inspector shows are divided into four main categories:
  • "Interfaces" - the interfaces that the current object implements
  • "Services" - the services that the current object supports
  • "Properties" - the properties of the current object
  • "Methods" - the combined methods that can be called on the current object
On the user interface, the categories are divided with a tab bar (see figure 3). Each tab represents a different categories. The tabs are filled on "entry" - when the user clicks on the tab.

In the code the tabs and tree views are all handled by the ObjectInspectorTreeHandler and the hierarchy of objects attached the tree view that implement the ObjectInspectorNodeInterface (see include/sfx2/devtools/ObjectInspectorTreeHandler.hxx). 

The two major categories are "Properties" and "Methods", which I describe in more detail next.

Properties

Figure 4: Object inspector "Properties" tab


There are three types of properties of an object:
  • Properties accessible view XPropertySet.
  • Properties defined as an attribute (marked "[attribute]" in IDL). 
  • Pseudo properties defined by a get and set method. 
All the three types are represented in the properties tab and can be identified by the "Info" column. Attribute properties have an "attribute" flag, pseudo properties have either a "get", "set" or both flags. If neither flags exists, it represents a property that is from XPropertySet. 

In the tree view there are four columns for each property - "Name", "Value", "Type" and already mentioned "Info". The "Name" of the property is always available, but it is possible that two properties have the same name (because of multiple property types). The "Value" shows the value of the property, which is converted to the string, if this is possible (it should be if the property is basic), otherwise a representation string is created. The representation string for objects shows the implementation name ("<Object@SwXTextRange>"), for sequences it shows the size ("<Sequence [5]>") and for structs it just mentions the type ("<Struct>").

A node in the “Properties” tree view can be expanded (if offered) so it is possible to recursively inspect the the objects further. In case the property is a struct, it shows the struct members, and if it is a sequence, it shows the indices each object has in the sequence.

There are special properties, which names start with "@". This are added for convenience, so it is possible to inspect objects, that implement XIndexContainer, XNameContainer or XEnumeration interfaces. When such an object is found, the entries gathered using those interfaces are added to the tree view, and are prefixed with "@". For example "@3" (XIndexContainer)   "@PageStyles" (XNameContainer or XEnumeration). The type of the special property is written in the "Info" column ("index container", "name container" and "enumeration" flags). Note that this functionality is not present in Xray or the Macro editor's debugger, but was added for convenience.

Figure 5: "Properties" tab and the text view

On the bottom of the "Properties" tab there is a text view, which shows the full value of the current selected property. In the tree view, the value shown is always using a short form (shortened to 60 chars with new-line characters removed) to not make the tree view too wide. The full value therefor is written in the text view, where it can be inspected in full and has also a working copy/paste (see figure 5).

Object Stack

Related to the "Properties" is the object stack. It is possible to select an object in the tree view and inspect the object (either using the context menu or the toolbar "Inspect" action). In this case the object in the object inspector will change to the selected one. This is convenient when you are only interested in one object down in the tree view hierarchy and want to inspect only that. In that case the previous object will be added to the stack, and can be returned to with hitting the "Back" button in the toolbar.

Note that going to another object (not using "Inspect" action) will always remove the object stack. 

Methods

Figure 6: Object inspector "Methods" tab


The "Methods" tab contains a tree view that shows all the methods, that can be called for the current object. Each method is represented by four columns (see figure 6):
  • "Method" - name of the method
  • "Return type" - the return (simplified) type of the method
  • "Parameters" - list of input parameters, where each one lists the direction ("in", "out" or "in/out"), the parameter name and the simplified type 
  • "Implementation Class" - class/interface where the method is implemented
Currently the types of parameters and return types are simplified, with only basic types, "void", "any", "sequence" and "object" that represents all the objects and the type of the object isn't written. The reason for this is to make it easier to read. 

Future ideas

There are many improvements that can still be made, but aren't included in the current implementation. 

I think it would be quite convenient to have the ability to open a object inspector in mode-less dialog separate to the DevTools, just to quickly look up a property. 

Another big upgrade would also be the ability to change values of basic types for the properties and structs, so it is possible to quickly see what effect the change would have. Similar to changing property values is to call methods with defining the parameters, but only if the parameters are basic types.

My initial vision of DevTools was not that it will be only one tool (object inspector), but more tools just like the development tools in the browser, so I'm sure there will be more useful things integrated over time.

I think there are a lot of ideas you may also have, so please tell me if you have a good one. Of course if you find something that is not working as expected, please let me know.

Credits

Many thanks to TDF and users that support the foundation by providing donations, to make this work possible.

by Tomaž Vajngerl (noreply@blogger.com) at March 24, 2021 07:42 AM

March 22, 2021

Olivier Hallot

Exporting LibreOffice Guides to XHTML (Part II)

In the previous blog post I explained the reasons and some issues on exporting LibreOffice Guides to the xHTML format. Now it is time to give more technical details. 

I choose to use the extension writer2xhtml available in the Extension website, because the produced HTML5 look less cluttered than the native XHTML export. Nevertheless there it will be necessary to add some extra HTML5 lines, to load the CSS and a Javascript file.

Invisible changes in chapter files that can go upstream

There are some changes that should go upstream, because it does not change the resulting PDF or ODT book layout.

Each image must be anchored “as character” in the document. The image becomes a character and must be single in the paragraph. The paragraph must be centered in the page, using a style that aligns in the center, for example, the “Figure” paragraph style. The image caption paragraph must have style “Caption”. The wrapping frame that holds the image and the caption must also be anchored “as character” in a paragraph with style “Figure” as well. This arrangement is transparent when producing ODT, PDF and HTML5 documents.

Tips, Notes and Cautions headings use graphics as bullet. Many of these paragraphs have the bullet enabled by direct formatting and this is invisible to the user in LibreOffice, but will show when exporting to HTML5 with an ugly black circle.

Recommended changes that should go upstream

Create a table style, or copy it from the table in the copyright section. Name the style as you want, custom table styles are stored in your user profile. Apply this style to all tables in the chapter. Open the table properties of each table and set alignment to “Centered”, and table width in 90%.

Remove cross references to pages. For example, “See figure 12 on page 30”. At best, use the “above” or “below” in the reference.

Add the sections described in 2,3 and 4 below.

Changes in the working copy of the chapter file.

The original chapter file is optimized for a book format, we need to prepare it for exporting to HTML5 where pagination is different, mostly by smooth scrolling. This involves steps but will not change the chapter contents, only the layout and some formatting

  1. With the images anchored as explained above – a step that may require manual work – move the caption above the image. This can be quickly done by placing the cursor in the caption text and pressing Ctrl+Alt+Up Arrow, to swap the caption paragraph with the image paragraph. Some chapter have dozens of images so it will be nice to have a script to bulk execute this swap.

  2. Wrap the top LibreOffice logo in a Section named “SEC_LOGO”.

  3. Wrap the Guide name in a section named “SEC_GUIDE”.

  4. Wrap the chapter title in a section named “SEC_TITLE”.

  5. Delete the existing table of Contents.

  6. Select the text from the copyright heading to the end of the chapter and wrap in a section named “SEC_DISPLAYAREA”. Ensure you leave some empty paragraphs after the end of the section.

  7. On the bottom of the chapter, after the SEC_DISPLAYAREA section, add 6 new empty sections: SEC_TOC, SEC_BOOK_TOC, SEC_SEARCH, SEC_IMPRINT, SEC_DONATION, SEC_NAV. You can create these 6 sections in an empty document and load it as Autotext, so all section can be inserted in a single command using Autotext (Ctrl+F3).

  8. Insert the chapter table of contents in the SEC_TOC section.

  9. Change the template of the chapter to the provided template odf2htmlv2.ott.

  10. Review the ordered and unordered lists in the chapter. The new template may highlight the spurious bullet and numbering inserted by direct format, and as explained above, is very hard to detect in the original ODT file. Some of these list direct formatting may also be detected in the HTML5 output.

Save your working copy.

Exporting to HTML5

The extension writer2xhtml adds a toolbar for exporting on a click. The extension allows some customization, not used here. The export used “original format” style and 115% font size.

The export is very fast and gives no choice to change the export name, so the exported file has same file name and html as file extension, overwriting existing files with same name and extension.

By default the exported file name opens in the system browser for inspection. The result is not yet what we want, we must apply specific CSS and Javascript for rearranging the layout of the sections. The se files are added in the HTML5 output juste before the </head> closing tag.

<link href="guideposition.css" rel="Stylesheet" type="text/css">
<link href="guideformats.css" rel="Stylesheet" type="text/css">
<script type="text/javascript" src="GS70.js" defer></script>

The CSS files

Two extra CSS files were created, one is guideposition.css and manages the sections position in the page, and has provision for handling other screen sizes such as in tablets. The second CSS file is guideformats.cssthat contains rules to override some attributes such as lists, fonts, font-size, colors, margins, padding and more of the sections.

The Javascript file

This file fills the empty sections we added at the end of the chapter. Contents for donation, guide table of contents (jump between chapters), a legal imprint, a search form (to be implemented) and more. The javascript file is common to all chapter and is custom to the guide.

Conclusion

Exporting the LibreOffice Guides to HTML is another way to offer a rich contents to the public. Guides in HTML format can be installed in servers of schools, libraries, colleges and corporations alongside with a PDF copy, to support a migration project.

The rich set of features of Writer, while allowing the creation of wonderful documents, is also source of concern not only when exporting to formats that are less flexible that ODF, but also to manage the excess of freedom. The changes recommended and the detection of hidden direct formatting in lists are examples. It becomes clear that a set of sanitizing scripts can help to remove spurious formatting, unused legacy styles, detect unwated extra styles and adjust the objects in the documents.

When handling the full set of guides it is easy to dream of an office suite that can execute some "wishes" like "anchor all images as characters and center in line", "change position of caption  in all frames to top", "format all tables with style 'guides' and align to center"... but that is for an office suite of the next generation!!!.

Partial results of all this work can be visualized below. 

The getting started guide in HTML format.

The javascript file

The css files: css1 and css2

The odf2xhtml.ott template

The writer2xhtml extension

 Happy documenting!!!!

 

 

by Olivier Hallot (noreply@blogger.com) at March 22, 2021 03:25 AM

March 17, 2021

Roman Kuznetsov

Microsoft gave us fix for its stupid KB5000802

So, as I wrote before, MS broke LibreOffice work (and just broke many Windows 10 system) with its stupid update KB5000802.

OK, they gave us the fix for that problem. But it will be optional (!!!!). You should install it manually if you have the problem!

For Windows 10 20H2 and Windows 10 (2004) install KB5001567

For Windows 10 (1909) — KB5001566

For Windows 10 (1809) — KB5001568

For Windows 10 (1803) — KB5001565.

Why they made it different for different builds of ONE OS Windows 10, I don't know. And I think they don't know too.

You can find your Windows 10 build number in system options - system - about (I can show you only Russian variant):



by Roman Kuznetsov (noreply@blogger.com) at March 17, 2021 09:54 AM

March 14, 2021

Marius Popa Adrian

New Flamerobin snapshot available! 0.9.3.7 with a few fixes and small features

New Flamerobin snapshot available! 0.9.3.7 with a few fixes and small features https://github.com/mariuz/flamerobin/releases/tag/0.9.3.7 Take a look, test and comment!

by Popa Adrian Marius (noreply@blogger.com) at March 14, 2021 09:47 AM

March 13, 2021

Roman Kuznetsov

Windows 10 is a bullshit. Update KB5000802 breaks LibreOffice work

If you use Windows 10 and you didn't disable its updates then you could got an update KB5000802 pair days ago that breaks LibreOffice work. If your LibreOffice crashes or doesn't print now, then:

- Delete that Windows update KB5000802

- Delete LibreOffice, include a user profile from C:\Users\User_name\AppData\Roaming\LibreOffice

- Reboot Windows

- Reinstall LibreOffice

If these steps didn't help, please write a comment here. Thanks

by Roman Kuznetsov (noreply@blogger.com) at March 13, 2021 09:37 PM

March 12, 2021

LibreOffice Design Blog

The Dos and Don’ts of Impress Templates

  • Don’t substitute templates by sample documents
  • Template ManagerTemplates contain generic content and structure, and are meant to create multiple documents. In contrast, a document is intended for a single use. While both types are more or less the same, the advantage of templates is the handling within the program (→Template Manager).

by Heiko Tietze at March 12, 2021 11:30 AM

March 11, 2021

LibreOffice Design Blog

Templates- ftw!

Templates can seem daunting and overly complex as any new concept. Hopefully this series of articles will help to understand and clarify some of your worries. If you have never heard of templates or if, for any reason, you tend to avoid them- this is for you.…

by Pedro Pinto Silva at March 11, 2021 10:07 AM

March 08, 2021

LibreOffice QA Blog

QA/Dev Report: February 2021

General Activities

  1. LibreOffice 7.1 Community was released on February 3
  2. Steve Fanning made corrections to the Help content for Calc functions
  3. Jean-Pierre Ledure worked on the ScriptForge library
  4. Alain Romedenne and Rafael Lima improved the Help content for the ScriptForge library
  5. Olivier Hallot (TDF) updated the Help for Calc’s View menu and made many smaller fixes and reorganisations in Help
  6. Seth Chaiklin made 27 changes and additions to Help, with topics including menus, styles and AutoCorrect. He also made many improvements to tooltips and labels in LibreOffice
  7. Srijita Mallick and Akshit Shan created their first unit test and their first accessibility improvements
  8. George Bateman added a “Keep asking during this session” checkbox to Calc’s paste import options dialog
  9. Andrzej Hunt (Google) improved the fuzzing setup
  10. Dipanshu Garg made it so information about Calc’s Jumbo sheet status appears in the About dialog
  11. Deb Barkley-Yeung added a unit test for BColorModifier
  12. Andreas Kainz improved the Notebookbar and Sidebar UIs
  13. Justin Luth (Collabora/SIL) fixed character highlight issues related to numbering, fixed a Writer crash related to superscript, a superscript applying issue with DOCX export and a bulleted list copying problem with imported DOC files
  14. David Tardon (Red Hat) made it possible to dump intermediate XML structure of Lotus Word Pro imports into file
  15. Quan Nguyen made it so adding a word in the Spelling dialog immediately applies autocorrection and added rendering support for hiding Chart titles
  16. Andreas Heinisch fixed a problem with sort options not being saved in Calc documents
  17. Shubham Jain wrote new tests for BASIC literals
  18. Anshu Khare added a “No List” list style to make unstyling interaction more clear
  19. Balázs Varga (NISZ) improved the XLSX import and export of autofilters
  20. Tünde Tóth (NISZ) fixed sorting of autofiltered Calc rows, added an option to only select visible Calc cells for copying and fixed clearing of Calc row and column selection when extending selection over filtered rows
  21. Tibor Nagy and Attila Szűcs (NISZ) fixed incorrect multiple conditional formatting rules in the same cell range with XLSX import, fixed hidden Calc columns being printed, fixed DOCX page margins imported as border padding and fixed a missing page break with DOCX export
  22. Áron Budea (Collabora) fixed a password protection regression in Windows 7
  23. Tamás Zolnai (Collabora) fixed broken master slide list after switching view mode
  24. András Timár (Collabora) fixed OOXML chart label import, matching system locale like MSO
  25. Gülşah Köse (Collabora) fixed a PPTX import image cropping issue
  26. Andrew Udvare made a couple of improvements to the macOS build process
  27. Jan-Marek Glogowski (allotropia) fixed incorrect scaling of input method cursor with Qt backend
  28. Luboš Luňák (Collabora) improved idle priority task handling, improved the performance of rendering transformed bitmaps and improved document load times by using zlib’s crc32() function
  29. Michael Weghorn improved the Qt Creator integration
  30. Maxim Monastirsky fixed missing DisplayName property for Writer table styles
  31. Christian Lohmaier (TDF) improved Visual Studio Code integration
  32. Julien Nabet added backepsilon symbol to Math elements panel and fixed a Calc hyperlink insertion crash
  33. Szymon Kłos (Collabora) made it so scrolling a treelist does not leave artifacts on the screen and improved the Style preview widget
  34. Attila Bakos (NISZ) fixed shape and anchor going out of synch in an exported DOCX file and fixed losing Contour shape wrap in DOCX export
  35. Björn Michaelsen continued internal improvements to Writer
  36. Armin Le Grand (allotropia) improved the handling of font scaling in metafile images
  37. Regina Henschel fixed shape handling in RTL Calc sheets, fixed bringing Fontwork objects to front and fixed incorrect anchor type of rotated shapes in imported XLSX files
  38. Michael Stahl (allotropia) fixed copying and deleting tables in sections via the API, fixed hyperlinks in user-defined indexes pointing to certain types of targets and made VML shapes in exported DOCX files compatible with MS Word
  39. Ouyang Leyan made it so no data loss occurs when copying a chart in Calc with errors in formulas and fixed copying of numbers in Calc chart categories into Writer
  40. Eike Rathke (Red Hat) made the CELL() Calc function implementation conform to the ODF 1.2 spec
  41. Dante Doménech made many internal improvements to Math
  42. Rizal Muttaqin made updates to all icon themes regarding find & replace and formatting
  43. Stephan Bergmann (Red Hat) fixed a crash with UNO bootstrapping related to absolute paths and made many code cleanups as well as build and test fixes
  44. Noel Grandin (Collabora) fixed importing of pathological SVG images and made many code cleanups, crash fixes and optimisations
  45. Jim Raykowski made it possible to right-click the style previews in Notebookbar Tabbed and made a couple of improvements to the Outline view functionality
  46. Samuel Mehrbrodt (allotropia) added support for series name in Chart data series labels, implemented chart:regression-moving-type and improved the layout of Chart trendline and data label dialogs
  47. Mike Kaganski (Collabora) made sweeping improvements to unit conversion code, made it so the locale is set when language is defined by command line invocation, improved tests and made code cleanups.
  48. Tomaž Vajngerl (Collabora) worked on the new UNO object inspector and made internal improvements to graphics handling code
  49. László Németh (NISZ) bumped libnumbertext to version 1.0.7, improved the Track Changes toolbar auto-appear behaviour, fixed an XLSX import issue with dashed line styles, greatly improved the performance of importing DOCX footnotes and endnotes and fixed losing comment position in tracked deletions
  50. Caolán McNamara (Red Hat) made it so tabs can show tooltips, Ctrl+A works to select all in Impress comments, continued on the last stretch of the massive UI backend work and made many cleanups and crash fixes
  51. Gábor Kelemen (NISZ) added new shortcuts for Impress pointer as pen functionality
  52. Heiko Tietze (TDF) added templates from the competition and removed some older templates, improved the print dialog and made some improvements to the Start Center
  53. Miklos Vajna (Collabora) continued improving the handling of inserted PDFs and improved Writer’s support for gutter margins
  54. Xisco Faulí (TDF) made the missing unit tests script use Bugzilla API and made over 70 improvements and additions to unit and UI tests
  55. Tor Lillqvist (Collabora) made LibreOffice Vanilla (Mac) version work with embedded Firebird databases and made Calc row height adjustment behaviour less annoying

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

659 bugs, 75 of which are enhancements, have been reported by 399 people.

Top 10 Reporters

  1. Telesto ( 80 )
  2. sdc.blanco ( 19 )
  3. NISZ LibreOffice Team ( 19 )
  4. Regina Henschel ( 19 )
  5. Xisco Faulí ( 10 )
  6. Petr Valach ( 8 )
  7. Aron Budea ( 7 )
  8. Ulrich Windl ( 7 )
  9. Dieter ( 6 )
  10. Eyal Rozenberg ( 6 )

Triaged Bugs

599 bugs have been triaged by 101 people.

Top 10 Triagers

  1. Xisco Faulí ( 131 )
  2. Heiko Tietze ( 47 )
  3. Buovjaga ( 44 )
  4. Dieter ( 41 )
  5. Timur ( 33 )
  6. Aron Budea ( 20 )
  7. BogdanB ( 17 )
  8. Regina Henschel ( 17 )
  9. Julien Nabet ( 17 )
  10. NISZ LibreOffice Team ( 16 )

Resolution of resolved bugs

522 bugs have been set to RESOLVED.

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

Fixed Bugs

153 bugs have been fixed by 37 people.

Top 10 Fixers

  1. Caolán McNamara ( 11 )
  2. Seth Chaiklin ( 8 )
  3. László Németh ( 6 )
  4. Heiko Tietze ( 6 )
  5. Regina Henschel ( 5 )
  6. Miklos Vajna ( 5 )
  7. Noel Grandin ( 5 )
  8. Luboš Luňák ( 4 )
  9. Julien Nabet ( 4 )
  10. Tünde Tóth ( 3 )

List of critical bugs fixed

  1. tdf#134607 LO7RC1 – LANGPACK macOS – many versions fail to recognize LibreOffice 7.0 / 7.1 installation as valid on Catalina and Big Sur ( Thanks to Xisco Fauli )
  2. tdf#138068 When there are a lot of pictures, typing the text is very slow (macOS/GTK3/GDI) ( Thanks to Luboš Luňák )
  3. tdf#140280 Crash in: KERNELBASE.dll when double click a slide content box and file is opened read-only ( Thanks to Miklos Vajna )
  4. tdf#140308 Crash import old OpenOffice template (stw, stc, sti, std) ( steps in comment 12 ) ( Thanks to Noel Grandin )

List of high severity bugs fixed

  1. tdf#139511 Impress: Shrinking table by dragging bottom border up or top down not working anymore ( Thanks to Gülşah Köse )
  2. tdf#140437 FILEOPEN: Writer document “Read Error. Format error discovered in the file in sub-document content.xml at 2,1311816(row,col).” ( Thanks to Michael Stahl )
  3. tdf#140444 EDITING: Creating a view from a query crashes whole LO ( Thanks to Caolán McNamara )
  4. tdf#140528 Crash in: swlo.dll In “Save As” dialog in “Tools -Chapter Numbering”, when switching from Numbering to Position tab ( Thanks to Noel Grandin )
  5. tdf#140572 FILESAVE DOCX Crash when saving a file with superscript formatting ( Thanks to Justin Luth )
  6. tdf#36466 Add option to Select Visible Cells Only (to be copied from or copied to) ( Thanks to Tünde Tóth )
  7. tdf#76260 FILEOPEN: slow loading and dump of .docx with lots of footnotes (see Comment 27 and Comment 43) ( Thanks to László Németh )

List of crashes fixed

  1. tdf#137406 Crash when clicking “Apply to Master” in Slide Master mode on Bullets and Numbering dialog ( Thanks to Gokce Kuler )
  2. tdf#139039 PDF export: Error message if filepath is URL coded / crash when saving as DOCX ( Thanks to Miklos Vajna )
  3. tdf#140014 Calc crashes when using COUNTIF, SUMIF, etc. on columns “far away” without data ( Thanks to Noel Grandin )
  4. tdf#140225 Crash in: libmergedlo.so g_lo_action_group_change_state FILEOPEN ( Thanks to Caolán McNamara )
  5. tdf#140280 Crash in: KERNELBASE.dll when double click a slide content box and file is opened read-only ( Thanks to Miklos Vajna )
  6. tdf#140308 Crash import old OpenOffice template (stw, stc, sti, std) ( steps in comment 12 ) ( Thanks to Noel Grandin )
  7. tdf#140414 Crash pressing Ctrl-K in input line in Calc ( Thanks to Caolán McNamara )
  8. tdf#140444 EDITING: Creating a view from a query crashes whole LO ( Thanks to Caolán McNamara )
  9. tdf#140528 Crash in: swlo.dll In “Save As” dialog in “Tools -Chapter Numbering”, when switching from Numbering to Position tab ( Thanks to Noel Grandin )
  10. tdf#140572 FILESAVE DOCX Crash when saving a file with superscript formatting ( Thanks to Justin Luth )

List of performance issues fixed

  1. tdf#120351 Writer hangs for over 20 minutes loading a 3MB, 450-page DOCX Edit with thousands of endnotes ( Thanks to László Németh )
  2. tdf#138068 When there are a lot of pictures, typing the text is very slow (macOS/GTK3/GDI) ( Thanks to Luboš Luňák )
  3. tdf#139820 Hang: Undoing paste of block with empty cells ( Thanks to Luboš Luňák )
  4. tdf#76260 FILEOPEN: slow loading and dump of .docx with lots of footnotes (see Comment 27 and Comment 43) ( Thanks to László Németh )

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

  1. tdf#105301 sort options not remembered thoroughly in saved document ( Thanks to Andreas Heinisch )
  2. tdf#36466 Add option to Select Visible Cells Only (to be copied from or copied to) ( Thanks to Tünde Tóth )
  3. tdf#57667 Immediately apply AutoCorrection when added per Spelling and Grammar dialog ( Thanks to Quan Nguyen )
  4. tdf#60237 : Bug in API call StoreAsURL (or in the OO Basic API description) ( Thanks to Andreas Heinisch )
  5. tdf#66409 failure to correctly implement CELL ( Thanks to Eike Rathke )
  6. tdf#76260 FILEOPEN: slow loading and dump of .docx with lots of footnotes (see Comment 27 and Comment 43) ( Thanks to László Németh )
  7. tdf#91920 No support for gutter margins ( Thanks to Miklos Vajna )
  8. tdf#92622 WRITER: context menu “Unstyle selected text” from list style to “no-list” style ( Thanks to Anshu )
  9. tdf#92768 support hiding title objects ( Thanks to Quan Nguyen )
  10. tdf#94235 Ability to add series name to data series label ( Thanks to Samuel Mehrbrodt )

WORKSFORME bugs

110 bugs have been retested by 33 people.

Top 10 testers

  1. Xisco Faulí ( 37 )
  2. Buovjaga ( 13 )
  3. Telesto ( 6 )
  4. Dieter ( 6 )
  5. Aron Budea ( 5 )
  6. Timur ( 4 )
  7. BogdanB ( 4 )

by x1sc0 at March 08, 2021 12:50 PM

March 03, 2021

Collabora Community

Collabora Online Community Roundup #10

On 1 October 2020, Collabora Online moved to its new home on GitHub, and started settling in the new infrastructure, expanding its fantastic community, and continuing the work to deliver the latest and greatest developments in productivity and collaboration together. Check our new community website for all the details! 😉

Collabora developers also keep fixing and improving our lovely mother project LibreOffice. As all the good work requires some appreciation, let’s take a look at what the seasoned developers of the Collabora team and the volunteer contributors from our community have been doing during the last 2 weeks.

Week in Numbers

On the Collabora Online code repository in the last week, 11 authors have pushed 42 commits to master and 72 commits to all branches. On master, 48 files have changed and there have been 1,567 additions and 835 deletions.

Screenshot of GitHub Pulse for Collabora Online
Development Activity on Collabora Online GitHub Repository from February 15, 2021 to February 22, 2021

New Contributors

Congratulations to Gianni154, Samuel, sowoi, oiselarius and SerjSX for reporting their first issues and improvement requests on our GitHub repository!

  • Thanks to Gianni154 for reporting multiple issues around the iOS app such as the comment function not working properly while the keyboard is active[0], thus giving us the opportunity to improve the experience for our users on iOS even further.
  • Thanks to Samuel for opening an enhancement request to add the Libertinus Font to the CODE docker image, thus letting us know about the preferences of our users on certain configurations.
  • Thanks to sowoi for reporting that empty menus are being shown even when all of their items are disabled on certain integrations, thus giving us the opportunity to improve the user experince of Collabora Online even more.
  • Thanks to oiselarius for letting us know about issues encountered while opening files with the iOS app which reside on some cloud storage services.
  • Thanks to SerjSX for reporting a potential issue on the Android app, and then helping triage the issue which turned out to be a false positive.

Thank you all, and welcome aboard! 🙂

Join the fun!

You can also join the fun, and be part of our next list of new contributors! 🙂

Just go to our GitHub repo, fork it, build it (on Linux or on any platform), grab one of our newcomer-friendly easy hacks, and send your first pull request. And if you get stuck at any point, just drop by one of our communication channels. 😉

Highlights

Collabora Online Weekly Meeting #13

COOL Weekly Meeting #13 has taken place on Thursday, February 18, 2021 at 11:00:00 am (UTC) with participants both from the community contributors and the Collabora team. We have got a quick update on what’s going on and discussed matters raised by the contributors, as well as having the chance to say hi to fellow members of the community. Topics discussed in the meeting include:

  • During the quick update part by Muhammet Kara, it’s been reported that COOL has got more than 75 new contributors (25+ code contributors) since the move to GitHub, and the COOL Roundup #9, covering more than 2 months of time, is finally out.
  • Pedro Silva has reported that multiple new categories have been added to the Collabora Online community forum along with new icons, and a new navigation bar on the top making it easier to find your way around.

    New navigation bar on the forum
  • Nicolas Christener has given an update on the template contest, informing us that there are 33 submissions so far, with 10 of them being quite promising, and that they will finish the evaluations by Feb 25.
  • Gabriel Masei has confirmed that all the work towards allowing users and integrations to change/choose a toolbar type dynamically has been completed and landed on the main (master) branch.
  • Gökay Åžatır has shared the latest status of the ongoing CanvasTileLayer work, stating that they are now removing the custom scrollbars using the canvas section container and also updating the canvas section container as well, which would improve the user experience on different platforms with an even smoother and more natural look and behavior of scrolling.
  • On the Icon Theming topic, Pedro Silva has reported that Andreas Kainz is going to do some manual tests before moving on.
  • About the ongoing effort of Async Saving, which would improve the performance and the user experience of Collabora Online by allowing seamless/smooth save operations especially when multiple users are working on the same document collaboratively, Jan Holesovsky shared that Ashod Nakashian has already merged some of the initial/preparatory work, doing some clean-up and under-the-hood improvements, and the first step of the good stuff is already on GitHub as pull requests.
  • Andras Timar, on the new release schedule, has informed us that CODE is expected to have more frequent updates with the bleeding edge features and improvements before they go into the next release of COOL.
  • Pedro Silva has reported that the bug which prevented the notebookbar from being scrolled on small screens is now fixed, and all the work has already been merged.
  • Pranam Lashkari has reported that the Invalidation Debugging work by Rashesh Padia has been completed and merged.
  • Muhammet Kara has brought up that there is a small pull request by Gleb Popov which allegedly fixes a build issue on FreeBSD and looks okay, and he has requested a review from Ashod Nakashian, and he is going to merge it if no response or objection in a few days.

Check out the meeting minutes for the details of the meeting, and join us on Thursday, March 04, 2021, at 11:00 am (UTC) to stay in touch with the rest of the community. You may also make your own suggestions for the next meeting by following the link shared in the COOL Telegram group before the next meeting. We’re looking forward to hearing from you live. 😉

Collabora Online (COOL)

  • Thanks to Gökay Åžatır for his work on CanvasTileLayer, which would make COOL have a much crisper and smoother look and feel. See the Weekly Meeting notes above for some more details.
  • Thanks to Pranam Lashkari for fixing a bug which caused the composed shortcuts, such as Ctrl+P to print the document, not to work in read-only mode, and also for making sure the right-click menu properly works also on the first row & column of Calc documents.
  • Thanks to Andras Timar for adding the info on how to build Collabora Online 6.4 docker to the README file, thus improving the documentation for potential new contributors and adopters of COOL, along with various other improvements and maintenance around localization and containerization.
  • Thanks to Dennis Francis for various fixes and improvements around the Canvas layer, which brings a lot of visual and user experience improvements such as smooth zoom animations. You can also now add Mocha tests in Collabora Online to test any existing typescript classes or functions of it, again thanks to him. Check out his blog post for the details.

    Logo of Mocha testing framework
    Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun.
  • Thanks to Szymon KÅ‚os for various improvements and fixes especially around the notebookbar and various dialogs, such as adding the Fontwork feature to Calc and making sure dialogs are closed when the user hits the ESC key without the need of explicitly clicking the close button, thus helping COOL become richer in feature and have an even better user experience.
  • Thanks to Tor Lillqvist for adding a new toString() method to use while debugging Collabora Online, thus helping to make the lives of developers a bit easier, and for making sure the view id is included in the tunneled dialogs’ image hash to prevent possible issues while users are collaboratively editing a document.
  • Thanks to Ashod Nakashian for various fixes and improvements towards increasing general stability of COOL and maintainability of the code-base along with tests to make our code-base future-proof, working on the async save feature which will be a major leap towards a much smoother experience for users while collaboratively editing documents, and also for reviewing pull requests of other contributors, and for mentoring them through tough issues.
  • Thanks to Gabriel Masei for adding support for changing the UI mode dynamically between the classical toolbar and the new notebookbar, effectively making Collabora Online easier to customize based on user needs or taste.
    A screenshot of the Collabora Online’s classic toolbar on the Writer module

    A screenshot of the Collabora Online’s new Notebookbar on the Writer module
  • Thanks to Rashesh Padia for improving the debugging facilities of COOL, by adding a separate option in debug mode for sidebar invalidation re-rendering.
  • Thanks to Pedro Silva for various fixes and improvements around the user interface of COOL to make it have a better and more consistent look and feel, especially focusing on the vex widgets lately.
  • Thanks to Henry Castro for making it easier to debug Collabora Online by adding a tag string to extract backtrace logs.
  • Thanks to Umut BayramoÄŸlu for removing some unused variables, thus helping our code-base to become even lighter and easier to maintain.
  • Thanks to Gleb Popov for fixing the build with libc++ by ensuring that std:min() function has the same type of parameters in the code-base.
  • Thanks to Tamás Zolnai for a lot of fixes and improvements around cypress (testing framework), and the testing facilities, and also documenting the interface testing on the README file, thus helping new potential contributors to ensure stability and future-proofness of COOL.
  • Thanks to Miklos Vajna for adding support for gutter margins on Writer documents, which makes it much easier to adhere to binding standards of governments and other institutions for printed materials. Checkout his blog post for details!

    UI for the new gutter margins on Collabora Online

Collabora Online Integrations

  • Thanks to Julius Härtl for reviewing and merging pull requests from other contributors on Collabora Online’s Nextcloud integration.
  • Thanks to Szymon KÅ‚os for improving the user experience of Collabora Online’s Nextcloud integration by making sure the Save As dialog shows the new name after the file is renamed from within the editor.
  • Thanks to Phil Davis for improving the CI and test facilities of Collabora Online’s ownCloud integration by applying latest drone starlark code.
  • Thanks to Artur Neumann for reviewing and merging pull requests from other contributors on Collabora Online’s ownCloud integration.
  • Thanks to Cindy PIASSALE of Jeci for various improvements and clean-ups on Collabora Online’s Alfresco integration, such as adding Collabora Online as a viewer option for supported formats, documenting the new feature on the README file, and also releasing a new version of the integration app.

Honorable Mentions

  • Thanks to Cor Nouws for leading the marketing team, and not stopping there but continuing with testing & reporting bugs, attending to community events, and keeping us all informed about what’s going on. He also attends LibreOffice Design meetings from time to time to help COOL’s mother project LibreOffice have a better UI & UX.
  • Thanks to Eloy Crespo for his efforts to help the project well-funded as always.
  • Thanks to Marc Rodrigues for continuing to keep us updated on various news around Collabora Online and related FOSS projects, and creating a lot of yummy content to read!
  • Thanks to Pedro Silva for improving various points around the COOL Community Page and forum, and also for helping other contributors by providing instructions on their pull requests as well as reviewing them.
  • Thanks to Andras Timar for keeping us organized, maintaining our translation project on Weblate, and delivering hot new releases of our software!
  • Thanks to Yunusemre Åžentürk for various tasks towards keeping our CI chains healthy.
  • Thanks to Jan Holesovsky for doing a lot of research on different topics, and providing mentoring/patch-reviewing/hand-holding/wisdom within the team, in our communication channels, and also on various channels of our lovely mother project LibreOffice.
  • Thanks to Mike Kaganski for his recent work on upgrading our partner & customer ticketing system to make things even sweeter for all of our users. Feel free to check his blog post on Reading from MySQL data with BLOBs dumped to CSV.
  • Your friendly community mentor, Muhammet Kara, is also creating & improving easy hacks, running workshops, helping new contributors solving their setup & build issues and reviewing their pull requests, working on easing the build procedure, improving our GitHub presence bit by bit based on its community guidelines, compiling/composing these community updates…

Translators

Last but not least, we can’t thank enough to our translators who constantly help COOL and its friends talk many languages on this earth. Collabora Online speaks many languages, thanks to all of our translators in our translation project, and all of those who previously contributed and keeps contributing to our mother project, LibreOffice.

We’re continuing to work to find good ways to credit translators’ hard work in the product. Please see a list of those involved, and please get in touch if you’re not listed. Many thanks to all those who have worked on translating Online, you rock!

If you would like to help COOL speak your language, you can just go to our translation project on weblate, and start contributing! 😉

Collabora Online translation project on Weblate
Collabora Online translation project on Weblate

Collabora loves LibreOffice!

We’re still contributing to LibreOffice and encourage you too to do so because LibreOffice rocks. 😉

  • Thanks to Miklos Vajna for many improvements and fixes especially around ensuring better support for OOXML formats thus better interoperability with other office suites, such as making sure the creation time of an imported DOCX file ispreserved, and adding support[0][1][2] for gutter margins of DOCX, DOC, ODF and RTF documents. Check out his blog post for details! He also had a FOSDEM talk on Handling PDF digital signatures with PDFium.
    Old render result, missing gutter, in Writer

    New render result, with gutter, in Writer
  • Thanks to Tomaž Vajngerl for continuing his work towards developing a built-in Xray-like UNO object inspector. This effort has been funded by The Document Foundation, so also thanks a lot to the TDF Board of Directors, and the TDF donors who made the work on this tool possible!
  • Thanks to GülÅŸah Köse for various fixes and improvements around importing custom shapes such as making sure crop positions are imported properly and greysale effect is handled properly, and also for adding corresponding tests to ensure those features keep working in the future, thus improving interoperability with other office suites.
  • Thanks to Noel Grandin for doing various code-quality improvements and modernization all around the LibreOffice code-base.
  • Thanks to Tor Lillqvist for a lot of fixes and improvements especially towards better support on macOS and iOS.

The post Collabora Online Community Roundup #10 appeared first on Collabora Office and Collabora Online.

by Muhammet Kara at March 03, 2021 02:15 PM