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
12 July, 2022


face

The LibreOffice Quality Assurance (QA) Team is happy to announce LibreOffice 7.4 Release Candidate 1 (RC1) is available for testing!

LibreOffice 7.4 will be released as final in mid August, 2022 ( Check the Release Plan for more information ) being LibreOffice 7.4 RC1 the third pre-release since the development of version 7.4 started at the end of November, 2021. Since the previous release, LibreOffice 7.4 Beta1, 280 commits have been submitted to the code repository and 121 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 7.4 RC1 can be downloaded from here for Linux, macOS and Windows, and it will replace the standard version.

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

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

LibreOffice is a volunteer-driven community project and your help is much appreciated.

Happy testing!!

Download it now!


Monday
11 July, 2022


face

Today we’re talking to Peter Schofield from LibreOffice’s documentation community

Tell us a bit about yourself!

I am Yorkshire bred and born, which was a very long time ago. Left home at 16 to join the Royal Air Force. Served for almost 19 years as an Aircraft Technician, which is where my engineering knowledge started.

Became interested in Technical Writing in the early 80s and became qualified as a Technical Writer in 1985. This has enabled me to work in aviation, defence, mining, plant machinery, construction, electronics, telecommunications, computer peripherals and software. This did involve working in several countries, which has given me a very broad outlook on life.

Now official retired from paid work and have settled down in Poland with my lovely Polish wife.

How did you get involved in LibreOffice?

First came across an early version of LibreOffice in the 90s when I started using Star Office, which then became OpenOffice. I have always been interested in open software being freely available to users to help them save money, not having having to pay the big corporations.

I took to LibreOffice when I retired and realised how good it is, so I decided to help the project. This gave me the chance to create user guides that LibreOffice users could easily understand (I hope). I am now in charge of the Impress and Draw user guides and starting to upgrade both of them to LibreOffice 7.4.

What else are you planning to work on?

My plans for the future is continue being a willing volunteer on the LibreOffice Documentation Team with the hope that I can improve usability of the user guides for the majority of users. I do believe that some parts of the LibreOffice user guides do need improvement because of the poor language used. With this in mind, I am now updating the template to help improve the quality of the user guides. This means that there are hints and ideas in the template on how to improve ones writing.

Eventually I would like to see all the user guides using an easy to understand English. This means it would make the text easier to translate into the languages LibreOffice is available in, and make the English easier to understand for users where English is not their first language. This idea is already in practice with several companies throughout the world. These companies use one of the versions of Simplified English that are available.

Many thanks to Peter for all his help! Everyone is welcome to join the Documentation Team and build up skills for a potential career in technical writing…


Wednesday
06 July, 2022


face

The Document Foundation (TDF) is the non-profit entity behind the world’s leading open source office suite, LibreOffice. We are truly passionate about free software and the open source culture.

To provide high quality tools for our contributors, together working on office productivity for over 200 million users around the globe 🌎, we are searching for a Web Technology Engineer (m/f/d) to start work as soon as possible.

As our future Web Technology Engineer, you work with a great team and collaborate with volunteers around the globe to:

  • Maintain and improve the user-facing (frontend) part of our web applications. This includes external and internal applications, and some custom projects.
  • Implement features and fixes to the applications we use (see the list below for some examples)
  • Take care of localisation needs and accessibility requirements for our tools
  • Make as many of our web-based tools as possible usable both with desktop and mobile devices
  • Evaluate web technologies and bring them to TDF web services

To succeed in this new role, you ideally already have some of the following skills:

  • Self-driven and a motivated team player
  • Fluent in HTML and CSS
  • Demonstrable JavaScript coding experience of at least three years
  • Some experience with TypeScript
  • Experience in backend development (e.g. Django and Python) and/or system administration is a plus
  • Contribution history in FLOSS communities is a plus
  • Design skills are a plus (UX or visual)
  • Experience in implementations conforming with accessibility requirements is a plus
  • Previous experience in remote work
  • Fluent written and spoken English is a mandatory requirement

Examples of the technologies and applications we use:

All jobs at The Document Foundation are remote jobs 🌟, where you can work from your home office or a coworking space. The work time ⌚ during the day is flexible, apart from very few fixed meetings.

Are you interested? Get in touch! We aim to schedule the first interview within two weeks of your application. You can also approach us anytime for an informal chat to learn about the role or in case of questions.

TDF welcomes applications from all suitably qualified persons regardless of their race, gender, disability, religion/belief, sexual orientation or age. Don’t be afraid to be different, and stay true to yourself. We like you that way!

We are looking forward to receiving your application, including information about you, when you are available for the job, and of course your financial expectations. Pointing to public repositories with your code is very helpful. Please send us an e-mail to webtech.application@documentfoundation.org no later than August 12, 2022. If you haven’t received feedback by September 9, 2022, your application could not be considered.

Note: We do not accept agency resumes. Please do not forward resumes to any recruiting alias or employee.


Tuesday
05 July, 2022


face

General Activities

  1. LibreOffice 7.3.4 was released on June 9
  2. Adolfo Jayme Barrientos updated the font stack used in Help and made many small tweaks to content (with help from Celia Palacios). He also made some UI improvements
  3. Dietrich Schulten updated Calc help for cell copying after a new option was added to only select visible cells
  4. Seth Chaiklin updated help for Arrow styles, object anchoring, list indenting, table resizing and many menu and toolbar items. He also improved many LibreOffice UI strings and tooltips
  5. Ilmari Lauhakangas (TDF) improved the help for AutoCorrect
  6. Alain Romedenne documented some Python resources in Help and improved the help for ScriptForge
  7. Rafael Lima expanded the help for ScriptForge with many new features and made some smaller help fixes
  8. Olivier Hallot (TDF) added help pages for the new Calc Sparklines feature and pivot table formatting, updated the help for Insert Image and Navigator, expanded the help for toolbars and made many other smaller Help fixes. He also made many updates to extended tooltips
  9. Laurent Balland added a new Calc command GoTo Sheet and wrote help for it
  10. Christian Lohmaier (TDF) prepared for Apple Store distribution, for example fixing access to macOS address book and making Impress remote connection dialog not depend on Bluetooth access. He also made generating help files reproducible by changing how the ID generation works
  11. Miklos Vajna (Collabora) implemented allowing negative page border distances in Writer for interoperability and improved the HTML exporting of table backgrounds, lists and image links. He also continued working on colour themes in OOXML documents and content controls for Writer
  12. Jean-Pierre Ledure worked on the ScriptForge library
  13. Tünde Tóth (NISZ) made it so changing the autorecovery setting works again and made exporting of hyperlink style names interoperable with DOCX
  14. Szymon Kłos and Pranam Lashkari (Collabora) worked on LOKit improvements
  15. Eike Rathke (Red Hat) made several improvements to Calc arrays, fixed an issue with cell references, made it so number formatting for booleans is respected, fixed an undo issue related to cutting, improved the compatibility of VBA Range.Sort and made handling letter cases more robust
  16. Bartosz Kosiorek fixed the rendering of EMF+ gradients and implemented support for custom line caps in the graphics format
  17. Tomaž Vajngerl (Collabora) added support for interoperability of OOXML text inset values
  18. Julien Nabet fixed issues with databases, TIFF images and saving to network locations
  19. Jim Raykowski improved the vertical alignment of the Navigator view when tracking elements
  20. Andreas Heinisch made VBA parsing more robust, improved Writer’s Hyperlink dialog, improved data handling in pivot tables and made Basic’s MsgBox handle its arguments correctly
  21. László Németh added support for hyphenation zones to improve OOXML interoperability and implemented change tracking for numbered paragraphs in Writer. He also documented new hyphenation options in Help
  22. Xisco Faulí (TDF) wrote a script to get attachments from various online forums to help expand our test document corpus and fixed many crashes and other dangerous pieces of code detected by the document

Monday
04 July, 2022


face

Impress now has the next step of document theme support: it is possible to refer to the theme colors from shape fill colors (including effects).

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

Motivation

PowerPoint-style themed shape fill, user interface

PowerPoint users can attach a set of colors (and fonts, etc.) to master pages, and then refer to these in many areas, like shape text or shape fill. It was already possible to define theme colors and refer to them from shape text (see Start of document themes in Impress: shape text for details).

The next step in this journey is shape fill: if your shape is filled with some color, it can be a theme color, as visible on the above screenshot. One interesting aspect of this is that the default shape fill color can now depend on the master page, and it may not be the same for all slides (this is what would happen with styles, when not using theming).

Results so far

Here is a demo that shows how it works:

If one opens the svx/qa/unit/data/theme.pptx test file from core.git, it looks like this:

PowerPoint-style themed shape fill, after opening

The middle row has 3 rounded rectangles: the first is filled with the 'Accent 1' color, the second is the same, but 60% lighter and finally the last one is the same, but 25% darker.

Here is how you can change what the 'Accent 1' color is:

  • Click 'Master View' on the sidebar to go to the master of the current slide.
  • Right click -> 'Slide Properties' opens the 'Slide Properties' dialog.
  • The 'Theme' page has an 'Accent 1' row, with a blue color.
  • Change that to an orange color: click on the 'Accent 1' drop-down, then select 'Theme colors', finally the 6th choice is orange in the first row -- this comes from the document's theme.
  • Click 'OK' to close the dialog, followed by 'Close Master View' on the sidebar.

Here is how your shapes now look like:

PowerPoint-style themed shape fill, after changing the theme

What you can see here is that the color effect (darker, lighter, default) of the rounded rectangles' fill color was preserved, but all the blue colors are replaced with orange.

As a cherry on the cake, now if you insert a new shape, that will also have an orange fill color by default as well.

You can see how this is useful when designing templates: a designer can create something good-looking, and all you have to do is to set the theme to the colors of your organization, and you're 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:


Friday
01 July, 2022


face

Flamerobin 0.9.3.12 Snapshot released with a few Firebird 4 fixes , here is the changelog Implement Int128 by @andy-123 in #230Implement firebird 4 types: decimal(16) and decimal(34) by @andy-123 in #244Some fixes by @Jdochoa in #254Some Fixes by @Jdochoa in #255FB Library Search by @Jdochoa in #261Full Changelog: 0.9.3.11...0.9.3.12


face

Today we’re talking to রিং/ring (S R Joardar) from Bangladesh, who’s helping to spread the word about Free Software (as in freedom) – including LibreOffice – in his country…

Tell us a bit about yourself!

I am a GNU/Linux user, lover, translator and supporter since 2000, and a sysadmin since 2003 using Red Hat 5.0, later Fedora and RHEL. I am using Ubuntu in personal computers since December 2006. Canonical sent me a zero-priced gift pack of 10 CDs with Ubuntu 6.10 back then. I have started deployment of Ubuntu servers with Ubuntu 8.04 manual installations in 2009, and just provisioned a few instances with 22.04 on Linode and Digital Ocean. In the years 2009-2017, I personally made over 6,000 new desktop or laptop installations with Ubuntu and LinuxMint.

I am from Dhaka, Bangladesh. In 2011, I along with 21 more Free software enthusiasts formed an organization titled “FOSS Bangladesh (Foundation for Open Source Solutions Bangladesh)” and started with official tour to the Universities here in Bangladesh. Up to December 2019, FOSS Bangladesh had organized 75 events in various universities and colleges and schools to spread out the digital freedom knowledge among the pupils, the future leaders. I have invited Mr. Richard M. Stallman came in Dhaka, Bangladesh at Daffodil International University for a session in 2014 and he agreed to my request and visited. I am also a Mozillian (Mozilla Firefox and Thunderbird Fan, User and Supporter and end user support volunteer). At present I am working as the General Secretary of FOSS Bangladesh.

I am an IT Freelancer, working on PPH and Freelancer. I love to cook food and play cricket besides my computing and voluntary support to spread Free Software knowledge. 🙂

How well is FOSS, LibreOffice, GNU/Linux etc. known and used in Bangladesh? What are the obstacles to adoption?

In 2011, FOSS Bangladesh ran an online survey to gather approximate user data about GNU/Linux users, with the help of various online local language forums sites here in Bangladesh. Back then, it was around 9,000 people. As per my statistical knowledge nowadays, the pupils I had served with installations and had met by 2017 became professionals, and GNU/Linux users is now more than 100 times of that 15,000 count.

The obstacles to adoption of GNU/Linux and LibreOffice in here in Bangladesh is the lack of law bindings regarding software piracy. So far, can obtain a pirated copy of Windows 10 with Microsoft Office, and many more and get used to that closed, bind and blinded ecosystem. So when it comes to the professional workplace, most people got bound into that closed software ecosystem. They do not think that they are stealing – and on the piracy index globally, they make Bangladesh ashamed. Government offices here also go alike with the closed software ecosystem.

But the scenario is changing day to day. Those who once got the chance to get out of that closed system embracing the GNU


Wednesday
29 June, 2022


face

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’re still maintaining the LibreOffice 7.3 branch, of course, and on June 9 we released LibreOffice 7.3.4 with over 80 bugfixes and compatibility improvements.

  • Meanwhile, রিং/ring (S R Joardar) from the Bangladeshi LibreOffice community told us about his efforts to spread the word about Free Software in his country. The community has set up a Bangladeshi Telegram channel to coordinate activities. Thanks to everyone involved!

  • And finally, The Document Foundation is supporting a student through the Deutschlandstipendium initiative. We caught up with Julian Hübenthal to find out what he’s doing, and what he knows about FOSS already…

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!


Wednesday
22 June, 2022


face

Firebird Project is happy to announce general availability of Firebird 3.0.10 — the latest point release in the Firebird 3.0 series.This sub-release offers a few important bugfixes, please refer to the Release Notes for the full list of changes.Binary kits for Windows, Linux and Android platforms are immediately available for download, packages for Mac OS will follow shortly.


Thursday
16 June, 2022


face

Ekipa jamstva kakovosti LibreOffice (QA Team) ponosno objavlja, da je za preizkušanje na voljo izdaja beta1 LibreOffice 7.4!

LibreOffice 7.4 bo izšel sredi avgusta 2022 (podrobnosti preverite v načrtu izdaj - v angl. jeziku), pri čemer je LibreOffice 7.4 Beta1 druga predizdaja od začetka razvoja izdaje 7.4 novembra 2021. Od prejšnje izdaje (LibreOffice 7.4 alfa1) je zabeleženih 920 objav spremembe kode v skladišču kode ter odpravljenih 220 napak. Preverite poslovenjene opombe ob izdaji, kjer najdete vse podrobnosti o novostih, vključenih v to različico LibreOffice.

LibreOffice 7.4 beta1 lahko prenesete s tega mesta za sisteme Linux, macOS in Windows, namestite pa jih lahko vzporedno s standardno izdajo.

Če naletite na kakršno koli težavi s to predizdajo, o težavah poročajte v sistemu Bugzilla (potrebujete le veljaven e-poštni račun, da ustvarite nov račun).

Za pomoč se lahko obrnete neposredno na ekipo QA v kanalu QA na IRC ali prek Telegrama.

LibreOffice je projekt skupnosti prostovoljcev, izjemno veseli bomo vaše pomoči.

Veselo preizkušanje!

Download it now!


Wednesday
15 June, 2022


face

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 7.4 Beta1 is available for testing!

LibreOffice 7.4 will be released as final in mid August, 2022 ( Check the Release Plan for more information ) being LibreOffice 7.4 Beta1 the second pre-release since the development of version 7.4 started at the end of November, 2021. Since the previous release, LibreOffice 7.4 Alpha1, 920 commits have been submitted to the code repository and 220 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 7.4 Beta1 can be downloaded from here for Linux, macOS and Windows, and it can be installed alongside the standard version.

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

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

LibreOffice is a volunteer-driven community project and your help is much appreciated.

Happy testing!!

Download it now!


Thursday
09 June, 2022


face

General Activities

  1. LibreOffice 7.2.7 was released on May, 12
  2. LibreOffice 7.3.3 was released on May, 5
  3. Adolfo Jayme Barrientos made some minor improvements to Help text readability
  4. Seth Chaiklin improved the help for vertical positioning of objects, Print preview, Options tab for Frame/Object/Image, Outline bar for Impress and anchoring. He also improved many LibreOffice UI strings and tips of the day
  5. Ilmari Lauhakangas (TDF) added right-to-left support to Help
  6. Alain Romedenne improved the correctness of Basic help pages and documented the new Resize() and Center() methods for ScriptForge’s SF_Dialog
  7. flywire cleaned up ScriptForge examples in Help
  8. Rafael Lima documented the new CompactLeft and CompactUp methods from the Calc service in ScriptForge
  9. Olivier Hallot (TDF) improved the help pages for Basic’s Shell function, CSV import filter, Direct SQL and colour palettes
  10. Miklos Vajna (Collabora) continued working on colour themes in OOXML documents and content controls for Writer
  11. Jean-Pierre Ledure worked on the ScriptForge library
  12. Tünde Tóth (NISZ) fixed a bug that made Autorecovery option always save every 10 minutes regardless of the minute setting
  13. Dennis Francis and Szymon Kłos (Collabora) worked on LOKit improvements
  14. Vasily Melenchuk (CIB) fixed an issue with numbering styles in imported DOCX files and fixed some regressions
  15. Eike Rathke (Red Hat) fixed issues with Calc’s AGGREGATE and COUNTIFS functions, counting times with SUM, made array formulas more robust and made some Calc optimisations. Together with Mike Kaganski he fixed an issue where copying and pasting a sheet with a chart resulted in incorrect chart data ranges
  16. Bartosz Kosiorek added support for several EMF+ graphics features
  17. Tomaž Vajngerl (Collabora) worked on chart code refactoring and polished the Calc sparkline feature
  18. Regina Henschel fixed issues with curved arrow shapes and arcs
  19. Julien Nabet changed TIFF image handling to be done with libtiff library together with Caolán McNamara
  20. Jim Raykowski made many polishing fixes to Navigator, including to display of hyperlinks and media objects
  21. Andreas Heinisch made it so LibreOffice (non-native) file dialog shows directory path upon hover in the Places list, fixed Basic bugs with case-sensitivity and VBA parsing and made page style handling more robust
  22. László Németh continued improving change tracking, fixed bugs related to Writer footnotes and an issue with saving recovery information for password-protected XLSX files. He also added options for skipping hyphenation with short words and the last word in a paragraph
  23. Xisco Faulí (TDF) fixed many issues with exporting PDF form elements, created a script to help manage crash reports and fixed some crashes. He also added a couple of dozen automated tests
  24. Heiko Tietze (TDF) improved the UI for Calc’s sparkline feature, made list indent and level shortcuts consistent and made some other UI improvements
  25. Armin Le Grand (allotropia) worked on Advanced Diagram support
  26. Michael Stahl (allotropia) polished the curl-based webdav implementation, made it so JVM UNO components can be run out-of-process and made crash fixes, regression fixes and cleanups
  27. Attila Bakos (NISZ) continued polishing text in

Friday
03 June, 2022


face

Introducción

LibreOffice Base no es un sistema gestor de bases de datos (SGBD) al uso. La mayoría de los SGBD solamente tienen un tipo de base de datos y funcionan solo con un motor de base de datos determinado. LibreOffice …


Wednesday
01 June, 2022


face

Writer already had rich text and checkbox content controls: a new way to set properties on a piece of text, primarily for form filling purposes. This feature now gained 3 additional types: dropdown, picture and date picker types. This improves compatibility with the DOCX format: there are now 5 inline content control types we can now import.

https://share.vmiklos.hu/blog/sw-content-controls2/feature.png
Figure 1. Word-style inline content controls in Writer.

First, thanks to NGI DAPSI who made this work by Collabora possible.

https://share.vmiklos.hu/blog/sw-content-controls/eu.png
Figure 2. This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871498

Motivation

Word users expect to be able to import their document to Writer and experience a matching feature set: form filling is not an exception. Word provides several content control kinds (inline, block, row and cell content controls), this project focuses on inline ("run") content controls.

In the scope of inline content controls, the above linked blog post already described the rich text and checkbox types. In this post, we’ll focus on the new dropdown, picture and date content controls.

You might wonder why content controls are useful, since Writer already has form controls and fieldmarks, which provide something similar. Here are some benefits:

  • Dropdown content controls have a list of dropdown items. Each item is a display-text and value pair, allowing to differentiate between a human-readable string and a machine-readable value. Fieldmarks only handled (machine-readable) values, resulting in document text different from Word.

  • Picture content controls allow the author of a form to pre-format the image before the filler of the form inserts the actual image. Writer already had placeholder fields for images in the past, but that was just text, allowing image format only after insertion of the actual image.

  • Date content controls were emulated with Writer fieldmarks in the past, which created trouble during export, since Word itself doesn’t have a date form-field.

Results

The feature consists of menu items to insert dropdown/picture/date content controls, and then you can interact with the inserted content controls or with their properties:

https://share.vmiklos.hu/blog/sw-content-controls2/menu.png
Figure 3. Menu items to insert drop-down, picture and date content controls.

Drop-down content controls show a dropdown button when you’re inside the content control:

https://share.vmiklos.hu/blog/sw-content-controls2/dropdown.png
Figure 4. A drop-down content control.

This is similar to dropdown fields, just allows display-text and value pairs, not limited to just values.

Picture content controls contain a single as-character image, but you can interact with them: clicking on the content control opens the file open dialog to provide a replacement for the placeholder:

https://share.vmiklos.hu/blog/sw-content-controls2/picture.png
Figure 5. Picture controls.

And these content controls can be saved to ODT and DOCX.

There is also a content control properties dialog, which allows setting if the content controls are in placeholder mode or not:

https://share.vmiklos.hu/blog/sw-content-controls2/properties.png
Figure 6. Content control properties.

It has additional widgets for dropdowns. There is UI to create, update or delete these list items:

https://share.vmiklos.hu/blog/sw-content-controls2/properties-inner.png
Figure 7. Content control properties inner UI for list items.

How is this implemented?

If you


Thursday
19 May, 2022


face

Added something to track the org.freedesktop.appearance.color-scheme property as used by the GNOME 42 Dark Style Preference setting. Screencast recorded with the new iteration of GNOME's screen built-in recorder which is quite snazzy.


face

Have you received “A polite ping, still working on this bug?” message on one of your Gerrit submissions? You can simply send an arbitrary reply to avoid the patch being abandoned within a month. Here we discuss more about Review bot, which is one of the QA (Quality Assurance) tools for the LibreOffice QA team to manage old submissions.

Interacting with the Review bot

You may have received messages from some bots, including Review bot. This bot checks Gerrit to find the older submissions, and abandon the old ones that no one actively work on them.

If it has been several months after the last change on a submission, the bot adds a comment and asks:

A polite ping, still working on this bug?

Then, you can do one of these things, according to your choice:

    1. Reply with whatever you want, and the Review bot will not longer try to abandon your submission. Do this if you want to continue work on the submission.
    2. Mark the patch as “work in progress”. This would be helpful if you want to prevent the bot from monitoring the submission.
    3. Leave it as is. Then, after 1 month your patch will be automatically abandoned with this message:

Abandoned

Abandoning this for the moment due to inactivity. Be aware it can be reopened anytime if you still want to continue working on it. Do not forget to rebase it first.

Even in this case, you don’t have to worry! As the message says, you can simply click on the RESTORE button on the top right of the page to restore the patch and continue working on it.

Please note that if you have restored an old submission, you have to do a re-base to get the latest changes in the LibreOffice code, pushed while your submission was remaining intact. If there is not a merge conflict, you can do this easily by clicking on the REBASE button on the top right of the page. Otherwise, you have to download the patch and resolve the merge conflict manually.

More information

You can find more information about

Also, you can read this previous post on how to use Gerrit code review.


Thursday
12 May, 2022


face

So I enabled support for up to 16384 columns in Calc by default some time ago, but just getting it to work was not necessarily the end of the work. Making Calc have 16 times more columns means that any operation that works on entire columns is suddenly 16 times slower, or even worse. Similarly this could easily lead to 16x more memory used. So the support not only needs to work, but it also needs to be usable.

It theory adding a number of empty columns to the end of a spreadsheet should not make a difference, but in practice it does. With 1024 columns it is not as necessary to ignore those empty columns as it is with 16k, and a lot of the code dates back to the times when Calc supported even fewer colums (256?), where a being little inefficient here or there didn't show. But now it suddently did.

For example, if you protect or hide all unused columns until the end of the spreadsheet, then hitting the right arrow key on the last accessible cell makes Calc check all cells to the right for whether it's possible to go into them. And checking whether a column is hidden requires searching the list of column information, which is not trivial (it's compacted in order not to waste memory). The barely noticeable cost of this with 1024 columns got large enough to cause noticeable delays. Fortunately the ColHidden() function is smart enough to return the first and last column in the compacted range where the flag is equal, the code doing the cursor navigation just up until now didn't bother using that information, but now it needed to do so.

Another example, and that's quite a large topic, is allocating columns. If most of those new columns are not actually used, then it makes sense to allocate them only when needed, right? That will save memory, and it will make things faster too, because there is no need to check those empty columns. That idea got implemented back when this 16k work was started by others, adding e.g. function GetColumnsRange() that clamped the range to the allocated columns, but the problem is that in practice this is not as simple as that.

One of the issues here is let's say the case of selecting an entire row (clicking the row number to the left of the table does that easily) and then hitting Ctrl+B to make the entire row bold. That should not clamp the column range to the allocated columns, because if I later enter something into cells in those columns, I expect that to be bold. But if Calc allocates all columns for this, maybe I do not intend to enter values anywhere else except the first rows, so allocating all columns will be a waste. The solution to this is having default column data. The ScTable class now, besides having a list of allocated ScColumn

Monday
09 May, 2022


face

El Comité Organizador de la Conferencia Latinoamericana de LibreOffice 2022 anuncia que la presentación de propuestas de conferencias y minicursos está abierta hasta el 30 de junio de 2022.

Este evento tiene por objetivo ser un momento de integración …


Friday
06 May, 2022


face

General Activities

  1. Adolfo Jayme Barrientos made many minor improvements to Help text readability
  2. Seth Chaiklin updated the help for Bullets and Numbering toolbar and made several help page refactorings and tweaks. He also improved many LibreOffice UI strings, tips of the day and UI layouts
  3. Ilmari Lauhakangas (TDF) improved the style of code blocks in Help and started making tables mobile-friendly. He also updated the links to the Developer Guide in LibreOffice source code
  4. Alain Romedenne added notes to Help about Basic ‘New’ operator being optional when setting ‘Option Compatible’ and improved Help for ScriptForge. He also improved many LibreOffice UI strings
  5. Olivier Hallot (TDF) documented Writer manual row break in Help, updated Impress menu paths and made several other improvements to Help
  6. Miklos Vajna (Collabora) worked on content controls feature for Writer, continued working on colour themes in OOXML documents, polished the clearing breaks feature and improved the layout XML dump developer feature
  7. Jean-Pierre Ledure worked on the ScriptForge library and made a couple of small fixes to Access2Base
  8. Tünde Tóth (NISZ) finished fixing the handling of embedded and linked media in PPTX files and polished the fix for the old issue with embedded images getting multiplied upon OOXML export
  9. Dennis Francis and Szymon Kłos (Collabora) worked on LOKit improvements
  10. Vasily Melenchuk (CIB) made it so “border between” feature for tables in Microsoft formats is emulated while waiting for proper support to be implemented. He also fixed a text encoding issue with RTF files and made RTF filter faster
  11. Eike Rathke (Red Hat) improved date handling in Calc
  12. Bartosz Kosiorek polished EMF+ graphics implementation and added initial support OfficeArtBlip TIFF format
  13. Tomaž Vajngerl (Collabora) started working on MSO-style data tables for charts and continued working on sparkline support for Calc
  14. Regina Henschel fixed several issues with shapes in OOXML files
  15. Arnaud Versini made some code cleanups
  16. Julien Nabet fixed some TIFF image handling issues, fixed an issue with copying complete rows in Firebird databases, implemented VBA.FormatPercent function and removed an unwanted restriction the field “Width of numbering” in list style dialog. He also made crash fixes and code cleanups
  17. Jim Raykowski made many polishing fixes to Navigator, including to the ordering of items and more precise categorisation
  18. Andreas Heinisch made it so inserting a hyperlink in Calc without being in edit mode uses cell text content as the link text, improved font family handling in Insert Special Character dialog and fixed XLS export of charset used in VBA macros
  19. László Németh continued improving change tracking and made pasting and inserting rows into Writer tables more robust
  20. Xisco Faulí (TDF) made nearly forty improvements and additions to automated tests. He also added INT formula support into Writer tables for DOCX interoperability, fixed colour problems with bullet points and underlines in PPTX files and made a crash fix
  21. Heiko Tietze (TDF) fixed a layout issue in options dialog
  22. Armin Le Grand (allotropia) worked on Advanced Diagram support
  23. Ilmari Lauhakangas (TDF) and Timur Gadzo created a

Thursday
05 May, 2022


face

Da oggi, LibreOffice è disponibile anche sul sito di SourceForge Berlino, 4 maggio 2022 – LibreOffice 7.3.3 Community, la terza minor release della famiglia LibreOffice 7.3, rivolta agli appassionati di tecnologia e ai power user, è disponibile per il download da https://www.libreoffice.org/download/. A partire da questa telease, LibreOffice può essere scaricato da SourceForge: https://sourceforge.net/projects/libreoffice/files/. Logan […]


face

LibreOffice ahora también está disponible en SourceForge

Berlín, 4 de Mayo de 2022 – LibreOffice 7.3.3 Community, la tercera corrección de errores de la familia LibreOffice 7.3, enfocada en entusiastas de la tecnología y usuarios avanzados, está disponible para descarga …


face

If you have started your journey to become an experienced developer, you already know that you have to describe what you have done when you change the code and submit it to be merged in the master branch. In git and many other source code management systems, this description is called a commit message.

The commit message has a title, and can have a detailed description. You should separate the description from the title by adding a blank line after the title.

Why it matters to write a good commit message

Some may argue that the code itself is the most important thing, and you should provide a readable clean code. This is true, and you should care most for the code. But, on the other hand, when you are working on a big project with hundreds of developers, it is also important to write descriptive commit message that is easy to read for other developers who work on the same project.

In order to be able to search and find the relevant historical information about different aspects in the code, a good way would be searching in the commit messages. You can invoke:

$ git log

You can press “/” for search, then type a search phrase. By pressing “Enter”, you will get a match, and then the next match by pressing the key “n”. This happens if matches are found.

This is only possible if you and others have previously provided good information on what each change does, providing enough details and keywords, so that others could be able to search efficiently.

If you have added your changes to the staging area of the git, then you can invoke this command to commit the changes.

$ git commit

You should provide a good title and description. Here’s how.

Information Beyond the Commit Message

Git commits also have other information, that are automatically generated. For example, the “Author” field comes from your git settings. You should use your complete first name and surname, and a valid email. Your timezone also comes from your system settings.

The Change-Id is generated when you commit, and it is used to identify a submission across different patch sets. Gerrit adds “Reviewed-on”, “Reviewed-by” and “Tested-by” fields automatically. For example, consider this commit:

Author: Miklos Vajna <vmiklos@collabora.com>
Date: Wed Apr 27 20:12:52 2022 +0200

sd theme: add PPTX import for shape fill color effects

This is always direct formatting, so FillProperties::pushToPropMap()
always has the needed info at hand.

Change-Id: I3317b618e0e8bb7688d0f0fbfe4546e2e8b4e947
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133525
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>

Use an informative title with 50 characters or less

You should describe what you have done in a commit in the commit title. The suggested maximum length for the commit title is 50 characters. Also, you should limit the amount of work in a single commit to only one thing. There are many reasons for that; one of them is to be able to roll back


Tuesday
03 May, 2022


face

Writer now has the start of content controls: a new way to set properties on a piece of text, primarily for form filling purposes. This feature improves compatibility with the DOCX format: inline content control types "rich text" and "checkbox" are the first two types we can now import.

https://share.vmiklos.hu/blog/sw-content-controls/feature.png
Figure 1. Word-style inline content controls in Writer.

First, thanks to NGI DAPSI who made this work by Collabora possible.

https://share.vmiklos.hu/blog/sw-content-controls/eu.png
Figure 2. This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871498

Motivation

Word users expect to be able to import their document to Writer and experience a matching feature set: form filling is not an exception. Word provides several content control kinds (inline, block, row and cell content controls), this project focuses on inline ("run") content controls.

In the scope of inline content controls, the plan is to support rich text, checkbox, dropdown, picture and date content controls. This blog post presents the already implemented rich text and checkbox types.

You might wonder why content controls are useful, since Writer already has form controls and fieldmarks, which provide something similar. Here are some properties of content controls, which make them incompatible with field-based fillable forms or form controls:

  • inline content controls can’t span over multiple paragraphs, while this is allowed for fieldmarks (bookmark-based fields)

  • content controls must be well-formed XML elements, this allows nesting (while Writer fields can’t be nested), but does not allow the start/end position to be a random place in the document (while this is allowed for fieldmarks, which have separate XML elements for start and end)

  • content controls just have a set of properties, while fieldmarks are supposed to have a field command and a result (with a separator between the two)

  • content controls can contain rich text (full set of character formatting), while Writer fields can only have one character formatting (e.g. half of the field can’t be bold)

Results

The feature consists of menu items to insert rich text or checkbox content controls, and then you can interact with the inserted content controls:

https://share.vmiklos.hu/blog/sw-content-controls/menu.png
Figure 3. Menu items to insert rich text and checkbox content controls.

Rich text content controls simply show an indicator when you’re inside the content control:

https://share.vmiklos.hu/blog/sw-content-controls/rich-text.png
Figure 4. A rich text content control.

This is similar to input fields, just allows rich text content, not limited to plain text.

Checkbox content controls contain a single character, but you can interact with them: clicking on the content control toggles the checked state of the checkbox:

https://share.vmiklos.hu/blog/sw-content-controls/checkbox.png
Figure 5. Checkbox content controls.

And these content controls can be saved to ODT and DOCX.

How is this implemented?

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

As usual, the high-level problem was addressed by a series of incremental commits:


Monday
02 May, 2022


face

Quando ho iniziato a scrivere articoli, prima come semplice appassionato e poi come giornalista, i miei “ferri” del mestiere erano una Lettera 22 e una risma di carta. Parliamo, ovviamente, di un’altra epoca, precedente all’introduzione del personal computer e dei software per la scrittura. Nel 1981, l’arrivo del PC ha cambiato tutto, anche se i […]


Friday
29 April, 2022


face

Za: Zakonodajalci v Evropski uniji

Kp: Državljani Evropske unije

Univerzalna pravica za prosto izbiro operacijskega sistema, programja in storitev

Zasnova programske opreme je ključnega pomena za okolje in trajnost izdelkov in strojne opreme. Sistemi in storitve proste programske opreme omogočajo ponovno uporabo, spremembo namembnosti in medopravilnost naprav. Univerzalna pravica do proste izbire operacijskih sistemov, programske opreme in storitev je ključnega pomena tudi za bolj trajnostno digitalno družbo.

Nenehna digitalizacija infrastruktur in storitev v zasebnem, javnem ali poslovnem okolju je povezana z naraščajočim številom elektronskih naprav, povezanih z internetom. Za proizvodnjo mnogih naprav je potrebnih več energije in naravnih virov, kot jo te porabijo v celotni življenjski dobi. Hkrati vse preveč teh naprav propade in jih ni mogoče popraviti preprosto zato, ker programska oprema preneha delovati ali se ne posodablja več.

Ko vnaprej nameščena programska oprema uporabnikom prepreči nadaljnjo uporabo strojne opreme, omejevalni modeli lastništva uporabnikom preprečujejo, da bi si sami pomagali do daljše uporabe svojih naprav. Omejitve segajo od fizičnega zaklepanja strojne opreme do tehnične nejasnosti z uporabo lastniške programske opreme in do pravnih omejitev prek licenc programske opreme in licenčnih pogodb za končne uporabnike. Na ta način proizvajalci pogosto preprečijo popravljanje, dostopnost in recikliranje naprav. Celo z nakupom kupci pogosto ne postanejo lastniki svojih naprav, zato svojimi napravami ne morejo početi, kar hočejo. Če ne moreš namestiti želenega programja na lastno napravo – je ne poseduješ.

Mi, podpisniki tega odprtega pisma,

  • prepoznavamo, da prost dostop do strojne in programske opreme določa, kako dolgo ali kako pogosto se lahko naprava uporablja ali ponovno uporablja;
  • izjavljamo, da sta podaljšana življenjska doba in ponovna uporabnost naših naprav neizogibna za bolj trajnostno digitalno družbo.

Zato pozivamo zakonodajalce po vsej Evropi, da izkoristijo zgodovinsko priložnost in omogočijo bolj trajnostno uporabo elektronskih izdelkov in naprav z univerzalno pravico do namestitve in izvajanja poljubne programske opreme na vsaki napravi. V ta namen zahtevamo naslednje:

Uporabniki imajo pravico prosto izbrati operacijske sisteme in programje, ki se izvajajo na njihovih napravah

Naši tablični računalniki, telefoni in druge povezane naprave so računalniki splošnega namena. Zamenjava programske opreme in operacijskih sistemov na teh napravah omogoča, da podaljšamo začetno življenjsko dobo naprave in v celoti izkoristimo strojno opremo le-te. Za možnost ponovne uporabe in spremembe namembnosti naših virov na ustvarjalen in trajnosten način potrebujemo univerzalno pravico za namestitev in razvoj poljubnih operacijskega sistema in programske opreme, ki si jih želimo, na vsako od naših naprav. Preprečiti je treba vse pravne, tehnične ali druge ovire za ponovno uporabo teh naprav za poljuben namen.

Uporabniki imajo pravico prosto izbrati med ponudniki storitev, s katerimi povezujejo svoje naprave

Uporabniki morajo imeti prosto izbiro ponudnikov storitev, povezanih s programsko opremo, kar pomeni, da lahko uporabljajo napravo enega proizvajalca s storitvijo drugega. Številni povezani odjemalci danes postanejo neuporabni samo zato, ker njihove spletne storitve prenehajo


face

La progettazione del Software è fondamentale per l’ecocompatibilità e la sostenibilità dei prodotti e dell’hardware. I sistemi e servizi di Software Libero permettono il riuso, il ricondizionamento e l’interoperabilità dei dispositivi. Il diritto universale di scegliere liberamente i sistemi operativi, i programmi e i servizi è cruciale per una maggiore sostenibilità nella società digitale. Ai […]


Wednesday
27 April, 2022


face

A: Legisladores de la Unión Europea

En copia: Ciudadanos de la Unión Europea

El derecho universal a elegir libremente sistemas operativos, software y servicios

El diseño del software es crucial para el ecodiseño y la sostenibilidad de los productos y


Tuesday
26 April, 2022


face

LibreOffice supports many file formats, and among them are some raster and vector image formats from Microsoft. Metafile formats WMF, EMF and EMF+ are among the vector formats usable in Microsoft products, and also in LibreOffice. Here we discuss the implementation of the  support for these file formats in LibreOffice.

We call these file formats metafiles, as they are means of storing drawing commands that are calls to the Windows API that draws shapes and text on the screen. It is possible to replay these metafiles to have a graphical output in an appropriate context.

It is possible to create complex shapes using metafiles. For example, if you take a look at the odk/examples/basic/forms_and_controls folder in the LibreOffice source code, you will see some nice examples. Here is one of them: A delicious burger created using vector primitives.

berger.wmf

berger.wmf

The oldest metafile format is WMF, which goes back to Windows 3.1 during 1990s, but EMF and EMF+ are newer formats and support many new features.

LibreOffice can open these file formats. It is also possible to use them as the images inside another formats. For example, you can have WMF inside a DOC or DOCX file, or in native ODT format of LibreOffice.

Code Structure for Metafile Support

The emfio module of LibreOffice handles reading of the metafile records. It essentially translates these records into the mataactions. Then, vcl and drawinglayer display them. You can take a look at emfio/source/reader to see the main source files, wmfreader.cxx and emfreader.cxx in which rely on mtftools.cxx.

An important class which is used here is the GDIMetaFile class, which is described in the vcl/README.GDIMetaFile.md as:

The GDIMetaFile class reads, writes, manipulates and replays metafiles via the VCL module.

A typical use case is to initialize a new GDIMetaFile, open the actual stored metafile and read it in via GDIMetaFile::Read( aIStream ). This reads in the metafile into the GDIMetafile object – it can read in an old-style VCLMTF metafile (back in the days that Microsoft didn’t document the metafile format this was used), as well as EMF+ files – and adds them to a list (vector) of MetaActions. You can also populate your own GDIMetaFile via AddAction(), RemoveAction(), ReplaceAction(), etc.

Once the GDIMetafile object is read to be used, you can “play” the metafile, “pause” it, “wind forward” or “rewind” the metafile.

Other than reading, LibreOffice can write metafile formats as the output. For the output filter, vcl/source/filter/wmf is the place to look at.

Tools for Working with Metafile Formats

As the metafile formats are binary files, you will need tools to be able to work with these formats. We discuss three useful tools among others: mso-dumper, limerest and mtf-demo.

Mso-dumper

The mso-dumper is an in-house developed tool created and used by LibreOffice developers to dump information from the Microsoft binary formats. It reads the binary files WMF, EMF, EMF+ in addition to DOC, PPT, XLS and other


face

La Conferencia Latino Americana de LibreOffice se llevará a cabo los días 25 y 26 de agosto de 2022, en el campus de la Universidad Católica de Brasilia en Taguatinga – DF.

El evento tiene como objetivo reunir a …


face

Gracias a la generosidad de nuestro amigo Omar Bautista González, profesor de Psicología en la Universidad Autónoma de Santo Domingo, es que podemos ver una simulación computarizada como metodología de estudio teórico en psicología social. El profesor Bautista ha hecho …

<- Current blog entries