The Document Foundation Planet

 

June 08, 2023

Official TDF Blog

The Document Foundation releases LibreOffice 7.5.4 Community

 

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

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

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

Availability of LibreOffice 7.5.4 Community

LibreOffice 7.5.4 Community is available from: https://www.libreoffice.org/download/. Minimum requirements for proprietary operating systems are Microsoft Windows 7 SP1 and Apple macOS 10.14. LibreOffice Technology-based products for Android and iOS are listed here: https://www.libreoffice.org/download/android-and-ios/.

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

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

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

by Italo Vignoli at June 08, 2023 01:09 PM

June 05, 2023

Official TDF Blog

Winners in the Month of LibreOffice, May 2023!

Month of LibreOffice banner

At the start of May, we began 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…

Awesome 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: nine 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 (names or usernames) – we’ll get in touch personally with the details:

  • joshua4 – Ask
  • Czesław Wolański
  • Peter Gervai
  • Jeff Fortin Tam
  • Chris Tapp
  • Mahmoud Alnaanah
  • devseppala
  • Harvey Nimmo
  • Nguyễn Hoàng Minh
  • goodosuser

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 next year, but everyone is welcome to see what they can do for LibreOffice at any time!

by Mike Saunders at June 05, 2023 11:52 AM

LibreOffice project volunteers receive tribute from Mexican institute

By Gustavo Pacheco

Early 2023 , all TDF members in the 2022 Latin America LibreOffice Conference meeting organization received at home a beautiful tribute to the success of the event: a piece in wood and mosaic glass made in Mexico especially created for this homage.

The pieces were created in the workshops of the Instituto Integración Down, which has been active for over 25 years dedicated to the education of children with Down Syndrome. The institution’s students created the pieces based on the suggestion of Mauricio Baeza, a member of TDF and the institute’s governing body. According to Mauricio, the work was done to show gratitude to the Brazilians who worked voluntarily to hold the conference.

The eight pieces were originally sent to Porto Alegre, where they were separated and then sent to their final destinations. Three pieces were sent to Brasília/DF, two pieces to Rio de Janeiro/RJ, one piece to Olinda/PE and one piece to Londrina/PR.

by Olivier Hallot at June 05, 2023 10:27 AM

June 04, 2023

Official TDF Blog

LibreOffice Conf Asia x UbuCon Asia 2023 – Surakarta

LibreOffice Conf.Asia 2023 logo

Our community in Asia let us know about an event they’re organising…


LibreOffice Conf Asia x UbuCon Asia 2023 (hereinafter referred to as LOUCA23) is an event that brings together Linux and Open Source Software (OSS) activists, contributors, users, communities, and businesses in the Asian region, mainly related to and focused on the LibreOffice and Ubuntu projects.

This year’s LOUCA23 will be held in the city of Surakarta, Central Java, Indonesia, and is targeting as many as 500 participants from students, university students, academics, professionals, government agencies, NGOs, cooperatives, and companies.

Objective

LOUCA23 is organised as an active contribution of the LibreOffice Indonesia and Ubuntu communities, by bringing together experts and practitioners, business entities, institutions, activists, contributors, and users of LibreOffice and Ubuntu to discuss and share knowledge directly. This activity is expected to provide benefits in terms of knowledge, relationships, finance, and so on for participants who are directly involved during the activity process.

Participants

LOUCA23 targets at least 500 participants including students, academics, professionals, government agencies, NGOs, cooperatives and companies.

Agenda

Here are some of the types of activities that will be part of the LOUCA23 event:

  • Roadshow
  • Special Host Event / Pre Event
  • Keynote session
  • Parallel class
  • Panel discussion
  • Exhibition Booth
  • Community Meet Up

Venue

Venue

Aula FKIP (Gedung F) UNS

https://goo.gl/maps/uvELNcUQ9Ut8NVwq5

Capacity

600 persons

Facilities

– AC

– Seats 600

– Sound system

– Projector

– Custom screen

– Backstage / Transit Room

– There are 3 toilets (2 in front and 1 in the Backstage).

Classroom (needed)

In Building G there are 6 classes on the 3rd floor,

Distance +- 80 m from the location

Prayer Room

There is a prayer room on the 1st and 2nd floors

Nurul Huda UNS Mosque

+- 800m

https://goo.gl/maps/bAGksMFmh4urwjL49

UNS Campus Church

+- 150m

https://goo.gl/maps/nhtWXDTzvqdQCTMNA

Venue Contact Person

– Head of Mikroptik

Sanya +62 896-5347-9229

Promotion Media

Date

The event will be held on Friday – Sunday, 6 – 8 October 2023

Venue Pictures

LibreOffice Conf.Asia 2023 venue

LibreOffice Conf.Asia 2023 venue

LibreOffice Conf.Asia 2023 venue

by Mike Saunders at June 04, 2023 08:09 AM

June 03, 2023

Bayram Çiçek

Week #1 - GSoC 2023 Weekly Report - Search Field in Options

Thanks to my ‘Search Field in Options’ project mentors Andreas Heinisch and Heiko Tietze for their time and guidance.

***

Current progress for week #1

cui/uiconfig/ui/optionsdialog.ui:

w-01-00-search-ui-glade.png


“Tools > Options” dialog:

w-01-01-search-ui-libre.png


  • Search functionality implemented for Options TreeView. (in “Tools > Options”)

w-01-02-search.png


  • Some technical details

There is a timer that waits for user to stop typing if user types faster.

IMPL_LINK_NOARG(OfaTreeOptionsDialog, SearchUpdateHdl, weld::Entry&, void)
{
    m_aUpdateDataTimer.Start();
    // debug ("1 -> SearchUpdateHdl, treeopt.cxx ");
}

ImplUpdateDataHdl() is called for searching:

IMPL_LINK_NOARG(OfaTreeOptionsDialog, ImplUpdateDataHdl, Timer*, void)
{
    // Pause redraw (Do not redraw at each removal
    xTreeLB->freeze();

    // Apply the search filter to the functions list
    OUString aSearchTerm(m_xSearchEdit->get_text());
    int nMatchFound = applySearchFilter(aSearchTerm);
    // debug ("nMatchFound: " << nMatchFound);

    // Resume redraw
    xTreeLB->thaw();

    if (nMatchFound != -1)
    {
        xTreeLB->select(nMatchFound);
    }
    else
    {

    }
}

applySearchFilter(aSearchTerm) function gets the word in search bar and does the search:

int OfaTreeOptionsDialog::applySearchFilter(OUString const& rSearchTerm)
{
    // debug ("applySearchFilter(), rSearchTerm text: " << rSearchTerm);

    if (rSearchTerm.isEmpty())
    {
        ClearAllOptions();
        xTreeLB->clear();
        Initialize(m_xFrame);
        return 0;
    }

    m_options.searchString = rSearchTerm;
    utl::TextSearch textSearch(m_options);

    ClearAllOptions();

    if (xTreeLB->n_children() > 0)
    {
        xTreeLB->clear();
    }

    for (std::size_t i = 0; i < aDialogIdVector.size(); ++i)
    {
        int nEntry = i;
        OUString aStr = aDialogIdVector[nEntry].first;
        sal_uInt16 aId = aDialogIdVector[nEntry].second;
        // debug ("aDialogIdVector["<< nEntry << "]: " << aStr << " : " << aId);

        sal_Int32 aStartPos = 0;
        sal_Int32 aEndPos = aStr.getLength();

        // make search
        if (!textSearch.SearchForward(aStr, &aStartPos, &aEndPos))
        {
            // debug ("not found: " << aStr << " : " << aId);
        }
        else
        {
            // debug ("found: " << aStr << " : " << aId);

            // TODO: convert allDialogIds vector to a pair to hold function pointers.
            // -> (allDialogIds[i].second)();
            switch(aId)
            {
                case SID_GENERAL_OPTIONS:
                    generalOptions();
                    break;

                case SID_FILTER_DLG:
                    loadAndSaveOptions();
                    break;

                case SID_LANGUAGE_OPTIONS:
                    languageOptions();
                    break;

                case SID_SW_EDITOPTIONS:
                    writerOptions();
                    break;

                case SID_SW_ONLINEOPTIONS:
                    writerWebOptions();
                    break;

                case SID_SC_EDITOPTIONS:
                    calcOptions();
                    break;

                case SID_SD_EDITOPTIONS:
                    impressOptions();
                    break;

                case SID_SD_GRAPHIC_OPTIONS:
                    drawOptions();
                    break;

                case SID_SM_EDITOPTIONS:
                    mathOptions();
                    break;

                case SID_SB_STARBASEOPTIONS:
                    databaseOptions();
                    break;

                case SID_SCH_EDITOPTIONS:
                    chartOptions();
                    break;

                case SID_INET_DLG:
                    internetOptions();
                    break;

                default:
                    break;
            }
        }
    }

    // if treeview is empty, return -1
    return xTreeLB->n_children() ? 0 : -1;
}

Summary

Steps for implementing search functionality in “Tools > Options”:

  • Add Search field to “Tools > Options” dialog. (DONE - week #1)
  • Options treeview (DONE - week #1)
  • Sub-treeview (Next step)
  • Tooltips
  • Strings in all dialogs

Additional hack:

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

***

Patch: https://gerrit.libreoffice.org/c/core/+/152519

GSoC project page: https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1

Enhancement request on Bugzilla: https://bugs.documentfoundation.org/show_bug.cgi?id=49895

by Bayram Çiçek at June 03, 2023 08:08 AM

June 02, 2023

Michael Meeks

2023-06-02 Friday

  • Mail chew, partner call, sales meeting, tested collaborative editing in a call; lunch, partner call. More mail chew, syncing etc. partner call. Continued combing through CVs for various new roles at Collabora.
  • Good to see LibreOffice in the Flatpak app-store announced as the future on RHEL; and for those that missed it glad to have Caolán still on the team.

June 02, 2023 09:00 PM

Ahmed Gamal Eltokhy

Pilot: Joining LibreOffice in GSoC'23

Joining LibreOffice in GSoC'23: A Short Introduction

June 02, 2023 05:03 PM

GSoC'23 LibreOffice Proposal

LibreOffice Google Summer of Code 23 Proposal

June 02, 2023 05:02 PM

June 01, 2023

Michael Meeks

2023-06-01 Thursday

  • Up, had some meetings. Technical planning call, COOL community call, catch up with Kendy, 1:1 with Miklos. Encouraging marketing call.

June 01, 2023 09:00 PM

Official TDF Blog

LibreOffice project and community recap: May 2023

Community members in Italy

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

  • We started May with the Month of LibreOffice! This is a campaign that we run twice a year, encouraging users to join our community and help to improve the software. Everyone can learn new things – and get some merchandise as thanks! Results will be announced here on the blog very soon…

Month of LibreOffice banner

LibreOffice logo banner

  • LibreOffice’s YouTube channel went over the 3 million views mark. Great stuff! We’d like to say a special thanks to community members who’ve contributed great work, such as the Indonesian community for the “New Features” videos (major LibreOffice releases), and Harald B. in the German community for his tutorials. (Note that many of the videos are also available on PeerTube.)

Video thumbnails

  • Our QA (Quality Assurance) community helps to identify and fix bugs in LibreOffice. Every week, Ilmari Lauhakangas from The Document Foundation (the non-profit entity behind LibreOffice) live-streams bug triaging sessions, so that others can see how he works on bug reports, and ask him questions. So, what do attendees think of the sessions so far? We asked some regulars – here’s what they said

Ilmari Lauhakangas

LibreOffice icons

  • The LibreOffice Conference 2023 is coming up in Bucharest, Romania – September 21 – 23! And sponsorship packages are now available. Get in contact with one of the largest open source communities in the world, showcase your brand, and support FOSS!

LibreOffice Conference 2023 logo

  • One of the goals of The Document Foundation and the community it represents is to improve LibreOffice to make it even more competitive with other office suites. And one of the tools to achieve this goal are tenders for the development of specific features, such as the implementation of OpenDocument Format version 1.3, the standard format used by LibreOffice and other applications. So we are looking for tender ideas and proposals to improve LibreOffice – let us know what you think.

Spanish-speaking community members

  • Ever heard the term “scratching your own itch”? Wiktionary describes it as “doing something out of motivation to solve a personal problem”. In the world of free and open source software development, this happens a lot! Anyone can contribute to FOSS projects like LibreOffice, and help to improve them. And that’s exactly what Rafael Lima did, with a long-standing limitation in LibreOffice. Here’s what he had to say.

Rafael Lima

Italian community members

GSoC logo

  • And finally, we welcomed Khaled Hosny to the team at TDF. He’ll focusing on improving LibreOffice’s language support, making the software more accessible to hundreds of millions of people around the world.

Khaled Hosny

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

by Mike Saunders at June 01, 2023 11:06 AM

Miklos Vajna

Multi-page floating tables in Writer: part 4

Writer now has continued steps to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the third post for background.

Motivation

The previous post finished with crash testing: the interesting subset of that testing tool is to take hundreds of thousands of documents and in the Writer case import them into a document model and layout them. If any of this crashes, mark that for future investigation. In this post, we'll see what else started to work during the past month.

Results so far

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

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

Here are some screenshots from the effort so far:

Floating table inside a multi-column section

The first case is about multi-column sections: in this case Word doesn't try to split them between pages. What you can see on the screenshot is that Writer lays out content on the previous page so that remaining space is left, but we don't try to split the table between the first and the second page, even if there would be space on the first page and even if this means the table overlaps with the second column, matching what Word does.

UI to disable split of a floating table

UI to enable split of floating tables were added quite early: this is a new checkbox on the frame properties dialog. However, disabling the split of floating tables was broken, the already created layout was not updated to properly move back "follow" fly frames from later pages to the current page, which is now fixed.

Chaining enabled, so no split frames

Writer already had a feature to split content in a frame into multiple frames, but that one required creating those frames in the model explicitly, such chaining is a feature that is useful in other use-cases and is parallel to multi-page floating tables. The UI now ensures that the user can split frames only in case chaining is not used, to avoid confusion.

Split enabled, so no chaining

This is now also true in the other way around: if split of a floating table is allowed, then we disable the frame chaining UI to avoid trouble later.

The latest crashing document

At this point I went back to crashtesting & crash bugreports, and the latest reported crash was for a document that is visible on the above screenshot. This was a bit tricky: it required 3 fixes to make it not crash and also a layout loop fix.

Disabling split of frames at a layout level

Next was a mini-feature: even if floating tables normally split across pages by default, Word has a document-level compatibility switch to turn this split on or off by default, at a layout level. Floating tables from RTF are not split by default, DOC and DOCX split them by default.

What you can see on this screenshot is that a DOCX document may have this flag enabled, and then you allow splitting on the UI / at a document model level, but Writer may still decide to not split them, to provide the correct layout.

Overlapping floating tables

The previous post already mentioned the problem area of overlapping tables. A first step in this direction is to fix this bug document with Arabic text and 2 overlapping tables, making them unreadable.

Fixed overlap of floating tables

And in this case here is the fixed version, where reading the table now depends on your language skills. :-)

In this case, the problem was a lost section break of type next page, when a section started with a floating table, which is a corner-case.

And that's where we stand. Certainly more work is needed to fix more unwanted overlapping of floating tables, but we get there step by step.

How is this implemented?

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

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

Want to start using this?

You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (7.6).

by Miklos Vajna at June 01, 2023 06:44 AM

May 31, 2023

Michael Meeks

2023-05-31 Wednesday

  • Up early, rushed to the nearest traffic-jam for a two hour stay on the A14; eventually got to the Suffolk Show. Saw lots of nice (heavy) horses with the pretty wife - enjoyed some sandwiches.
  • Interrogated various vendors of insanely heavy farm equipment and admired their wares; solar powered robot planting and weeding machines - nice. Pre-fabricated concrete slab salespeople, giant tractors & lifters. Also a lot of animals & a flower show.
  • Home late with some cold babies; Music group practice, dinner.

May 31, 2023 09:00 PM

Baole Fang

Week 1

Join #tdf-infra

Joined.

Familiar with Mozilla’s work

Mozilla has made their code public. testselect aligns with our project best.

rust-code-analysis can be used to calculate metrics from code/patches.

Now, data mining is finished. It is able to generate raw features from commits.

by Baole Fang at May 31, 2023 12:00 AM

May 30, 2023

Michael Meeks

2023-05-30 Tuesday

  • Mail chew, encouraged to see that Cor's initiative to break the deadlock and finally get an actionable vote passed to hire a couple of devs for TDF paid off with Khaled hired; great.
  • We're also looking for a fluent German Project Manager to help out with some of our German customers and partners.
  • Planning call for a couple of hours; lunch. Eloy 1:1, catch up with E-mail backlog.
  • Did some work with M. to get her chess-board cut in the other dimension, and re-glued-up looking good.

May 30, 2023 09:00 PM

Baole Fang

Week 0

This week progress

Next week tasks

  • Join #tdf-infra
  • Investigate how to select tests in Jekins
  • Familiar with Mozilla’s work

by Baole Fang at May 30, 2023 12:00 AM

May 29, 2023

Michael Meeks

2023-05-29 Monday

  • Up earlyish, signed a contract, then day off. Out to see the Hawkins' in St Albans, enjoyed a day in the sun, chatting, ice-creams, slept & relaxed.
  • Home; Le-anne had arrived to stay, nice to see her.

May 29, 2023 09:00 PM

May 24, 2023

Björn Michaelsen

Moved from wordpress

Moved from wordpress

As announced in the last post on my wordpress blog, I moved my blog to https://bjoernmichaelsen.github.io. The old content from wordpress and the even older one has been (hopefully with only limited losses) migrated and mirrored on the new site too. Both old and new content will be available on the new site free of ads: Accidentally browsing the internet without an ad-blocker, I found the old sites to be annoyingly tainted by those.

Some background:

  • The site is generated from a github repository with an automatic github workflow I customized from zbrox.
  • This static site generator is zola using a customized theme based on Zola Clean Blog by Dave Tucker.
  • The blog now being a static site, I need a new way to allow for comments and feedback. These days, the fediverse is the perfect way to do this: It also allows a discussion without splitting contributions between social media and on-site comments. I will thus link to a fediverse post that then can be replied to at the end of each post from now on.
  • There are multiple feeds to follow the blog:

Now I only need to start again to regularly write long(er) reads. I am intending to do that though.

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

May 24, 2023 05:02 AM

May 18, 2023

Bayram Çiçek

Google Summer of Code 2023 Timeline - Search Field in Options

Project: Search Field in Options

I’ll be working on “Search Field in Options” project under the mentorship of Heiko Tietze and Andreas Heinisch throughout the Google Summer of Code 2023 program.

Timeline

# Week Tasks Notes
#1 (May 29 - June 5) Add a seach field to ./cui/uiconfig/ui/optionsdialog.ui First week of coding period
#2 (June 5 - 12) Connect search field(ui) with Visual Class Library (VCL) VCL provides a graphical toolkit similar to gtk+, Qt, SWING etc.
#3 (June 12 - 19)
#4 (June 19 - 26)
#5 (June 26 - July 3) Start implement seach funtionality
#6 (July 3 - 10) Start by searching the treeview
#7 (July 10 - 17) Midterm evaluation for contributors and mentors Midterm evaluation deadline (July 14 – 18:00 UTC)
#8 (July 17 - 24) Iterate over the tabs and match captions as well as tooltip with the search term Update UI
#9 (July 24 - 31) Expand the search functionality for every single dialog step by step
#10 (July 31 - Aug 7) UI: Hide tree nodes where the item is not found
#11 (Aug 7 - 14) Code refactoring
#12 (Aug 14 - 21) Final implementations
#13 (Aug 21 - 28) Final week: Contributor Final Submission Final evaluation deadline (Aug 28 – 18:00 UTC)
(Aug 28 - Sep 4) Mentor Final Evaluation Mentor evaluations deadline (Sep 4 – 18:00 UTC)
(Sep 5, 2023) Initial results of Google Summer of Code 2023 announced

Project Summary

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

Project page: https://summerofcode.withgoogle.com/programs/2023/projects/IKtSHIH1

Enhancement request on Bugzilla: https://bugs.documentfoundation.org/show_bug.cgi?id=49895

by Bayram Çiçek at May 18, 2023 08:18 AM

Björn Michaelsen

About

About

photo

photo: All rights reserved.

hanseatic productivity liberator, LibreOffice guy, sometimes grumpy, always a troll

PGP-Key:  0xc8be3f1f92cb264617fe361ddcd9c191e48dbf5f

blog -- fediverse -- twitter (inactive)

posts on:

All views expressed on this blog are those of Bjoern Michaelsen and do not necessarily reflect the views of any other entity, including current and former employers.

May 18, 2023 12:00 AM

May 17, 2023

LibreOffice QA Blog

LibreOffice 7.6 Alpha1 is available for testing

LibreOffice 7.6 will be released as final in mid August, 2023 ( Check the Release Plan ) being LibreOffice 7.6 Alpha1 the first pre-release since the development of version 7.6 started in mid December, 2022. Since then, 4670 commits have been submitted to the code repository and more than 754 bugs were set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

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

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

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

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

Happy testing!!

Download it now!

by x1sc0 at May 17, 2023 11:10 AM

May 11, 2023

Caolán McNamara

GNOME Logout Inhbit


Recently added support in LibreOffice towards 7.6 for GNOME logout inhibit if LibreOffice has open documents with unsaved changes.

by caolan (noreply@blogger.com) at May 11, 2023 11:14 AM

May 10, 2023

LibreOffice QA Blog

QA/Dev Report: April 2023

General Activities

  1. Rafael Lima made smaller and improvements to menus, dark mode support, shortcuts and accelerators
  2. Adolfo Jayme Barrientos made some tweaks to wordings in UI and Help
  3. Olivier Hallot (TDF) improved help for regular expressions, Calc statistics features, Formatting Aids options, Calc Input options, Calc’s INDEX() function and added a help page documenting new command line PDF export options. He also made many refactorings and cleanups in Help.
  4. Seth Chaiklin made many text improvements both in the UI and in Help related to numbering, indexes and captions
  5. Stéphane Guillou (TDF) improved help for Calc’s Validity feature and Customize dialog
  6. Juan C. Sanz made it so data in Firebird embedded databases are saved automatically
  7. Miklós Vajna (Collabora) worked on multi-page floating tables in Writer
  8. Jean-Pierre Ledure worked on the ScriptForge library
  9. Szymon Kłos and Pranam Lashkari (Collabora) worked on jsdialog used by Collabora Online
  10. Eike Rathke (Red Hat) fixed an issue with Writer fields mishandling datetime when using a locale with comma as decimal separator as well as a datetime value formatting issue, fixed inconsistencies and inaccuracies in Calc rounding functions, fixed a bug in the display of Add-in function names in a localised context, made Calc’s RANK() function more robust and fixed a regression making COUNTIF() and COUNTIFS() functions produce incorrect results in some cases
  11. Tomaž Vajngerl (Collabora) continued polishing support for document themes and the text auto-fit algorithm in Impress
  12. Julien Nabet added support for Ukrainian letters in bullets and numbering, fixed many issues with XML forms and fixed an issue with transparent objects not being displayed in exported GIFs. He also fixed crashes and debug assertions
  13. Andreas Heinisch fixed inserting line breaks to Calc cells with a macro, improved Heading Numbering dialog, added a timeout (debouncer) to Calc’s Auto Filter search input to improve performance, made Calc cell reference type cycling more robust and made Quick Find reuse the last used search term
  14. László Németh improved handling of bookmarks in the Navigator and DOCX export of new change-tracked tables
  15. Xisco Faulí (TDF) made a dozen test-related changes and fixed many crashes
  16. Michael Stahl (allotropia) continued improving the export of accessible PDFs, made it so mime types of media files are guessed based on their file names, added an option to Load/Save – General that makes LibreOffice load the view position with the document even if it was saved by a different user and made WebDAV file locking more robust
  17. Mike Kaganski (Collabora) continued polishing table indentation in exported HTML files, fixed a section layout issue after copying and pasting and fixed antialiasing property (negative) not being honoured when exporting graphics. He also fixed crashes and made many code cleanups and optimisations
  18. Caolán McNamara (Red Hat) made the link in Crash Report dialog clickable and added new file format fuzzers. He also made many UI-related improvements and crash fixes
  19. Stephan Bergmann (Red Hat) added a –with-coredumpctl option to obtain core dumps of crashed tests from coredumpctl. He also made many code and build-related cleanups, for example removing unused variables found by an experimental Clang build and making some string-related cleanup Clang plugins more robust
  20. Noel Grandin (Collabora) fixed the calculation of compression rate shown in the image compression dialog, fixed a Writer anchoring issue and improved the performance of exporting spreadsheets to PDF and undoing the deletion of large Writer tables. He also made many code cleanups, for example reducing the number of temporary string objects found with the help of a new Clang plugin he created, doing many other string-related optimisations and continued making the Chart-related code simpler and more performant
  21. Justin Luth (Collabora) made many improvements to DOCX frame object compatibility, fixed an issue with duplicated bookmarks in imported DOCX file, rearranged outline numbering suggestions and improved the page number wizard
  22. Heiko Tietze (TDF) made Calc’s comment indicator colour customisable and made several other UI improvements
  23. Armin Le Grand (allotropia) worked on multi-color gradient support
  24. Tibor Nagy (NISZ) fixed an issue with copying Calc conditional formats with colour scales
  25. Paris Oplopoios, Ashod Nakashian and Michael Meeks (Collabora) worked on LOKit improvements
  26. Michael Weghorn worked on Qt/KDE UI and accessibility
  27. Balázs Varga (allotropia) made Calc text hyperlinks stand out more, made deleting hidden sections in Writer pop up a confirmation dialog and made Calc’s fill interaction more robust
  28. Samuel Mehrbrodt (allotropia) improved the Accessibility Check Sidebar panel
  29. Czeber László Ádám (NISZ) fixed an RTF issue with misplaced table with negative indent and DOCX issues in the areas of lists inside tables and form controls
  30. Khaled Hosny (Alif Type) made the positioning of combining marks more robust
  31. Björn Michaelsen made refactorings to Writer code
  32. Gábor Kelemen (allotropia) made many code cleanups, for example removing unneeded using declarations
  33. Sarper Akdemir (Collabora) implemented clipping of vertical text overflow in Impress and Draw, added PPTX compatibility for table cell vert (vertical) property and fixed a table shadow offset issue in imported PPTX files
  34. Rizal Muttaqin added icons for Accessibility Checker Sidebar panel and made many other updates to the icon themes
  35. Vojtěch Doležal made it possible to copy hyperlink locations from protected fields
  36. Patrick Luby (Collabora) fixed a Japanese keyboard issue seen on macOS and a crash under presentation mode on macOS
  37. Jaume Pujantell (Collabora) fixed a bug in json_writer
  38. Maxim Monastirsky continued polishing drawing styles in Calc
  39. Tünde Tóth (NISZ) fixed some DOCX hyperlink issues and XLSX shape and line property issues
  40. Jim Raykowski added a feature to indicate direct formatting as well as paragraph and character styles in Writer document margins and made it possible to list objects in the Navigator per z-order
  41. Baole Fang added digital object identifier (DOI) recognition to AutoCorrect and harmonised some terminology in Impress and Draw
  42. Christian Lohmaier (TDF) worked on Windows ARM64 build
  43. Hossein Nourikhah (TDF) fixed wrong RTL content control field position in exported PDFs
  44. Dennis Francis (Collabora) implemented compact layout for Pivot Tables
  45. Nirnay Korde added a UI for PostgreSQL connection settings
  46. Bartosz Kosiorek improved the performance of handling complex EMF+ graphics
  47. Rachael Odetayo and Ximena Alcaman revamped the Windows installer to use WiX
  48. Chenxiong Qi ported a developer guide code example to Python
  49. Bayram Çiçek made it so drawing a text box in Impress no longer reduces its height to one line

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

513 bugs, 88 of which are enhancements, have been reported by 289 people.

Top 10 Reporters

  1. Gabor Kelemen (allotropia) ( 24 )
  2. Rafael Lima ( 22 )
  3. Don Matschull ( 20 )
  4. Eyal Rozenberg ( 18 )
  5. sdc.blanco ( 13 )
  6. Stéphane Guillou (stragu) ( 12 )
  7. Robert Großkopf ( 11 )
  8. Xisco Faulí ( 11 )
  9. Telesto ( 11 )
  10. Mike Kaganski ( 10 )

Triaged Bugs

596 bugs have been triaged by 71 people.

Top 10 Triagers

  1. Stéphane Guillou (stragu) ( 147 )
  2. Buovjaga ( 108 )
  3. Heiko Tietze ( 45 )
  4. Dieter ( 35 )
  5. Julien Nabet ( 32 )
  6. m.a.riosv ( 29 )
  7. Mike Kaganski ( 20 )
  8. raal ( 18 )
  9. Xisco Faulí ( 16 )
  10. Eike Rathke ( 15 )

Resolution of resolved bugs

565 bugs have been set to RESOLVED.

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

Fixed Bugs

201 bugs have been fixed by 44 people.

Top 10 Fixers

  1. Caolán McNamara ( 26 )
  2. Eike Rathke ( 13 )
  3. Julien Nabet ( 10 )
  4. Mike Kaganski ( 10 )
  5. Andreas Heinisch ( 9 )
  6. Seth Chaiklin ( 8 )
  7. László Németh ( 8 )
  8. Heiko Tietze ( 8 )
  9. Noel Grandin ( 7 )
  10. Tünde Tóth ( 5 )

List of critical bugs fixed

List of high severity bugs fixed

  1. tdf#138124 FILEOPEN: MSO DOCX with image in footnote crashes and uses up 100% memory ( Thanks to Mike Kaganski )
  2. tdf#152619 Basic, Writer: Trying to inspect a just created not yet inserted instance of textfield.DateTime in the IDE causes a crash. ( Thanks to Caolán McNamara )
  3. tdf#154040 Not possible to insert interactive frame ( Thanks to Tomaž Vajngerl )
  4. tdf#154481 Fileopen DOCX: Last pages cut after grouped shape ( Thanks to Attila Bakos (NISZ) )
  5. tdf#154599 Crash while moving columns in Writer table ( Thanks to László Németh )
  6. tdf#154677 Crash when clicking on Tools – Options – Language Settings – DeepL ( Thanks to Julien Nabet )
  7. tdf#154789 EMF+ graphic causes hang / catastrophic memory leak ( Thanks to Bartosz Kosiorek )
  8. tdf#154991 CRASH: hiding column ( Thanks to Heiko Tietze )
  9. tdf#155028 Crash in: `anonymous namespace’::lcl_PasteFlyOrDrawFormat ( Thanks to Noel Grandin )
  10. tdf#45705 DRAW/IMPRESS: New UNO commands for “Zoom in” and “Zoom out” of document canvas, to support keyboard zoom (comment 47) ( Thanks to Rafael Lima )
  11. tdf#61594 FILEOPEN:docx with multi-page floating table (workaround from MS Office: Table Properties – set Text Wrapping to None) ( Thanks to Miklos Vajna )
  12. tdf#91332 Saving XLSX File Removes textbox Linked to Other Tabs ( Thanks to Tünde Tóth )

List of crashes fixed

  1. tdf#104011 FORMCONTROLS. Dialog editor causes crash with Fatal Error when adding a Combo Box from FormControls toolbar. ( Thanks to Caolán McNamara )
  2. tdf#113286 Crash report url/link should be clickable in Crash Report dialog ( Thanks to Caolán McNamara )
  3. tdf#119659 LOOKUP function >> application crashes, if “Result vector” argument is array of constant with more than one value in search direction, and search value is out of vector ( Thanks to Eike Rathke )
  4. tdf#138124 FILEOPEN: MSO DOCX with image in footnote crashes and uses up 100% memory ( Thanks to Mike Kaganski )
  5. tdf#143200 Crash: Assertion failing when pasting a cell to a large-height range ( Thanks to Noel Grandin )
  6. tdf#146068 Calc crashes when trend line using MA(central) lacks data ( Thanks to Caolán McNamara )
  7. tdf#147503 Crashes when trying to insert a hyperlink with XML Form Document ( Thanks to Caolán McNamara )
  8. tdf#151560 Calc crashes when loading a previously saved document which has cells with “#” values ( Thanks to Caolán McNamara )
  9. tdf#151971 Crash in: rtl_uString_alloc when using some Sounds Like (Japanese)” settings (steps in comment 7) ( Thanks to Stephan Bergmann )
  10. tdf#152257 Crash: Selecting an option in dropdown content control leads to unexpected exit with code 139 ( Thanks to Caolán McNamara )
  11. tdf#152619 Basic, Writer: Trying to inspect a just created not yet inserted instance of textfield.DateTime in the IDE causes a crash. ( Thanks to Caolán McNamara )
  12. tdf#153958 Hyphenation crashes with special combined word ( Thanks to Caolán McNamara )
  13. tdf#154016 Libreoffice Math Crash when scrolling through “element categories” ( Thanks to Mike Kaganski )
  14. tdf#154546 Crash when using presentation mode on macOS ( Thanks to Patrick Luby )
  15. tdf#154599 Crash while moving columns in Writer table ( Thanks to László Németh )
  16. tdf#154629 Crash: after opening print preview, closing print preview, right click on TOC ( Thanks to Caolán McNamara )
  17. tdf#154677 Crash when clicking on Tools – Options – Language Settings – DeepL ( Thanks to Julien Nabet )
  18. tdf#154912 CRASH/Assert: “pBasicEntry && \”FindEntry: no Entry ?!\”” ( gen) ( Thanks to Caolán McNamara )
  19. tdf#154991 CRASH: hiding column ( Thanks to Heiko Tietze )
  20. tdf#155017 Crash when closing an HTML in a debug build ( Thanks to Mike Kaganski )
  21. tdf#155028 Crash in: `anonymous namespace’::lcl_PasteFlyOrDrawFormat ( Thanks to Noel Grandin )
  22. tdf#155077 CRASH exporting a dialog with language resources ( Thanks to Mike Kaganski )

List of performance issues fixed

  1. tdf#151206 Auto filtering search entry / text input widget should use a timer-based search activation algorithm to improve performance ( Thanks to Andreas Heinisch )

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

  1. tdf#104011 FORMCONTROLS. Dialog editor causes crash with Fatal Error when adding a Combo Box from FormControls toolbar. ( Thanks to Caolán McNamara )
  2. tdf#105035 FILEOPEN DOCX changed framePr: Two frames, anchored to the same paragraph, imported as a single frame (comment 7) ( Thanks to Justin Luth )
  3. tdf#113027 Editing F4 (Sheet – Cycle Cell Reference Types) doesn’t cycle remote references with space in sheet name ( Thanks to Andreas Heinisch )
  4. tdf#113286 Crash

by x1sc0 at May 10, 2023 02:04 PM

May 05, 2023

Marius Popa Adrian

Flamerobin 0.9.7 Snapshot released with a few Firebird 4 fixes

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

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

May 03, 2023

Miklos Vajna

Multi-page floating tables in Writer: part 3

Writer now has continued steps to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the second post for background.

Motivation

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

Results so far

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

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

Here are some screenshots from the effort so far:

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

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

Selection & dragging of split floating tables

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

Bad binary DOC import

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

Good binary DOC import

And this one shows how it works now.

Good binary DOC export

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

In-footer floating table

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

Bad RTF import

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

Good RTF import

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

Bad RTF export

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

Good RTF export

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

Floating table in a section

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

Correct handling of the TableRowKeep flag in floating tables

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

Page break before a floating table

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

Handling of 2 times nested tables, middle one is floating

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

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

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

And that's where we stand. Hope to address all problems reported by crashtesting soon. Once that happens, it may be possible to switch from bugfixing mode to feature mode again, e.g. better handling of overlapping or nested tables could be done.

How is this implemented?

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

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

Want to start using this?

You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (7.6).

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

April 13, 2023

Collabora Community

Recapping COOL Days 2023: The Event that Rocked Cambridge!

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

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

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

The Technical Day

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

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

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

 

Partner Day

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

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

 

LibreOffice Technology Hackfest

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

 

Social Events

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

 

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

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

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

Nextcloud Enterprise Day

June 13, 2023 – Munich, Germany

LibreOffice Conference 2023

September 20 - 23, 2023 – Bucharest, Romania

SSCon 2023

November 7-9, 2023 – Berlin, Germany

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

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

April 10, 2023

LibreOffice QA Blog

QA/Dev Report: March 2023

General Activities

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

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

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

Top 10 Reporters

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

Triaged Bugs

842 bugs have been triaged by 86 people.

Top 10 Triagers

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

Resolution of resolved bugs

649 bugs have been set to RESOLVED.

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

Fixed Bugs

207 bugs have been fixed by 42 people.

Top 10 Fixers

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

List of high severity bugs fixed

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

List of crashes fixed

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

List of performance issues fixed

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

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

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

by x1sc0 at April 10, 2023 08:54 AM

April 03, 2023

Miklos Vajna

Multi-page floating tables in Writer: part 2

Writer now has the early steps to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well. See the first post for background.

Motivation

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

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

Results so far

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

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

Here are some screenshots from the effort so far:

Split row and an additional one on 2 pages

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

Floating table with multiple columns

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

Incorrect widow control inside split floating tables

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

Fixed widow control inside split floating tables

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

Working minimal height

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

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

Legacy mode: bad margin

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

Legacy mode: good margin

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

Legacy mode: minimal row height causes no row split

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

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

Tracked changes in floating tables

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

Nested tables: the outer is floating

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

Nested tables: broken inner floating table

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

Nested tables: better inner floating table

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

Follow table: bad horizontal positioning

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

Follow table: good horizontal positioning

And it's now fixed.

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

Good cursor traversal

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

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

How is this implemented?

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

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

Want to start using this?

You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (7.6).

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

April 02, 2023

Marius Popa Adrian

Firebird Project announces the first Beta release of Firebird 5.0

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

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

March 23, 2023

LibreOffice Dev Blog

Internal includes instead of global ones – EasyHack

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

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

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

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

Finding Internal Includes

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

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

#include <nativewidgets.hxx>

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

Final Notes

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

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

March 21, 2023

Caolán McNamara

GTK 4.10 and LibreOffice accessibility

 

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

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

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

March 20, 2023

Marius Popa Adrian

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

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

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

March 17, 2023

Marius Popa Adrian

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

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

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

March 06, 2023

LibreOffice QA Blog

QA/Dev Report: February 2023

General Activities

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

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

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

Top 10 Reporters

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

Triaged Bugs

665 bugs have been triaged by 83 people.

Top 10 Triagers

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

Resolution of resolved bugs

483 bugs have been set to RESOLVED.

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

Fixed Bugs

164 bugs have been fixed by 37 people.

Top 10 Fixers

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

List of critical bugs fixed

List of high severity bugs fixed

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

List of crashes fixed

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

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

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

WORKSFORME bugs

73 bugs have been retested by 35 people.

Top 10 testers

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

DUPLICATED bugs

125 bugs have been duplicated by 29 people.

Top 10 testers

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

Verified bug fixes

45 bugs have been verified by 17 people.

Top 10 Verifiers

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

Categorized Bugs

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

Top 10 Categorizers

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

by x1sc0 at March 06, 2023 12:32 PM

March 04, 2023

Jean Hollis Weber

Print editions of new user guides

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

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

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

by Jean at March 04, 2023 08:02 AM

March 03, 2023

LibreOffice Dev Blog

VCL application in its minimal form

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SAL_IMPLEMENT_MAIN()
{
    try
    {
        TheApplication aApp;

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

        aApp.Main();

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

    return 0;
}

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

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

./bin/run minvcl

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

minvcl

The minvcl window

Final Notes

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

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

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

March 01, 2023

Miklos Vajna

Start of multi-page floating tables in Writer

Writer now has the early steps to handle tables that are both floating and span over multiple pages.

This work is primarily for Collabora Online, but is useful on the desktop as well.

Motivation

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

Table in a Writer text frame

And multi-page tables:

Multi-page table

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

Multi-page floating table

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

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

Results so far

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

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

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

Here are some screenshots from the journey so far:

Not splitting Writer text frame

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

Writer text frame kept inside the body frame

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

Incorrect split of a text frame

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

Last version with bad anchoring

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

Duplicated anchor text

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

Less duplicated anchor text on the first page

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

Last text frame without a table

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

Floating table with duplicated anchor text

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

Bad horizontal position

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

Fixed horizontal position

And with more work, now this looks correct.

Fixed vertical position

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

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

Wanted 3 pages, have 2 pages

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

Correctly rendered 3 pages

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

Row split is not performed at all

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

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

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

Row split with correct object positioning on all pages

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

How is this implemented?

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

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

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

Want to start using this?

You can get a snapshot / demo of Collabora Office 23.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (7.6).

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

February 21, 2023

LibreOffice Dev Blog

Telemetry required? Ask users first!

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

Describing The Problem

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

Powershell Error

Powershell Error

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

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

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

Checking the Error Logs

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

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

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

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

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

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

Looking Further Into the Details

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

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

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

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

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

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

Finding the Root Cause

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

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

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

set VSCMD_SKIP_SENDTELEMETRY=1

This change is now merged into the LibreOffice code:

So, the problem should be fixed by now.

Best Practices for Doing Telemetry

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

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

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

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

February 13, 2023

Roman Kuznetsov

Video about QA process in LibreOffice

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

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

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

February 10, 2023

LibreOffice QA Blog

QA/Dev Report: January 2023

General Activities

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

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

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

Top 10 Reporters

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

Triaged Bugs

717 bugs have been triaged by 77 people.

Top 10 Triagers

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

Resolution of resolved bugs

541 bugs have been set to RESOLVED.

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

Fixed Bugs

164 bugs have been fixed by 34 people.

Top 10 Fixers

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

List of critical bugs fixed

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

List of high severity bugs fixed

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

List of crashes fixed

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

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

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

by x1sc0 at February 10, 2023 01:12 PM

February 06, 2023

Miklos Vajna

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

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

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

Motivation

Citations and bibliography in Writer, using fieldmarks

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

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

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

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

Results so far

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

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

The following operations are supported:

  • create the citation / bibliography

  • read the object under the cursor

  • read all objects of a given type in the document

  • update the object under the cursor

  • update all objects of a given type in the document

  • delete all objects of a given type in the document

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

The added plumbing is the following:

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

How is this implemented?

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

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

Want to start using this?

You can get a snapshot / demo of Collabora Office 22.05 and try it out yourself right now: try the unstable snapshot. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (7.6).

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