Welcome to The Document Foundation Planet

This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.

To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.


Tuesday
16 April, 2024


face

Screenshot of PDF export dialog

Here’s a LibreOffice feature you may not know about: when exporting a PDF, the “Hybrid PDF” option embeds the original file. Then anyone with a PDF reader can view the file – and LibreOffice users can edit it too.

Learn more about this feature here


Thursday
11 April, 2024


face

General Activities

  1. LibreOffice 7.6.6 and LibreOffice 24.2.2 were released on March 28
  2. Olivier Hallot (TDF) renamed Fontwork to Text along Path in the UI while updating Help, added Help content for ExportAsFixedFormat VBA method and new Calc functions FILTER, SORT and SORTBY and did several cleanups and fixes in Help
  3. Rafael Lima made several improvements to Calc’s Solver dialog, improved the visual consistency of the Tabbed UI and added a warning about the need to reload file after changing macro security level
  4. Stéphane Guillou (TDF) updated Help content after UI changes and improved the Help page for macro security
  5. Alain Romedenne made many improvements to the officehelper Python script for connecting to LibreOffice processes
  6. Dione Maddern rewrote the Help page for Calc’s SUMIF function, updated Help for Writer’s View options and did cleanups in Help
  7. Gábor Kelemen (allotropia) did many cleanups in the area of includes while improving the script for finding unneeded includes. He also made some Help fixes
  8. Pierre F. made many improvements and fixes to Help pages, for example in the areas of regular expressions and Basic
  9. Andras Timar (Collabora) made Help build more robust on Windows and made some cleanups in Help regarding translatable strings
  10. Laurent Balland updated Grey Elegant Impress template
  11. Miklós Vajna (Collabora) improved copying and pasting between Google Sheets and Calc and did many code cleanups and improvements to automated tests
  12. Áron Budea, Marco Cecchetti, Gökay Şatır, Pranam Lashkari, Jaume Pujantell and Michael Meeks (Collabora) worked on LOKit used by Collabora Online
  13. Gülşah Köse (Collabora) made it so pressing Enter in an empty list item ends the list in Impress
  14. Attila Szűcs (Collabora) improved the performance of handling transparent animated GIFs and made it so image placeholders imported from PPTX files do not display text
  15. Tomaž Vajngerl (Collabora) did many code cleanups in graphics code
  16. Julien Nabet fixed incorrect display of custom page numbers in Sidebar, fixed an issue with duplicating a sheet in Calc causing unwanted axis label to appear in charts and fixed some crashes
  17. Andreas Heinisch fixed an issue with saving print ranges to XLS files
  18. Xisco Faulí (TDF) made a dozen additions and changes to automated tests and added a script to replace missing fonts in test documents. He also improved SVG support by implementing overflow:visible, switch element and the filters feMerge, feMergeNode, feBlend and feComposite.
  19. Michael Stahl (allotropia) made the Curl-based WebDAV content provider more robust
  20. Mike Kaganski (Collabora) fixed issues with copying and pasting charts in Calc, fixed an issue causing incorrect closing tags in Writer HTML export, fixed an issue affecting conditional formatting in overlapping cell ranges, made canceling out of Insert Chart dialog more robust in case of multiple views, fixed an issue with picking a connection type in Database Wizard, fixed an issue in the UNO API implementation for text ranges, harmonised the rounding in Calc’s number formatter and ROUND function and made it so index

Wednesday
10 April, 2024


face

InstallFest 2024

Our Czech community reports back from a recent event…

For the third time, the LibreOffice project had its own booth at InstallFest 2024, and here we present our experiences from the event.

On the weekend of 16th and 17th March 2024, the InstallFest 2024 conference took place at the Faculty of Electrical Engineering of the Czech Technical University in Prague. The conference was held after a two‑year break and under the direction of a new team led by Jan Langmaier. This year, according to the organisers’ estimates, about 300 visitors attended, making InstallFest a successful follow‑up to previous editions. Unfortunately, higher participation is limited by the space capacity of the chosen venue.

The lack of space also affected the LibreOffice booth, which had to be a bit aside from the main event. On the other hand, anyone heading to one of the main lecture halls could not miss us – our exclusive position made us unmissable. Even so, there were far fewer visitors at our booth than in previous years.

Feedback gained at InstallFest

Conferences of this type appeal mainly to the younger generation, who must not be absent. It is therefore not surprising that young people from primary or secondary school are well represented among the visitors at the LibreOffice stand. This year, however, this was significantly more disproportionate than at other times – it can even be said that young people dominated. We always interviewed them, asking what they use LibreOffice for, how long they have been using it, whether it is used at school, where they go, and whether their classmates know about the suite.

The answers were generally similar. LibreOffice tends to be used by young people for basic tasks such as writing texts, creating presentations for school and so on. Those who create presentations in Impress for school assignments have to convert their presentations to PPTX format. Surprisingly, we’ve had good feedback on compatibility with this format, although it is of course problematic.

InstallFest 2024

Very few visitors know about the cloud or mobile versions of LibreOffice, but there are some. We were surprised that one high school student reported using the cloud‑based, non‑paid version of OnlyOffice; after learning about the circumstances (ie that this software is in Russian hands and thus subject to EU sanctions), he understood why the institute he was working with (apparently a non‑profit of some sort) did not want to purchase the paid version of OnlyOffice. It simply cannot.

Many visitors would welcome some changes in LibreOffice’s user interface. While some prefer the traditional toolbar layout, others prefer a Microsoft Office‑like look and feel – either for personal taste or for ease of transition from Microsoft Office. LibreOffice allows you to use different interfaces, but this option is hidden in the menus. Visitors would appreciate if, when LibreOffice is first launched, a wizard were displayed to guide the newcomer through the various setup and customisation options, including user interface selection.

We received a request from one tutor


Monday
08 April, 2024


face

Adam Seskunas

Tell us a bit about yourself!

My name is Adam Seskunas and I currently live in San Diego, California. In my free time I enjoy outdoor activities, hiking, backpacking in the Sierra, rock climbing and surfing with my daughter Sofia. I have a degree in Computer Science from the University of Maryland Global Campus, and I’m an open source software enthusiast.

What are you working on in the LibreOffice project right now?

Currently I’m working on my first “Difficulty Interesting” Easy Hack, a nice description of which can be found on this page.

The Easy Hack involves the ASCII filter for LibreOffice Writer and the way it handles the output of tables. True to its name, the Easy Hack has been interesting! It’s been challenging and rewarding at the same time. I’d like to thank Hossein Nourikhah for providing the code pointers and background information, and Michael Weghorn for help in code review.

Why did you choose to join the project, and how was the experience?

I’ve been using LibreOffice ever since I became interested in using Linux, when I was studying for my Computer Science degree, but I never had considered contributing. It’s such a large project, and I had no experience with C++. I just happened to see an advert on VolunteerMatch for bug testing, and answering the ad got me in contact with Ilmari Lauhakangas.

Ilmari would meet with me bi-weekly and he taught me how to verify bugs in Bugzilla and eventually got me into developing. Overall, joining the project been a fantastic experience, from Ilmari’s mentorship to all the people involved – everyone’s been great. I’d highly recommend it to anyone.

Anything else you plan to do in the future?

My plan is to apply and hopefully get accepted to do Google Summer of Code for LibreOffice. I’ve been talking to Hossein about ideas and I’m excited to get my application written and submitted.

What does LibreOffice really need now?

I’d say more contributors. There’s a robust community of contributors, but any project could use more. It’s a great way to meet people and gain some experience. I’d encourage anyone reading this and thinking about contributing to check out the wiki. There’s great information there and you can help in many different ways, not just development.

Many thanks to Adam for all his contributions! Every LibreOffice user is welcome to get involved and find out what they can do in our community 👍


Thursday
04 April, 2024


face

German state moving 30,000 PCs to LibreOffice

Following a successful pilot project, the northern German federal state of Schleswig-Holstein has decided to move from Microsoft Windows and Microsoft Office to Linux and LibreOffice (and other free and open source software) on the 30,000 PCs used in the local government. As reported on the homepage of the Minister-President:

Independent, sustainable, secure: Schleswig-Holstein will be a digital pioneer region and the first German state to introduce a digitally sovereign IT workplace in its state administration. With a cabinet decision to introduce the open-source software LibreOffice as the standard office solution across the board, the government has given the go-ahead for the first step towards complete digital sovereignty in the state, with further steps to follow.

The term digital sovereignty is very important here. If a public administration uses proprietary, closed software that can’t be studied or modified, it is very difficult to know what happens to users’ data:

We have no influence on the operating processes of such [proprietary] solutions and the handling of data, including a possible outflow of data to third countries. As a state, we have a great responsibility towards our citizens and companies to ensure that their data is kept safe with us and we must ensure that we are always in control of the IT solutions we use and that we can act independently as a state.

This follows on from the finding by the European Data Protection Supervisor (EDPS) that the European Commission’s use of Microsoft 365 breaches data protection law.

In addition, there is this question: Why should local governments use taxpayers’ money to buy proprietary, closed software from a single vendor? With LibreOffice and free software, administrations have much more choice where to get the software and support, and can fund local developers to make improvements. In addition, local governments can maintain full control of the software, study its source code, make changes they require and deploy it entirely on their own infrastructure. Learn more about “Public Money, Public Code”.

So we welcome the decision in Schleswig-Holstein to move its IT administration to free and open source software, for all the benefits it brings, both for the local government and the almost three million citizens of the state.

Full statement from the State Chancellery here (in German)


face

Calc now supports much better copy&paste when you transfer data between Google Sheets and Calc.

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

Motivation

First, Collabora Online was using the deprecated document.execCommand() API to paste text, which is problematic, as the "paste" button on the toolbar can't behave the same way as pressing Ctrl-V on the keyboard.

Second, it turns out Google Sheets came up with some additional HTML attributes to represent spreadsheet data in HTML in a much better way, and Calc HTML import/export had no support for this, while this is all fixable.

Results so far

In short, Collabora Online now uses the Clipboard API to read from the system clipboard -- this has to be supported by the integration, and Calc's HTML filter now support the subset of the Google Sheets markup I figured out so far. This subset is also documented.

Note that the default behavior is that the new Clipboard API is available in Chrome/Safari, but not in Firefox.

For the longer version, here are some screenshots:

We used to show a popup when you clicked on the paste button on the notebookbar

The new paste code in action, handling an image

Import from Google Sheets to Calc: text is auto-converted to a number, bad

Import from Google Sheets to Calc: text is no longer auto-converted to a number, good

HTML import into an active cell edit, only RTF was working there previously

Paste from Google Sheets to Calc: text is no longer auto-converted to a number, good

Paste from Google Sheets to Calc: booleans are now also preserved

Paste from Google Sheets to Calc: number formats are now also preserved

Paste from Google Sheets to Calc: formulas are now also preserved

Paste from Google Sheets to Calc: also handling a single cell

Copy from Calc to Google Sheets: text is now handled, no longer auto-converted to a number

Copy from Calc to Google Sheets: booleans are now handled

Cross-origin iframes also block clipboard access, now fixed

Copy from Calc to Google Sheets: number formats are now also preserved

Copy from Calc to Google Sheets: formulas are now also preserved

Copy from COOL Writer to a text editor: much better result, new one on the right hand side

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:


Tuesday
02 April, 2024


face

Nepali LibreOffice community meeting

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

TDF Board of Directors, 2024 - 2026

LibreOffice community at FOSDEM 2024

LibreOffice 24.2 cake

LibreOffice 24.2 Writer and Calc Guides

  • Also in docs news: in the middle of the month, we talked to Dione Maddern about her experiences joining the LibreOffice project. Thanks to Dione for all her contributions!

Dione Maddern

Czech LibreOffice Writer Guide 24.2

  • Later in the month, we celebrated Document Freedom Day, which raises awareness of how open standards and open document formats provide us with the freedom to read and write as we wish.

Document Freedom Day banner

  • March saw two updates to LibreOffice: 24.2.2 and 7.6.6. All users of these branches are recommended to get the latest versions.

LibreOffice donate banner

Globe

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


Monday
01 April, 2024


face
  • Up lateish; drove to St Albans with the family to meet up with Sue & family.
  • Removed 4% of CPU from a week-long profile of our demo servers: avoiding lots of extension querying with a one line change: fun.

Sunday
31 March, 2024


face
  • Played with H. and a stand-in Chris at Church for Easter Sunday, good congregation & singing, H. doing well on the Organ.
  • David & Jocelyn over for lunch, caught up with them.
  • J. out for a run, got Minetest setup again for the babes with their old map included. Applied slugging.

Saturday
30 March, 2024


face
  • Pottered around, poked at tax planning with J.
  • Bruce & Anne over for a fine lamb lunch, lovely to see them.
  • Re-worked SocketPoll to improve (somewhat hypothetical) re-entrancy issues for fun.
  • Watched Mission without permission a blast from the past with the family.

Friday
29 March, 2024


face
  • Off with the family; out to Nowton Park for a wander in the sun. Into central Bury to have some Greggs in the Cathedral Gardens.
  • Wandered The Range with H. and E. - got some potential earth containers to fit a vacuum separator.
  • Home, split up background save bits to push. Watched Damsel with the babes, soup dinner. Played Rumikub with the family.

face

The European Data Protection Supervisor (EDPS) has found that the European Commission (Commission) has breached several provisions of Regulation (EU) 2018/1725, the EU data protection law for EU institutions (EUIs), in its use of Microsoft 365, including those relating to the transfer of personal data outside the EU and the European Economic Area (EEA). The EDPS is imposing corrective measures on the Commission.

In particular, the Commission has failed to provide adequate safeguards to ensure that personal data transferred outside the EU/EEA are afforded the same level of protection as that guaranteed within the EU/EEA.
Furthermore, in its contract with Microsoft, the Commission did not sufficiently specify the types of personal data to be collected and for what explicit and specified purposes when using Microsoft 365. The Commission’s breaches as data controller also relate to data processing, including the transfer of personal data, carried out on its behalf.

The EDPS has therefore decided to order the Commission to suspend, with effect from 9 December 2024, all data flows resulting from the use of Microsoft 365 to Microsoft, its subsidiaries and sub-processors located in countries outside the EU/EEA that are not covered by an adequacy decision.

In effect, the EDPS has confirmed what we have been arguing for years, namely that the only individual productivity solutions that also guarantee data protection and support the concept of Europe’s digital sovereignty – technological independence from the commercial decisions of high-tech companies, especially from the US – are FOSS solutions such as LibreOffice combined with a standard, open and independent data format such as the Open Document Format.

The EDPS, though, has also decided to order the Commission to bring the processing operations resulting from its use of Microsoft 365 into compliance with the EU Regulation 2018/1725. The Commission has until 9 December 2024 to demonstrate compliance with both orders.

The EDPS considers that the corrective measures it imposes (described in the document annex [1]) are appropriate, necessary and proportionate in light of the seriousness and duration of the infringements found.
Many of the infringements found concern all processing operations carried out by the Commission, or on its behalf, when using Microsoft 365, and impact many individuals.

Unfortunately, all the remedies identified by the EDPS relate to Microsoft 365, and therefore do not address the root of the problem by suggesting the use of FOSS solutions such as LibreOffice and the only truly standard, open and independent document format, the Open Document Format.

It is highly likely that Microsoft’s solution will be the usual ‘sticking plaster’ that hides the problem without addressing it, and that the lobbyists – who I am sure are already at work – will make it look appropriate in the eyes of politicians.

And if we continue to protest, knowing that we will not be heard because we do not have the same firepower as the lobbyists of the big US hi-tech companies who are present in Brussels with hundreds of professionals, we will always hear


face

Globe

LibreOffice’s localisation community translates the software’s user interface, along with its documentation and websites.

Julia Spitters, Heiko Tietze and Sophie Gautier ran a survey among members of the localisation teams to learn what tools are used, how they engage in workflows, and what future developments they might expect.

Demographics

The survey had a total of 29 participants and 18 complete entries of quantitative data. When asked to rate their experience on a scale from (1) Beginner to (5) Expert, most of our participants had intermediate to advanced translation experience (M = 3.75, Min = 1.00, Max = 5.00), and worked on an average of 5.56 localisation projects besides LibreOffice (SD = 7.31, Min = 0, Max = 30). Our results may capture more experienced members of the localisation community who are working on quite a few projects at once, so we want to thank everyone for their work!

Tooling

We were particularly interested in what tools participants use besides Weblate, which is likely the most common translation tool used among LibreOffice translators. We allowed participants to rate their satisfaction with additional tools they use on a scale from (1) Very Dissatisfied to (5) Very Satisfied, and rate the importance of potential changes. Participants who did not leave any response were excluded.

LibreOffice localisation survey results - tools used

Among the different Localization tools available, most participants felt neutral towards the most commonly used tools, which include POEditor, TextEditor, Transifex, Crowdin, and OmegaT. However, the few participants who use OmegaT seemed to be relatively satisfied with the tool.

Q: Do you download strings and translate locally?

When asked if they download strings and translate locally, most participants reported that they either partially did so, or not at all.

Q: Do you want to receive notifications on updates related to translation tasks?

LibreOffice localisation survey results - notifications

The majority of participants were interested in receiving notifications for translation task updates.

Q: How satisfied are you with the translation memory?

When asked about their satisfaction with translation memory from (1) Very Dissatisfied to (5) Very Satisfied, there were very mixed reviews, which did not allow us to capture where the majority opinion lies.

Q: If Weblate were able to auto-accept string matches, how important would this function be for you?

When asked to rate the importance of auto-accepting string matches on a scale from (1) Not at all important to (5) Extremely important, 10 out of 16 total participants rated this as at least (3) Moderately important. This might suggest that this could be a useful feature to add, but our qualitative responses will also show some potential issues that might arise if it is enabled for all translators.

Is the dashboard too complex?

LibreOffice localisation survey results - dashboard complexity

Although most participants who responded did not seem to have a problem with the Weblate dashboard, more than half of our responses were empty, making it difficult for us to understand the team’s opinion.

Q: What parts of the dashboard contribute to your satisfaction or dissatisfaction?

The few participants who assessed their satisfaction with the dashboard in the open-ended


Thursday
28 March, 2024


face
  • Mail, admin, tech planning, COOL community call. Group of partners call, marketing strategy call; lots of calls.
  • Discovered that using an A2 M8 bolt as a die to thread a pencil makes a great fidget toy.
  • Finally got to some hacking; Caolan found the watchdog thread could trigger perf via an unusual syscall (futimestat); but it would just sample the watchdog thread. Fixed that by moving it into a signal handler with signals. Finally can get pretty flamegraph profiles of particularly slow things quite simply with
    perf record -e syscalls:sys_enter_futimesat. Grateful for Brendan Gregg's great profiling site - bought his book for good measure.

face

Berlin, 28 March 2024 – Today the Document Foundation releases LibreOffice 24.2.2 Community [1] and LibreOffice 7.6.6 Community [2], both minor releases that fix bugs and regressions to improve quality and interoperability for individual productivity.

Both versions are immediately available from https://www.libreoffice.org/download. All LibreOffice users are encouraged to update their current version as soon as possible to take advantage of improvements. Minimum requirements for proprietary operating systems are Microsoft Windows 7 SP1 and Apple MacOS 10.15.

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

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

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

[1] Change logs for LibreOffice 24.2.2 Community: https://wiki.documentfoundation.org/Releases/24.2.2/RC1 (release candidate 1) and https://wiki.documentfoundation.org/Releases/24.2.2/RC2 (release candidate 2).

[2] Change logs for LibreOffice 7.6.6 Community: https://wiki.documentfoundation.org/Releases/7.6.6/RC1 (release candidate 1) and https://wiki.documentfoundation.org/Releases/7.6.6/RC2 (release candidate 2).


Wednesday
27 March, 2024


face
  • Early partner training call, partner call, sync with Caolan on the not entirely obvious SfxMedium code. Lunch. Catch up with Naomi & Lily. Sales call, poked at background save.
  • Band practice in the evening with H. prep for Easter Sunday.

face

Document Freedom Day banner

Today is Document Freedom Day, which raises awareness of how open standards and open document formats provide us with the freedom to read and write as we wish:

Remember when you were sent an important file that your computer couldn’t read properly? Remember having to buy or download a new application just so you could open an attachment that you needed for work? The same thing happens tens of thousands of times each day. Can you imagine how much knowledge exchange doesn’t happen just because sender and receiver (intentionally or not) are using different data formats? Incompatibilities like this are usually caused by ways of storing information that are secret (‘closed’), and privately owned (‘proprietary’).

Document Freedom Day is an opportunity to tell the world about open standards, which are crucial to ensure our ability to exchange information, remain independent of software vendors, and keep our data accessible in the long term. LibreOffice uses the Open Document Format, for example, which is also used in many other apps.

Learn more and spread the word here!


Tuesday
26 March, 2024


face
  • Up early; off to a French ministry customer meeting with Philippe & Meven. Lots of useful feedback - and a chance to improve my French comprehension.
  • Out for a nice Italian lunch, and back on the Eurostar - got some patch review & another COOL-days lightning talk done.

Monday
25 March, 2024


face
  • Mail chew, 1:1's with Lily, Miklos, lunch, H. dropped to the station; mail & admin and COOL-days slide creation on various trains to Paris.
  • Met up with Meven, had some Crepes, up late chatting.

face

Czech LibreOffice Writer Guide cover

Zdeněk Crhonek (aka “raal”) from the Czech LibreOffice community writes:

The Czech team has finished translating the LibreOffice Writer Guide 24.2. As usual it was a team effort, with translations by Petr Kuběj, Radomír Strnad and Zdeněk Crhonek. Then Roman Toman contributed localised pictures, and Miloš Šrámek provided technical support. Thanks to everyone in the team for their work!

The Czech translation of the Writer Guide 24.2 is available for download on this page.

We’ve not yet decided which guide we’ll translate next, but we’re always looking for new translators and correctors. Join us!

Awesome work everyone! 😊


Sunday
24 March, 2024


face
  • All Saints, played violin & orchestrated the organ for Peter. Home for a lovely roast lamb lunch, exhausted relaxation - movies, crisps, rest.

Saturday
23 March, 2024


face
  • Up earlyish, packed tools variously; off to David S' with H. joined by Chance & David M. Managed to get the next stair flight up-stairs, and to fit the work platform.
  • Dry-fitted stairs, and cut/routed to size, got tricky winding corners all aligned etc. Break for tea & cake.
  • Set too with the glue - and somehow managed to get everything nicely fitted, glued, pegged, screwed to the wall etc. The third stair case fitted, and by far the best. Bid thanks & 'bye to Chance & H.
  • Lunch with David M, back to get the final pieces glued in & steps fitted. Home exhausted.
  • Mexican dinner, N. creating refried beans; Three Body Problem with the family.

Friday
22 March, 2024


face
  • Check-in with Rash, Quikee & Lily on K8s, sync with Lily. Finished E-mail, and got to some hacking.
  • Polished background save a lot; eventually got to something good, only to discover that CoW of memory is not enough, the forked background process deletes things from the file-system that the parent process needs for the next save: hmm. Started working on that.

Thursday
21 March, 2024


face
  • Tech planning call, COOL community call and some testing action; new staff on-boarding / three month orientation catch-up. Sync with wider marketing group.
  • Interesting start-up demo / pitch. Plugged away at patch merging & improving unit test behavior.
  • Worship Committee meeting in the evening at David S's.

Wednesday
20 March, 2024


face
  • Up early, out for a run with J.
  • Early customer call, sync with Lily, mail chew, all hands meeting. Poked at socket lifecycle management, and SocketPoll workings in much more detail. Band practice, worked until late.

Tuesday
19 March, 2024


face
  • Mail chew, planning call, sync with Naomi & Lily, lunch, monthly mgmt meeting, poked at some overdue 24.04 coding treats - discovered some corner-case performance issue by lengthing our fallback poll loop waits substantially; fun.

Monday
18 March, 2024


face
  • Mail chew; day of 1:1's and catch-up admin & planning.
  • Reflecting on why I get -so- spam these days, I suspect LinkedIn likes to target on 'CEO' job title instead of the much more opaque 'General Manager'; if I wasn't so busy turning down the corporate 'enlargement services' equivalent I'd test that.

face

One of the areas that can help LibreOffice, but may not directly be visible to the users even though it has a big impact is the quality assurance, is automated testing.  Here, I discuss some areas and notes around improving tests for LibreOffice. First, I start with regressions and bug fixes without a test.

Missing Unit Tests

This is the description from the GSoC ideas page:

While there are some automated tests for LibreOffice, there are not nearly enough. Adding more and better tests helps developers who work on the code to be more productive by allowing them to find regressions as early as possible.

To elaborate more, I should say there are many regressions and bugs in general that are fixed, but lack testing. It is important to have tests for those bug fixes, to avoid such problems in the future. You can see a list of those fixed issues that lack tests here:

If you want to add some new tests for the bug fixes, first you should read the bug report very carefully to understand what is it about, and try to test the fix yourself. You can either use git revert command to revert the fix, and see the problem in action, or try changing back the fix in the code, if it is not too big.

That is important, because you have to see that the test fails without the fix in place, but succeeds when it is applied. This is an essential step when writing the test.

To know more about unit tests, you may look into these Wiki pages:

Porting Existing Test to C++ or Python

Some tests are written in the past, but now have issues because of the way they are written. In this case, porting them can provide improvement.

Tests can be written in multiple languages. At least, C++, Python, Java and BASIC are currently in use for different tests across the LibreOffice code base. Again in the GSoC ideas page, you can read:

There is some support in LibreOffice for automated tests, both at the level of unit tests, and at the level of system tests that drive a full LibreOffice instance. Currently tests can be written in C++, Java, or Python. Various new automated tests should be developed to improve the test coverage.

Tests written exclusively for Java (e.g. the JUnit framework) should be ported to C++ so that they can execute much more rapidly. Similarly, tests that do remote control of an existing LibreOffice instance, should be re-factored to run inside that instance to make debugging much easier.

Almost all JUnitTests and UITests, and also some smoke tests, run as an outside process. To verify, the trick is to remove the soffice(.exe) binary, or to remove its execute permission (on Linux). In this way, out-of-process tests should fail, as they need to run the soffice binary. After a


Sunday
17 March, 2024


face
  • Up earlyish, breakfast with the parents, bid a fond farewell & drove home. N. cooked lunch; J. and N. went to visit Izzie, H.M. & E. to StAG; relaxed variously - watched The King - interesting; its good to have a wife who speaks frankly to you.

Friday
15 March, 2024


face

Git Git Git Git Git Git

Why work on this

Working on this involves understanding the controlls, specially the spinedit, finding some way to modify it so that clicking on the units “the last 2 characters of the label in the spinedit entry” shows a dropdown, from which we can select a different unit.

Mockup

I find working on this as a great opportunity to get deeper insights into widget implementations

Finding a Starting Point

I had no idea about where to start. One approach that appealed to me was if somehow I find the cursor position when the spinedit goes into edit mode, and compare it to the text length in the GtkEntry (internal) of the spinedit, then I can easily say that if the cursor is on the last 2 characters, then show a dropdown here. But that would not work, because “creating a new widget” ==> the logic should be built into the widget itself (I don’t know, it’s just guess-work).

Then I went to #gtk IRC channel, and asked about how to approach this problem.

IRC Conversation
sahil_ hi, I have a task to write a custom spinedit control, which will have a fontsize field (with a number and a unit like mm, pt, etc). It should be such that if I click on the unit with mouse, then it should show me a dropdown to use different units. Mockup Here’s the mockup. How can I approach it?
sahil_ Libreoffice uses glade and custom welding for widgets. And from the research I did on it, I found that a normal gtkentry is aware of the cursor position, which can be used like if the cursor is on the last 2 characters, then show the popup.
sahil_ But a new control has to be created for that (in my understanding).
mclasen The pieces are GtkText and GtkGestureClick. You just have to glue them together in the right way
sahil_ mclasen: and for the dropdown?
mclasen GtkPopover is what is used for that
sahil_ Also the spinedit doesn’t expose the gtkEntry (it’s internal). So do I have to create one from scratch?
sahil_ or does it?
mclasen you can take a look at how GtkEntry, GtkSpinButton, etc are put together nowadays they are all just wrappers around a GtkText widget

This was more than enough to get started.

Starting the Hunt

Looking into it, I found that I was mixing up GtkComboBox, which is used as fontsizebox, and GtkSpinButton, which is what I was supposed to explore and modify. weld::SpinButton, which is libreoffice’s wrapper over GtkSpinButton (if I am not wrong) has functions which give access to the cursor location in the Entry. It would require some playing around to understand the dynamics though.

I am also curious about how a dialog, or any UI element, which is created using glade, which usually has the widgets as Gtk types (GtkLabel, GtkButton etc.) is loaded into different backends. Knowing how the welding works would answer it I think.

Older blog entries ->