The Document Foundation Planet

 

August 04, 2021

Official TDF Blog

Tender to implement support for editing and creation of a Dynamic Diagram feature (#202108-02)

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

We are looking for an individual or company to implement support for editing and creation of Dynamic Diagrams.

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

The task is to solve the following problem: Our existing “SmartArt” import uses the fallback stream in OOX files (and has some issues). It therefore gives us only the draw shapes that are imported, so we lose the original layout. Additionally, in older file versions we don’t have the cached shapes, and therefore can’t render anything.

The solution we seek, and as such the scope of this tender, is to have a schema driven diagram layout as a core feature. This should be interoperable with OOX (at least MSO2016) and have suitable extensions for ODF. It should layout interoperability, and allow editing of the underlying data, and selection of a schema.

The tender consists of the packages

A) Import and export in ODF and OOXML

  • load/save diagram data (layout and data model)
  • show the diagram in a cross-platform and pixel-perfect way
  • this should solve the issues from tdf#106547
  • provide automated test for the diagram layout mechanism

B) Creation of new diagrams within all modules, at least Writer and Draw/Impress

    • the solution should provide a couple of exemplary layouts such as a hierarchy with rectangle for organizational charts, for example, and linear as well circular arrangements of shapes to illustrate processes
    • values should be entered by the user with a floating widget presenting a bullet list that describes the hierarchical position

  • consider accessibility at all UI parts

C) Modification of existing diagrams

  • It must be possible to modify the data model later and add or delete content to the diagram; ideally, the floating input widget opens when the diagram is selected

D) Sharing of diagram layouts via extensions

  • Diagrams are generated from complex XML layouts, which should be provided and shared by the community

E) Document the Dynamic Diagram feature

and optionally

F) Provision of an interactive diagram layout tool

  • In coordination with the UX/design team an user interface should be implemented that simplifies creation of XML layouts

The following two bugs are amongst the relevant ones for this tender:

Support for Editing and Creation of SmartArt: https://bugs.documentfoundation.org/show_bug.cgi?id=37932

Auto-Layout for flowcharts and automatic flowcharts from Calc / Excel: https://bugs.documentfoundation.org/show_bug.cgi?id=92902

Further information can also be found in these two blogposts:

Note: There was recent effort on the layouting side. While this is better than 2-3 years ago, it still requires much work. Especially the editing functionality is just a proof of concept.

All technology standards of relevance, as well as their targeted versions for this tender should be declared or defined in the offer’s description of implementation (e.g. name and version of the cryptographic API on the respective operating systems).

A key item of the deliverables for this tender, and therefore also a decision criteria – besides qualification, references, price, and completeness of fulfilment – is extensive documentation about the approach chosen to implement the above items, covering more than just the pure implementation. We expect bidders to provide documentation on both the code and the non-code parts of this tender, e.g. methodology, structure and technical aspects. The Document Foundation will publish this under a free and open source license and make it available to the general public. Another criteria for the evaluation of the bids will be the description of the required test activities and the delivery of (automated) tests supporting work items for the described tender implementation or feature specification.

Required skills

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

Other skills

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

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

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

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

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

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

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

TDF is looking forward to receiving your applications for one or more of the aforementioned tasks, your financial expectations and the earliest date of your availability, via e-mail to a committee at tender20210802@documentfoundation.org no later than September 20, 2021.

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

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

 

by Mike Saunders at August 04, 2021 07:51 AM

August 03, 2021

Michael Meeks

2021-08-03 Tuesday

  • Up early, poked at some code; call with Pranam, then Kendy, then Cor, lunch. Bit of hackery on a performance regression, more calls.
  • Liked Matthew's post on Copilot - sharing ideas even those codified in neural networks (repeatedly counting the number of lines in an in-lined, C, double linked list manipulation method to check it used to be some sort of fun); so I tend to agree, that is unless we train a neural network to type out whole programs of existing (C) FOSS code verbatim: also possible, but not proposed. Looking forward to having time to play with CoPilot myself.
  • Chat with Gokay.

August 03, 2021 03:40 PM

Official TDF Blog

Tender to implement autoupdater (#202108-01)

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

We are looking for an individual or company to implement an autoupdater for LibreOffice.

Currently, LibreOffice can notify the user about a new version, but download and installation require manual action by the user, it is not automated. With plans of a “rolling release” model, that results in more frequent updates, e.g. biweekly or monthly, we want to improve this system.

Mandatory requirements

  • The solution has to work on all currently LibreOffice-supported Windows, Linux and macOS versions.
  • The implemented solution should not break the MSI-based LibreOffice installation set.
  • The implemented solution cannot solely rely on app stores autoupdaters, as The Document Foundation does not provide binaries in app stores currently.
  • The work has to be developed on LibreOffice master, so that it will be released in the next major version.
  • The implementation has to be provided with extensive documentation, about the approach chosen to implement the above items. We expect bidders to provide documentation on both the code and the non-code parts of the implementation, e.g. methodology, structure and technical aspects.

Optional items

The proposed solution might include some of the items of the following list, which is neither complete nor exhaustive, and is presented as a set of examples. These items are not mandatory to the completion of the tender, but might favor the granting of the tender in case of ex aequos, after checking that mandatory requirements are fulfilled:

  • Achieve partial and/or delta downloads: in order to optimize the bandwidth of the users, the implementation might proceed with the sole download of the whole changed files (partial downloads) or chunks of changed files or the whole package (delta downloads).
  • The implementation might keep track of other languages than English that the user might have installed and currently uses, and implement the download of the respective updated language packs, as well as of eventual offline help packages.
  • The implementation might verify the compatibility and/or update any extensions the user might have installed and currently uses.
  • The implementation is ready for the integration with the app stores’ installers/updaters.

Additional considerations

The choice of technology or technologies used is up to the bidders. Some of the available options, with none of them being a sole strict requirement, are the following:

The idea behind this tender is described in the following required tickets, whereas the implementation we seek for does not mandate a specific technology to be used, even if the tickets suggest otherwise:

The Document Foundation will publish the related documentation under a free and open source license and make it available to the general public.

Required skills

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

Other skills

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

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

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

Bidders will get a preference for including a partner or independent developer who has not been involved in a successful tender before.

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

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

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

TDF is looking forward to receiving your applications for one or more of the aforementioned tasks, your financial expectations and the earliest date of your availability, via e-mail to a committee at tender20210801@documentfoundation.org no later than September 20, 2021.

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

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

by Mike Saunders at August 03, 2021 01:30 PM

LibreOffice project recap: July 2021

Check out our summary of what happened in the LibreOffice community last month…

  • We started July by welcoming allotropia to The Document Foundation’s Advisory Board. Founded in late 2020 with five long-time LibreOffice developers, allotropia’s stated mission is to bring LibreOffice to shine – in as many different shapes and forms as necessary, to serve the modern needs of office productivity software. allotropia was spun off from CIB, another long-time provider of LibreOffice-based products and services (and also a member of the Advisory Board).

  • On the very same day, our documentation team announced the LibreOffice Getting Started Guide 7.1. Covering all LibreOffice modules, from the Calc spreadsheet to the Base database and including chapters on the suite settings as well as macro coding, the Getting Started Guide 7.1 is a valuable companion for organizations that want to deploy documentation on LibreOffice together with the software suite on their offices and also at user’s homes.

  • Meanwhile, we chatted with Tim Brennan Jr. from the Brazilian LibreOffice community. He’s on the Brazilian Portuguese translation and editing team, and recently decided to become a Member of The Document Foundation. Welcome, Tim!

  • Then the Spanish-speaking community held an online meeting with video talks streamed live. The activity was attended by several members, who are recognized for their participation and collaboration in the project.

  • Looking for LibreOffice tutorial videos? We have playlists in English, German and French – but the videos don’t just happen by magic. They’re created by volunteers, so we asked Harald Berger how he makes the German videos. Check it out, and help us to make more!

  • LibreOffice 7.2 is tantalisingly close; it’s due to be released in the middle of this month. We held a Bug Hunting Session for the first release candidate, to identify and squash any last bugs before it goes live.

  • Our LibreOffice New Generation project aims to bring new – and especially younger – contributors into the LibreOffice community. Earlier in the year, we created a flyer for schools and universities, and we’ve sent out printed versions to many people around the world. Now, here’s an alternative design, thanks to Rizal Muttaqin and the Indonesian community!

  • LibreOffice’s documentation team is driven by volunteers around the world. We wanted, we want to say a special thanks to members of the Brazilian Portuguese community, who’ve worked hard to translate and update user guides. So we sent out Open Badges – special, customised badges with embedded metadata, describing their achievements.

  • Our second community interview in the month was with Jackson Cavalcanti Junior, who told us about his work in the documentation project.

  • Release-wise, we had one update in July: LibreOffice 7.1.5 with 55 bugfixes and compatibility improvements.

  • The LibreOffice Conference 2021 is coming up: check out the sponsorship package. The event will run online again this year, due to the ongoing pandemic situation, from September 23 – 25.

  • Just before the end of the month, the documentation team announced another guide: the Draw Guide 7.1. This covers all aspects of the image-editing component of the suite. Great work, everyone!

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 for everyone!

by Mike Saunders at August 03, 2021 12:00 PM

August 02, 2021

Michael Meeks

2021-08-02 Monday

  • Slept poorly, up super-early; quiet time - started chewing the E-mail backlog. Caught up with Kendy, planning call, lunch with the babes, patch review, admin bits.
  • Call with Mert, who has made the online auto-typing benchmark hugely faster; got some nice profiling data from that; lush.
  • Tried to reproduce the family bathroom plumbing problem (having cut a hole in the wall on Saturday pipes) - not reproducible - bother, ordered more plumbing bits - lets see.

August 02, 2021 09:00 PM

Official TDF Blog

LibreOffice Conference 2021: Announcing the logo!

In late June, we started a competition to design the logo for our upcoming LibreOffice Conference 2021. We received 22 submissions with many great ideas – thanks to everyone who took part!

The conference organisers examined every design and ranked them, and today we’re announcing the winner, which is created by Alan Ward. Here’s how it looks:

Alan also provided a simplified monochrome version which can be used on merchandise – stay tuned to this blog for more on that. And here’s what he had to say about the design:

This design is inspired by the theme of a community coming together to share common experience. The hexagonal grid motif suggests networking from a technical and a human standpoint. The viewer’s attention is drawn to the LibreOffice emblem, as a focal point in the center. Colors have been chosen from a palette derived from the official LibreOffice typography, to suit both light and dark backgrounds.

Several versions of the logo have been prepared, to suit different applications. These include both full color and monochrome versions, in both hi and low resolution. High resolution printing process can reproduce thinner lines correctly (eg printed documents, PDF files). However, the use of several colors increases production costs or may not be available, so a simple monochrome may be required as an alternative to full-color. Either color or monochrome hires versions of the logo may easily be adapted as a base for a themed wallpaper.

Low-resolution printing processes such as those used to print T-shirts or engrave metal or wood articles require the use of relatively bold lines to show up correctly on the finished product. This is why a simple design with few elements is most effective in this situation. The use of several colors also increases production costs, so a simple monochrome approach is perhaps best for these applications. The monochrome design can easily be adapted for different colors of the support material (e.g. T-shirts in white, gray, black).

Thanks again to Alan for his design – a magic box of LibreOffice goodies is on his way to him! And thanks to everyone else for their submissions (we’ll get in touch and send you some LibreOffice stickers). Even though we had to choose one design in the end, there were plenty of great and creative ideas, and we really appreciate the input.

Now, onwards and upwards to the conference! Keep an eye on this blog for more updates…

by Mike Saunders at August 02, 2021 11:28 AM

August 01, 2021

Michael Meeks

2021-08-01 Sunday

  • Up lateish, sermon & singing at home, pizza lunch. Slugged and managed to catch the blog up to date.

August 01, 2021 09:00 PM

LibreOffice QA Blog

LibreOffice 7.2 RC2 is available for testing

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 7.2 Release Candidate 2 is available for testing!

LibreOffice 7.2 will be released as final in mid August, 2021 ( Check the Release Plan for more information ) being LibreOffice 7.2 RC2 the fourth pre-release since the development of version 7.2 started at the end of November, 2020. Since the previous release, LibreOffice 7.2 RC1, 90 commits have been submitted to the code repository and 55 bugs have been fixed. Check the release notes to find the new features included in LibreOffice 7.2.

LibreOffice 7.2 RC2 can be downloaded from here for Linux, MacOS and Windows.

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!

by Ilmari Lauhakangas at August 01, 2021 10:24 AM

Bayram Çiçek

Week #7 - #8 - GSoC Weekly Report - 100 Paper Cuts

GSoC progress for week #7 and week #8.

Made research on borders in Writer-Tables

  • Bug: tdf#51665 - Support diagonal borders in TABLEs

In Table Toolbar > Bordes, Writer has 8 border frames for each cell, and has 12 border frames for multiple selected cells. With 2 new borders (Diagonal Left/Right), Writer has 14 border frames.

I made research about how applying borders works in Writer-Tables. Then I started to work on it with sending first patchsets as WIP:: https://gerrit.libreoffice.org/c/core/+/119685

I realized that Calc has diagonal borders feature in both Format > Cells... > Borders tab and (Sidebar Tab) Properties > Cell Appearance. Next week, I will try to understand how diagonal borders work in Calc cells and will try to implement them in Writer-Tables.

Code pointers:

***

Summary of last 2 weeks

Next Week TO-DO

  • Work on Calc diagonal borders and try to implement them in Writer-Tables

by Bayram Çiçek at August 01, 2021 06:04 AM

July 31, 2021

Michael Meeks

2021-07-31 Saturday

  • Up early, replaced defective motion sensitive floodlight with E. Veneered door with J. - using JC's fine clamps. Lunch with David. H. set off with David to be an Assistant Leader at a Lymington Rushmore holiday camp.
  • Made a hole in boxed-section in E's wardrobe to attack a dubious and inaccessible sub-stack; ordered a pair of new air admittance valves, collected from screwfix. Dinner.
  • Dis-connected the bathroom extractor from the sewer vent (some amazing pro-builder design) to kill the smell problem, and fitted an air admittance valve instead.
  • Watch iRobot with the babes in the evening.

July 31, 2021 09:00 PM

July 30, 2021

Michael Meeks

2021-07-30 Friday

  • Up early; packed up and cleaned out the rooms. Drove to Stonehenge & walked from the visitors center, some impressive stones, with lego bumps to hold them together. Lots of bracing wind & rain to invigorate us.
  • Lunch, bid 'bye to the dear relatives; drove to Salisbury to see the " ">famous Salisbury cathedral, ... famous for its 123-metre spire, famous for its clock." as advertised by the heroic Chepiga and Mishkin travel advisors & poisoners.
  • Drove home, M25 grim traffic; lovely to be home.

July 30, 2021 09:00 PM

July 29, 2021

Rizal Muttaqin

LibreOffice 8.0 UI Mockup




Here is a pretty promising UX plan going forward.

- There are multiple tabs for working on documents at once. The good news is that these tabs can be dragged and separated like tabs in a browser

- Start Center can still be accessed at the top right. In fact, you don't have to close all documents like before to access the Start Center

- The traditional menus (File, Edit, View etc.) can still be accessed via the dropdown in the Menu tab. This menu tab itself is like the main menu in MS Office which provides the main commands such as print, document properties and the like.

- You can keep using the standard/classic/traditional interface by accessing the shirt image icon on the top right.

- There is a global search tool that has the function of providing quick access to various available commands such as HUD or Tell Me, this global search tool can be used to find recent files and help content as well.

- Tabbed UI Notebookbar can be collapsed so that only the tabs remain with the ^ icon on the top right.


Of course all of this would only be possible if more and more talented and timely people joined in to contribute, and this post doesn't really represent the LibreOffice design team at all. We always lack people who want to help

Join now !!!.




by rizmut (noreply@blogger.com) at July 29, 2021 11:32 PM

Official TDF Blog

Fixing an Interoperability Bug in LibreOffice: Missing Lines from DOCX (part 1/3)

By Hossein Nourikah, Developer Community Architect at The Document Foundation

In LibreOffice, interoperability is considered a very important aspect of the software. Today, LibreOffice can load and save various file formats from many different office applications from different companies across the world. But bugs are inevitable parts of every software:there are situations where the application does not behave as it should, and a developer should take action and fix it, so that it will behave as it is expected by the user.

What if you encounter a bug in LibreOffice, and how does a developer fix the problem? In these series of articles, we discuss the steps needed to fix a bug. In the end, we will provide a test and make sure that the same problem does not happen in the future.

The article is presented in three parts:

  1. Understanding the Bugs and QA
  2. Developing a Bug Fix
  3. Writing the Tests and Finishing the Task

This blog post is the first part.

1. Understanding the Bugs / QA

Bugs can be found in any software and in a broader view, every technological product. There are situations that a system behaves in a way that the user does not like or expect, and then the engineers come in, take action and fix that. It is proven that no software can be completely bug-free, because there is no exact way to describe all the aspects of a software, even mathematically using formal methods.

Although we can not avoid the bugs completely, we can improve the situation. The important thing here is to document these bugs, reproduce them using sample documents, investigate the cause(s), and hopefully fix them as soon as possible while considering the priority. The whole process of dealing with the bugs and improving the quality of the software is is called: “Quality Assurance”, or simply “QA”.

You can take a look at LibreOffice Wiki QA section and ask QA questions in the IRC channel #libreoffice-qa on the Libera.Chat network connect via webchat

1.1. Bug Report

So, you have encountered a problem in the LibreOffice! In this case, first of all you should try to report the bug to Bugzilla. If a bug is not recorded in Bugzilla, there is a little chance that it will be fixed.

So, everything starts with a bug report in TDF’s Bugzilla. A detailed explanation of what a good bug report should contain is available in the TDF Wiki: https://wiki.documentfoundation.org/BugReport

In short, a good bug report should have suitable summary for the problem, appropriate description and specific components/hardware/version for the context of the problem. Steps to reproduce the bug are important parts of every report, because a developer should be able to reproduce the bug in order to fix it.

The bug reporter should carefully describe the “actual results” and why it is different from the “expected results”. This is also important because the desired software’s behaviour is not always as obvious as it seems to be for the bug reporter.

Let’s talk about a regression bug that is recently fixed. The “NISZ LibreOffice Team” reported this bug. The National Infocommunications Service Company Ltd. (NISZ) has an active team in LibreOffice development and QA.

This is the bug title and description provided by the NISZ LibreOffice Team:

Bug 123321 – FILEOPEN | DOC, missing longer line when saved in LO (shorter line remains)

https://bugs.documentfoundation.org/show_bug.cgi?id=123321

Description:
When the attached original document gets saved in LO as doc the middle line gets its length resized.

Steps to Reproduce:

  1. Open the attached doc in LO.
  2. Save it as doc.
  3. Reload.
  4. Notice the changes.

Actual Results: The middle arrow gets smaller.
Expected Results: It should stay the same size even after saving in LO.
Reproducible: Always
User Profile Reset: No

Every bug has a number associated to it, and at TDF Bugzilla, it is referred to by its number, like tdf#123321.

1.2. Bug Confirmation

After a bug is reported, it is needed that someone else check and see If it is reproducible or not. If so, the bug is then confirmed and its status will be set to “New”. In this case, a user named Timur from the QA team of volunteers has confirmed this bug. It is needed that someone else other than the original bug reporter confirms the bug report.

Here, the bug reporter has provided several examples:

Attachments

  • The original file (39.50 KB, application/msword)
  • The saved file. (24.00 KB, application/msword)
  • Screenshot of the original and exported document side by
    side in Writer. (298.50 KB, image/png)
  • Minimized test document in docx format (19.66 KB,
    application/vnd.openxmlformats-officedocument.wordprocessingml.document)

Opening the first file, we see that it contains several shapes. 4 ellipses, 2 diagonal lines, and a vertical line. But if we look closely, we find out that the vertical line actually consists of 3 different vertical lines. This can be understood by try selecting the line, and then pressing the tab to select the other lines.

The Shapelinelength_min.docx only contains 3 overlapped vertical lines (the overlap is not important).

  • First one on the top with the length 0.17″ (Verified in Word 2007)
  • Second one in the middle with the length of 1″ (Verified in Word 2007)
  • Third one at the bottom with the length of 2.77″ (Verified in Word 2007)

When you save it in LibreOffice and reload it, the first and the third vertical lines disappear, but if you select the second one (the only visible after save and reload), you can select the two other lines by pressing “tab” button. If you look at the size of these two lines, you will see that both have the length of 0″.

By opening the examples, saving and reloading them, we can verify that the bug is present even in the latest master build.

Images showing the bug

(Good)

(Bad)

Figure 1. The visible lines in the middle become smaller after save and reload

1.3. Bisect / Bibisect

Regression bugs are special kinds of bugs. They describe a feature that was previously working well, but at some point a change in the code has caused it to stop working. They are source of disappointment for the user, but they are easier to fix for the developers compared to other bugs! Why? Because every single change to the LibreOffice code is kept in the source code management system (Git), it is possible to find that which change actually introduced the bug.

Git has a special tool for this purpose, which is call bisect. It uses a binary search to find the commit that introduced the bug. But for LibreOffice which is a huge piece of software consisting of roughly 10 million lines of code, this can take a lot of time. So, a trick is used here: bisecting with the binaries! If you have access to every built LibreOffice for the commits, you can use git bisect command to find the source for problem in a very short time: This is called bibisect!

A very detailed description is on the wiki: https://wiki.documentfoundation.org/QA/Bibisect

Aron Budea from Collabora Productivity Ltd’s core engineering team did the bibisect, and now we know the exact commit that caused the problem:

Bibisected to the following commit using repo bibisect-win32-6.0.

https://git.libreoffice.org/core/+/d72e0cadceb0b43928a9b4f18d75c9d5d30afdda

Watermark: tdf#91687 correct size in the .doc

Export:
* Watermarks saved using Writer were very small in the MSO.
  Export fUsegtextFStretch property in the Geometry Text
  Boolean Properties.
* tdf#91687: SnapRect contains size of Watermark after rotation.
  We have to export size without rotation.

Import:
* When import set height depending on used font and width.
  Text will keep the ratio. Remember the padding for export.

* added unit test
* introduced enum to avoid magic numbers for stretch and best fit
  properties.

Change-Id: 
I3427afe78488d499f13c543ca401c096161aaf34
Reviewed-on: 
https://gerrit.libreoffice.org/38979
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Andras Timar <andras.timar@collabora.com>

This bug is a regression. The DOCX import/export was working well before this commit, but after that, it doesn’t work: Good catch!

In the second part of this series, we will talk about how we can create a fix for the bug.


Hossein Nourikhah is the Developer Community Architect at the The Document Foundation (TDF), the non-profit behind LibreOffice. If you need assistance getting started with LibreOffice development, you can get in touch with him:

E-Mail: hossein@libreoffice.org

IRC: hossein in the IRC channel #libreoffice-dev on the Libera.Chat network connect via webchat

by Mike Saunders at July 29, 2021 10:48 AM

July 25, 2021

Roman Kuznetsov

Hamsters QA team are trying to decrease a number of unconfirmed bug reports in LibreOffice's Bugzilla right now


I found an interesting Russian site and Telegram channel where newbies QA try to get some experience in QA process for free. Its name is Хомячки (Hamsters). You can ask admins to create a group for testing of anything and if someone want they will test your software (mobile, web, desktop or something) for you.

I asked there if someone want to test LibreOffice and many people said yes. So, today we have the group of Russian newbies QA who are triaging bug reports in our Bugzilla. We have a goal - to have minimal number of unconfirmed bug reports in end of August 2021 as possibly.

I hope it will be an excellent experience for Russian newbies QA and LibreOffice will get a big help in its QA process.

by Roman Kuznetsov (noreply@blogger.com) at July 25, 2021 12:14 PM

July 22, 2021

Marius Popa Adrian

Firebird 4.0 Docker has been released with images for AMD64, ARM64 and ARM/V7

Firebird 4.0 Docker has been released with images for AMD64,  ARM64 and ARM/V7. New arm images can be used natively on Raspberry Pi , Apple Silicon and Amazon Graviton instances (or any docker host that supports arm).

by Popa Adrian Marius (noreply@blogger.com) at July 22, 2021 02:08 PM

Miklos Vajna

Calc buttons with macros: better XLSX support

Embedding macros to Calc documents and invoking them by clicking on buttons is a common use-case. There was also decent support for importing these from XLSX (XLSM to be precise), but the export side was not on par with the binary XLS export.

Calc now got a series of incremental improvements to map our form controls (buttons in particular) to OOXML’s form controls, especially when macros are assigned to such buttons.

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

Motivation

Excel has both form controls and ActiveX controls, and tdf#106181 XLSX export: output form controls last year started adding support for form control export to XLSX.

Hoping that this will be mostly shared drawingML export code fixing (benefiting DOCX and PPTX as well), it seemed reasonable to assume that we can improve button handling from the "it’s lost" state to "it’s good enough" with some effort.

Results so far

Now Excel shows the button and you can click on it:

https://share.vmiklos.hu/blog/sc-xlsx-button-macro/new.png
Figure 1. Excel consuming our XLSM output with a button and a macro

While it used to just refuse our export result:

https://share.vmiklos.hu/blog/sc-xlsx-button-macro/old.png
Figure 2. Excel refusing bad XLSM output

How is this implemented?

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

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

Want to start using this?

Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF’s next release (7.3).

by Miklos Vajna at July 22, 2021 08:55 AM

July 18, 2021

Bayram Çiçek

Week #6 - GSoC Weekly Report - 100 Paper Cuts

GSoC progress for week #6. (first evaluations week)

New icons for diagonal borders

I wanted to add diagonal borders to the table toolbar > borders but realized that LO doesn’t have diagonal left and diagonal right borders under ./icon-themes/*/svx/res/*. Then on the LibreOffice Design EN telegram channel, I said that these icons are necessary for tdf#51665. Designers wanted me to open a new report dedicated for the icons, so that Rizal Muttaqin(huge thanks for the icons) could draw them. Diagonal border icons will be added for all themes soon.

UI - add diagonal borders in Table toolbar

In order to work on tdf#51665, I added diagonal borders to table toolbar > borders.

one_cell_border_0.png

One cell selected (standard view)


multi_cell_border_1.png

Multiple cell selected

Technical Details

  • Tooltips

Added tooltip “Set Diagonal Left Border” for diagonal LEFT border.
Added tooltip “Set Diagonal Right Border” for for diagonal RIGHT border.

In include/svx/strings.hrc:

#define RID_SVXSTR_PARA_PRESET_DIAGONALLEFT         NC_("RID_SVXSTR_PARA_PRESET_DIAGONALLEFT", "Set Diagonal Left Border")
#define RID_SVXSTR_PARA_PRESET_DIAGONALRIGHT        NC_("RID_SVXSTR_PARA_PRESET_DIAGONALRIGHT", "Set Diagonal Right Border")
  • Icons

Added diagonal Left and Right borders to the svx/inc/bitmaps.hlst:

fr013.png -> Right Diagonal Border
fr014.png -> Left Diagonal Border

#define RID_SVXBMP_FRAME13                          "svx/res/fr013.png"
#define RID_SVXBMP_FRAME14                          "svx/res/fr014.png"
  • Update for loops and switch cases:

Increased all for loops limits by 2. svx/source/tbxctrls/tbcontrl.cxx:

//bParagraphMode should have been set in StateChanged
if ( !bParagraphMode )
    for ( i = 9; i < 13; i++ ) // made -> for ( i = 11; i < 15; i++ )
        mxFrameSet->InsertItem(i, Image(aImgVec[i-1].first), aImgVec[i-1].second); 

Updated mxFrameSet->SetColCount( 4 ); to mxFrameSet->SetColCount( 5 );, because column size should be 5 after adding the diagonal borders to the 5.th and 10.th order:

svx/source/tbxctrls/tbcontrl.cxx:

case 5: break;  // DIAGONAL LEFT

case 6: pTop = &theDefLine;
        nValidFlags |= FrmValidFlags::Top;
break;  // TOP

/*...*/

case 10: break;  // DIAGONAL RIGHT

Add them in correct order:

void SvxFrameWindow_Impl::InitImageList()
{
    aImgVec = {
        {BitmapEx(RID_SVXBMP_FRAME1), SvxResId(RID_SVXSTR_TABLE_PRESET_NONE)},
        {BitmapEx(RID_SVXBMP_FRAME2), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYLEFT)},
        {BitmapEx(RID_SVXBMP_FRAME3), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYRIGHT)},
        {BitmapEx(RID_SVXBMP_FRAME4), SvxResId(RID_SVXSTR_PARA_PRESET_LEFTRIGHT)},
        // diagonal left border
        {BitmapEx(RID_SVXBMP_FRAME14), SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALLEFT)},

        {BitmapEx(RID_SVXBMP_FRAME5), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYTOP)},
        {BitmapEx(RID_SVXBMP_FRAME6), SvxResId(RID_SVXSTR_PARA_PRESET_ONLYTBOTTOM)},
        {BitmapEx(RID_SVXBMP_FRAME7), SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOM)},
        {BitmapEx(RID_SVXBMP_FRAME8), SvxResId(RID_SVXSTR_TABLE_PRESET_ONLYOUTER)},
        // diagonal right border
        {BitmapEx(RID_SVXBMP_FRAME13), SvxResId(RID_SVXSTR_PARA_PRESET_DIAGONALRIGHT)},

        {BitmapEx(RID_SVXBMP_FRAME9), SvxResId(RID_SVXSTR_PARA_PRESET_TOPBOTTOMHORI)},
        {BitmapEx(RID_SVXBMP_FRAME10), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERHORI)},
        {BitmapEx(RID_SVXBMP_FRAME11), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERVERI)},
        {BitmapEx(RID_SVXBMP_FRAME12), SvxResId(RID_SVXSTR_TABLE_PRESET_OUTERALL)}
    };
}

***

Summary of week #6

Next Week TO-DO

  • Work on tdf#51665: Support diagonal borders in TABLEs

by Bayram Çiçek at July 18, 2021 06:41 AM

July 13, 2021

LibreOffice QA Blog

LibreOffice 7.2 RC1 is available for testing

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

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

LibreOffice 7.2 RC1 can be downloaded from here for Linux, MacOS and Windows.

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!

by x1sc0 at July 13, 2021 02:29 PM

July 11, 2021

Bayram Çiçek

Week #5 - GSoC Weekly Report - 100 Paper Cuts

GSoC progress for week #5.

Get rid of Writer-Images

  • Bug: tdf#34438 (Image-Group) - [feature request, FORMATTING] group selection does not work with raster images.

Last week I shared a blog post of my research on this bug here and this week I posted a comment about my 2-week research on the bug page of tdf#34438 here, and Regina Henschel replied with a comment here (thanks for the reply):

[…] So from my point of view we should get rid of Writer-images. But that is a long way. […] So to get rid of Writer-images it would be necessary to implement the services, which are provided by Writer-images for Draw-images too …

So, the last decision is: get rid of writer-images. Convert them into drawing objects ,but also implement the writer-images services/attributes to drawing-images. Since there are lots of things to do and we have only 5 week left after the first evaluations week, I prefer to work on this issue after GSoC with a huge free time. Also, I want to work on other bugs too, not only one.

Prevent jump to top of the comment view / Writer-comments

In Writer, there are 3 issues about comment section:

  • comment section scrolls to top of its view when clicking inside a comment view.

  • clicking inside a comment view, scrolls the view to old cursor location automatically (if old cursor out of the visible area).

  • comment section scrolls automatically to the old selected text (if it’s out of visible area) when clicking inside the Writer canvas view.

comment-multi-selection.png

Another annoying issue: multi-selection (after a certain changes in the code)

Technical Details

  • Fix for “autoscroll to old cursor location”
void SwAnnotationWin::ActivatePostIt()
{
    /*...*/

    // prevent autoscroll to the old cursor location
    // when cursor out of visible area
    GetOutlinerView()->ShowCursor(false);

    /*...*/
}

GetOutlinerView()->ShowCursor(); has a default value true if no argument passed in. I realized that this line causes the autoscroll to the old cursor location, and setting it to false solved the issue.

  • Fix for “jumping to the top of comment view”
bool SwAnnotationWin::SetActiveSidebarWin()
{
    if (mrMgr.GetActiveSidebarWin() == this)
        return false;
    const bool bLockView = mrView.GetWrtShell().IsViewLocked();
    mrView.GetWrtShell().LockView( true );
    mrMgr.SetActiveSidebarWin(this);

    // don't understand why we set `bLockView` here?
    mrView.GetWrtShell().LockView( bLockView );
    
    return true;
}

Just remove unnecessary const bool bLockView = mrView.GetWrtShell().IsViewLocked(); line, set .LockView( bLockView ); to .LockView( true ); because we activating SetActiveSidebarWin here, it should be true and this fixes the jumping to the top of comment view issue with:

void SwAnnotationWin::UnsetActiveSidebarWin()
{
    if (mrMgr.GetActiveSidebarWin() != this)
        return;
    mrView.GetWrtShell().LockView( true );
    mrMgr.SetActiveSidebarWin(nullptr);
    mrView.GetWrtShell().LockView( false ); // set false
}
  • Fix for “scrolling automatically to the old selected text”

Steps to reproduce: (in comments section)

- select text (2-3 words for example)
- scroll selected text to unvisible area (up or down)
- click into the writer document canvas

Result: comment writing area scrolls to unvisible selected text(s) (it becomes visible)

Expected result: don’t scroll to the selected area, just make it unmarked.

void EditView::SetSelection( const ESelection& rESel )
{
    /*...*/

    pImpEditView->DrawSelectionXOR();
    pImpEditView->SetEditSelection( aNewSelection );
    pImpEditView->DrawSelectionXOR();
    bool bGotoCursor = pImpEditView->DoAutoScroll();

    ShowCursor( bGotoCursor );
}

ShowCursor( bGotoCursor ); causes the jumping when deactivating the comment canvas (when clicking into writer document canvas).

Just made it to:

    if (HasSelection())
        ShowCursor( bGotoCursor );

and it’s solved.

  • When typing, current view have to jump to typing location

After the certain changes in the code, I realized that the writer document canvas doesn’t jump to typing location. After a long process of debugging in the code base, found that comment section LockView doesn’t set to false:

void SidebarTextControl::LoseFocus()
{
    // write the visible text back into the SwField
    mrSidebarWin.UpdateData();

    WeldEditView::LoseFocus();
    if ( !mrSidebarWin.IsMouseOver() )
    {
        Invalidate();
    }

    // I just added this line here and set it to false.
    mrSidebarWin.LockView(false);
}

Before the mrSidebarWin.LockView();, I created a new method in sw/source/uibase/docvw/AnnotationWin2.cxx to have access LockView():

void SwAnnotationWin::LockView(bool bLock)
{
    mrView.GetWrtShell().LockView( bLock );
}

***

Summary of week #5

Next Week TO-DO

  • Work on tdf#51665: Support diagonal borders in TABLEs
  • Update the UI for diagonal borders

by Bayram Çiçek at July 11, 2021 06:24 AM

July 09, 2021

LibreOffice Design Blog

Help us to improve LibreOffice Calc by completing our survey

We are conducting a survey to learn more about LibreOffice Calc users and to understand where we should focus our efforts to improve the software.

The survey consists of questions related to your usage of Calc and its features. We will ask about how frequently you use Calc, how large your data set is, what features are most important to you, and what you would prioritize in the development.…

by Heiko Tietze at July 09, 2021 05:38 AM

July 08, 2021

Collabora Community

GSoC 21 Projects mentored by Collabora for LibreOffice

Collabora mentors students on LibreOffice projects during this year’s Google Summer of Code

Summer is synonymous with the opportunity to participate in beautiful projects. Let’s look at the students who work in improving LibreOffice during the Google Summer of Code. This year, four of the approved GSoC projects for the LibreOffice community are mentored by Collabora developers. Find out about the improvements they are currently implementing!

Tests for the VCL graphic backends

The Visual Class Library (VCL) tests identifies if a graphic backend works correctly. This is especially important if the backend depends on the client hardware or drivers (like e.g. on Skia/Vulkan). This task’s main objective is adding more test cases to the pre-existing tests, and implementing a usable UI for users to test the graphic’s feasibility themselves. This project can be considered as of medium difficulty and requires C++ knowledge. It has been taken over by Akshit Kushwaha who is being mentored by Collaborans Tomaž Vajngerl and Luboš Luňák.

Creating a powerful Text Style deck

Text Style deck mock-up by the LibreOffice design team

The current styles deck sidebar is going to see a redesign. The paragraph and character styles will be merged into a single Text Style deck, as illustrated in the mock-up to the left. Furthermore, Anshu Khare, who has picked-up this project, does also want to rework the filter workflow. Anshu Khare is being mentored by Collaborans Tomaž Vajngerl and Mike Kaganski and Heiko Tietze from the LibreOffice design team.

Making SVM format independent of the VCL Metafile

The SVM file is a 1-to-1 pullout of the content of the VCL Metafile. We mentioned the VCL already before. It is a complex code area and since the SVM should not change, stay consistent, modernizing and updating VCL is very hard. Now after this task, there will be a test for the SVM format. And there will also be new classes, making it easier to update/improve VCL. This project can be considered of medium difficulty. It is being taken over by Panos Korovesis who is being mentored by Tomaž Vajngerl and Miklos Vajna.

100 paper cuts

100 Paper Cuts is a versatile and multifaceted project in which Bayram Çiçek will be implementing enhancement requests and solving some issues on the UX side of LibreOffice. This requires knowledge in C++ and the ability to read other peoples code. Due to its nature, the difficulty of this project can vary. Bayram Çiçek is being mentored by Collaboran Muhammet Kara and Heiko Tietze from the LibreOffice design team.

More Projects – Boost.Gil 2D convolution and correlation

Apart from those for the LibreOffice project, Collaboran developers participate in other Google Summer of Code projects. For the Boost C++ Libraries organization, a 2D convolution and correlation algorithm aligned with existing 1D convolution and correlation is to be implemented. Prathamesh Tagore will improve the existing prototype and make it ready for release. He is being mentored by Collaboran Pranam Lashkari, who was himself a successful GSoC scholarship holder a few years ago.

We wish all participants an equally successful and insightful summer and would like to thank all mentors for devoting the time necessary for the success of these projects. At Collabora, we believe that the sharing of knowledge is an essential part of open source and also a driver of progress and innovation.

Searching for a mentor? Join us GitHub!

Google Summer of Code is an excellent opportunity to learn to work in many open-source projects. But where to find mentors during the rest of the year? We suggest you to take a look at the code of Collabora Online on GitHub and join the growing community there, with easy hacks to get started and regular round-ups. Community Mentor Muhammet Kara and the rest of our team of open-source developers are there and willing to share their vast experience.

Join the Collabora Online community

The post GSoC 21 Projects mentored by Collabora for LibreOffice appeared first on Collabora Office and Collabora Online.

by Marc Rodrigues at July 08, 2021 08:30 AM

July 06, 2021

LibreOffice QA Blog

QA/Dev Report: June 2021

General Activities

  1. LibreOffice 7.1.4 was released on June, 10
  2. Alain Romedenne and Rafael Lima improved the Help content for the ScriptForge library. Alain also added some Basic keyword argument explanations and created a help page for Basic ThisDatabaseDocument object.
  3. Olivier Hallot (TDF) and Adolfo Jayme Barrientos clarified ‘whole sheet export’ for Calc PDF export in Help. Olivier also added help entries for VBA StrConv function, Advanced TSCP classification dialog and toolbar, revamped Bullets & Numbering dialog for Impress and Draw, Combine Text in Draw and made several improvements and tweaks.
  4. Michael Warner fixed an issue in PDF files containing Chinese characters generated with XeLaTeX
  5. Ming Hua added glossary entries about half-width and full-width characters to Help
  6. Steve Fanning documented how to escape double quotes in Help for Calc’s text functions
  7. Jean-Pierre Ledure worked on the ScriptForge library
  8. Hossein Nourikhah started working for TDF as Developer Community Architect
  9. Michael Stahl (allotropia) fixed some Writer layout infinite loops
  10. Bai Xiaochun replaced uses of homegrown math functions with standard library ones and optimised a math function for speed
  11. Baltasar made it so in Basic the results of comparison of literals have proper boolean type
  12. Gülşah Köse (Collabora) fixed a text data loss issue with PPTX roundtrip
  13. René Engelhard (Debian) made some fixes to unit tests
  14. Bubli fixed missing decimal places in Sidebar rotation spinbox
  15. Gopi Krishna Menon (Collabora) made crash reports more useful with additional data
  16. Regina Henschel improved OOXML compatibility for shadow rotation and wrap margins
  17. Chris Sherlock did some housecleaning in VCL
  18. Todor Balabanov made several improvements to the NLP solver
  19. Sarper Akdemir (Collabora) worked on PPTX header/footer field support
  20. Georgy Litvinov fixed losing anchor and endnote links in exported PDFs
  21. Michael Weghorn fixed an Android crash and made improvements to the Windows accessibility internals
  22. Balázs Varga (NISZ) fixed the option “Secondary Y Axis” in Sidebar’s Chart deck, fixed OOXML export of chart secondary axis and made it so formatted dates in standard filters are preserved upon XLSX export
  23. Luboš Luňák (Collabora) made optimisations related to graphics rendering and WMF graphic conversions
  24. Oleg Shchelykalnov made it possible to respect hidden paragraphs when saving to TXT
  25. Tibor Nagy (NISZ) added PPTX export support for a presentation’s loop attribute and improved the PPTX import support for custom slide show settings
  26. Dennis Francis (Collabora) added support for cycling through Calc’s autocomplete matches
  27. Andreas Heinisch fixed a focus issue in Custom Properties dialog, added file/product name to the Enter Password dialog title to help password managers, added column/row labels to descriptive statistics in Calc, made it so custom document properties are exported using utf8 encoding, fixed CSV import preview of text delimiter, fixed the display of custom unicode separators in the csv import dialog, corrected an issue with Chart spline calculation and made it so the filename in the import ASCII dialog title is not URL-encoded
  28. Vasily Melenchuk (CIB) added a new ODF numbered list parameter loext:num-list-format to allow for more flexibility in storing multilevel numberings. He also made some code optimisations and cleanups
  29. Jim Raykowski made it so footnote numbers are not included in Navigator heading entries
  30. Heiko Tietze (TDF) added an expert option to turn off sidebar’s minimum width, added an option to globally switch toolbar locking on/off, made the new Calc thick cursor optional, fixed layout issues in Writer Sidebar’s Page deck and fixed an RTL issue with Calc’s Insert Cell dialog
  31. Arnaud Versini made some code cleanups
  32. Tobias Schulz made it so TXT file encoding option is stored for later saving and added handling of BOM in text encoding detection
  33. Roland Kurmann fixed an issue with transposed text and multi-range selections. He also made a lot of improvements and reorganisations for Calc’s copy/paste automated tests
  34. Gabriel Masei (1&1) fixed some VCL-related crashes
  35. Marco Falke fixed an oss-fuzz build script issue
  36. Gábor Kelemen (NISZ) made many improvements to shortcut keys
  37. Muhammet Kara (Collabora) made the Customization dialog indicate experimental commands
  38. Christian Lohmaier (TDF) improved symbol extraction on Windows, related to crash reporting
  39. Gizem Ozgun added a test for exporting conditional format font size in Calc
  40. Rizal Muttaqin updated the Sifr icon theme
  41. Bartosz Kosiorek continued making improvements to EMF and WMF graphics support. Valek Filippov helped with the file analysis and testing.
  42. Eike Rathke (Red Hat) made the setting of Calc formula separators better regarding accepted characters and added evaluation of AM/PM in dates in text-to-column and CSV
  43. Julien Nabet fixed crashes in Impress, Writer and Calc. He also made many small code optimisations
  44. Jan-Marek Glogowski (allotropia) made many fixes to threads and building
  45. Justin Luth (Collabora/SIL) improved tab handling in DOCX import and made many improvements to the handling of numbering in DOC/DOCX formats
  46. Tünde Tóth (NISZ) fixed broken chart import at labels with quotes in OOXML files
  47. Mike Kaganski (Collabora) added support for columns in text boxes, fixed some crashes and made many code cleanups and fixes to test and build problems
  48. Caolán McNamara continued implementing the new GTK4 backend. He also made many cleanups and crash fixes. More information here, here, here and here
  49. László Németh (NISZ) made several improvements to change tracking and made it possible to remove personal info from comments and changes
  50. Xisco Faulí (TDF) made about 50 improvements and additions to automated tests
  51. Stephan Bergmann (Red Hat) made many code and build-related cleanups and improved compatibility with new compiler versions and unreleased C++ standard changes
  52. Noel Grandin (Collabora) continued his war on memory leaks, greatly improved the import time for DOCX documents with hundreds of images and made many code cleanups and optimisations
  53. Miklos Vajna (Collabora) made many improvements to image handling in Writer’s XHTML export. He also made many code cleanups and removed a 16bit limit in line heights
  54. Tomaž Vajngerl (Collabora) added a document searching and indexing feature
  55. Bayram Çiçek worked on the GSoC project “100 Paper Cuts”, adding hover effects to palettes in the Area tab and fixing an issue with cropping flipped images in Writer
  56. Shubham Jain worked on the GSoC project “Write missing unit tests”
  57. Sary Nasser worked on the GSoC project “Integrate .ui dialogs with translation tooling/string search webservice to help translators”
  58. Akshit Kushwaha worked on the GSoC project “Tests for the VCL graphic backends”, adding some tests and a UI dialog for running tests and showing results
  59. Balázs Sántha worked on the GSoC project “Implementing table styles DOCX support”, fixing missing format update of tables at table (cell) selection
  60. Panos Korovesis worked on the GSoC project “Make SVM (StarView Metafile) format independent of the VCL Metafile + tests of the format”, adding 12 tests
  61. Anshu Khare worked on the GSoC project “Styles Highlighter”
  62. Tushar Kumar Rai worked on the GSoC project “Implement Interface for external data source import into Calc”

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

524 bugs, 77 of which are enhancements, have been reported by 254 people.

Top 10 Reporters

  1. NISZ LibreOffice Team ( 63 )
  2. Telesto ( 37 )
  3. Eyal Rozenberg ( 27 )
  4. Valek Filippov ( 21 )
  5. Timur ( 12 )
  6. stragu ( 12 )
  7. Tracey ( 10 )
  8. Mike Kaganski ( 9 )
  9. Roman Kuznetsov ( 8 )
  10. Regina Henschel ( 8 )

Triaged Bugs

432 bugs have been triaged by 74 people.

Top 10 Triagers

  1. Dieter ( 45 )
  2. Timur ( 42 )
  3. Heiko Tietze ( 32 )
  4. V Stuart Foote ( 27 )
  5. m.a.riosv ( 22 )
  6. Roman Kuznetsov ( 19 )
  7. Xisco Faulí ( 18 )
  8. NISZ LibreOffice Team ( 16 )
  9. Telesto ( 15 )
  10. Uwe Auer ( 13 )

Resolution of resolved bugs

476 bugs have been set to RESOLVED.

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

Fixed Bugs

161 bugs have been fixed by 38 people.

Top 10 Fixers

  1. Caolán McNamara ( 12 )
  2. Olivier Hallot ( 9 )
  3. László Németh ( 7 )
  4. Heiko Tietze ( 7 )
  5. Andreas Heinisch ( 7 )
  6. Noel Grandin ( 6 )
  7. Gabor Kelemen ( 5 )
  8. Tünde Tóth ( 5 )
  9. Tibor Nagy ( 5 )
  10. Justin Luth ( 4 )

List of critical bugs fixed

  1. tdf#142478 [CRASH] searching on slide notes will crash Impress ( Thanks to Tomaž Vajngerl )

List of high severity bugs fixed

  1. tdf#140360 Provide option to turn off sidebar’s minimum width ( Thanks to Heiko Tietze )
  2. tdf#141769 Crash in: cppu::OInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const &) ( Thanks to Caolán McNamara )
  3. tdf#92917 Impress 64-bit crash when I open .PPSX or .PPTX with MP3 sound ( Thanks to Julien Nabet )

List of crashes fixed

  1. tdf#139447 Crash when dragging a query or table from “Data Sources Explorer” window to a calc sheet. ( Thanks to Caolán McNamara )
  2. tdf#141769 Crash in: cppu::OInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const &) ( Thanks to Caolán McNamara )
  3. tdf#142393 CRASH: Clicking on filter by color dropdownlist (gen) ( Thanks to Noel Grandin )
  4. tdf#142478 [CRASH] searching on slide notes will crash Impress ( Thanks to Tomaž Vajngerl )
  5. tdf#142618 LibreOffice Viewer 7.2.0.0.alpha1+ crashes on “about” > “show notice” ( Thanks to Michael Weghorn )
  6. tdf#142638 CRASH: leaving embedded object (GTK3) ( Thanks to Noel Grandin )
  7. tdf#142860 Crash: press Page Columns Button on Tab UI ( Thanks to Julien Nabet )
  8. tdf#142932 Crash when pasting cells with comments and “skip empty cells” option selected ( Thanks to Julien Nabet )
  9. tdf#143032 CRASH (assertion failed) when typing a format string in DBGUTIL build ( Thanks to Mike Kaganski )
  10. tdf#143113 Crash when dragging Navigator heading (gtk3) ( Thanks to Caolán McNamara )
  11. tdf#92917 Impress 64-bit crash when I open .PPSX or .PPTX with MP3 sound ( Thanks to Julien Nabet )

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

  1. tdf#103388 UI: “View > Show Formula” shows the shortcut as “Ctrl+grave” ( Thanks to Gabor Kelemen )
  2. tdf#104995 Cropping flipped images occurs at the wrong side ( Thanks to Bayram Çiçek )
  3. tdf#105089 Base: Item Status Changed ( Thanks to Olivier Hallot )
  4. tdf#106541 FILEOPEN: Numbering from custom style based on Heading 1 is not considered in this DOC ( Thanks to Justin Luth )
  5. tdf#108518 FILEOPEN: DOC file list numbers incorrectly italicized ( Thanks to Justin Luth )
  6. tdf#38187 ENDNOTES: when .odt is exported to PDF, links between anchors and endnotes are missing in both directions ( Thanks to Georgy Litvinov )
  7. tdf#46626 UI: Navigator: heading with footnote displays footnote number full size ( Thanks to Jim Raykowski )
  8. tdf#47365 Impress does not honor loop in PPTX presentation (fileopen done, filesave left) ( Thanks to Tibor Nagy )
  9. tdf#58250 FILEOPEN UI Custom separator is corrupted in CSV dialog ( Thanks to Andreas Heinisch )
  10. tdf#66553 Add file name to title bar of Enter Password dialog for autofilling with KeePass ( Thanks to Andreas Heinisch )
  11. tdf#68976 Formulas change after cut and paste special action with Transpose ( Thanks to scito )
  12. tdf#69207 Text delimiter not used in preview until changed (CSV import OK) ( Thanks to Andreas Heinisch )
  13. tdf#79069 DOCX: cannot delete table with Tracking changes (before: could be deleted but made a comeback after RT) ( Thanks to László Németh )
  14. tdf#90401 Allow resetting or removing personal information (author, date/time) on comments and changes ( Thanks to László Németh )
  15. tdf#92525 docx export: Text position in shape not correct ( Thanks to Attila Bakos (NISZ) )
  16. tdf#92917 Impress 64-bit crash when I open .PPSX or .PPTX with MP3 sound ( Thanks to Julien Nabet )

WORKSFORME bugs

57 bugs have been retested by 32 people.

Top 10 testers

  1. stragu ( 6 )
  2. Timur ( 6 )
  3. Telesto ( 5 )
  4. Dieter ( 4 )
  5. Andreas Heinisch ( 3 )
  6. Xisco Faulí ( 3 )
  7. Heiko Tietze ( 3 )
  8. Buovjaga ( 3 )
  9. Robert Großkopf ( 2 )
  10. geraldg ( 2 )

DUPLICATED bugs

111 bugs have been duplicated by 32 people.

Top 10 testers

  1. Timur ( 16 )
  2. NISZ LibreOffice Team ( 12 )
  3. V Stuart Foote ( 11 )
  4. Heiko Tietze ( 10 )
  5. Telesto ( 7 )
  6. m.a.riosv ( 7 )
  7. stragu ( 6 )
  8. Xisco Faulí ( 5

by x1sc0 at July 06, 2021 04:03 PM

Caolán McNamara

GTK4: Adapting to Toolbar changes

 

In GTK4 the dedicated GtkToolbar is gone, replaced by GtkBox with a style of "toolbar". The spelling dialog now supports this conversion.

by caolan (noreply@blogger.com) at July 06, 2021 10:53 AM

July 05, 2021

Bayram Çiçek

Week #3 - #4 - GSoC Weekly Report - 100 Paper Cuts

GSoC progress for week #3 and week #4.

Group selection does not work with raster images / Writer

Writer can group Drawing objects. For example shapes(rectangles, circles), text boxes and draw images can be grouped together to drag & drop.

However, when copy/paste or drag&drop an image into the writer document canvas, (raster/bitmap)images are handled as Frame objects (holding images/bitmaps), not Drawing objects. Drawing objects have the group feature, but this feature is not implemented for Graphics(Frame objects/bitmap). This is why Writer can’t group raster images.

shapes-selected.png


***

In week #3 and #4, I tried to understand the logic behind the grouping Drawing objects. It seems more complex than it looks. To keep the blog post simple and short, I will share only the key points of my research.

Code pointers:

Technical Details

SAL_DEBUG( rMrkList.GetMarkDescription() ); output: (in SwFEShell::SelectObj)

For shapes: shapes
For 2+ shapes: 2 shapes
For draw images: Image with transparency
For text box: Text Frame
For raster images: [Drawing object]

Raster images seem to have NONE object name:

#define STR_ObjNameSingulNONE    NC_("STR_ObjNameSingulNONE", "Drawing object")

rMrkList.GetMarkDescription() can’t classify the raster images?

SAL_DEBUG( rMrkList.GetMarkCount() ); always increases by 1 when selecting drawing objects via SHIFT+CLICK. But always gives 1 when selecting raster images.

All selected objects store in rMrkList list:

const SdrMarkList &rMrkList = pDView->GetMarkedObjectList();

This means raster images added to the list but always be unmarked when GetMarkCount reaches 1. The actual reason of unmarking issue is:

// call Unmark when !bAddSelect or if fly was selected
bool bUnmark = !bAddSelect; // bUnmark is 'false' here 

if ( rMrkList.GetMarkCount() == 1 )
{
    // if fly was selected, deselect it first
    pOldSelFly = ::GetFlyFromMarked( &rMrkList, this );

    if ( pOldSelFly )
    { 

    /* ... */

    bUnmark = true;

    }

    /* ... */

    if ( bUnmark )
    {
        pDView->UnmarkAll();
        if (pOldSelFly)
            pOldSelFly->SelectionHasChanged(this);
    }

With SHIFT+CLICK, pOldSelFly = ::GetFlyFromMarked( &rMrkList, this ); returns 0(null) when selecting the second, third … shape (which is expected); and it doesn’t set bUnmark = true, so it doesn’t execute pDView->UnmarkAll().

However, pOldSelFly = ::GetFlyFromMarked( &rMrkList, this ); always returns an address which is evaluated true in an if ( pOldSelFly ) case. This causes bUnmark = true; and executes if ( bUnmark ). Therefore, when rMrkList.GetMarkCount() == 1 and ::GetFlyFromMarked( &rMrkList, this ) returns an address; rMrkList doesn’t add the second selected raster image to itself and do unmark it.

Frame is not accessible

frame-is-not-accessible.png

Another interesting issue is when trying to add(select) a raster image to the shape list (unmarking disabled) debugging warns warn: /*...*/ frame is not accessible.

SwAccessibleMap::InvalidateCursorPosition:

// ...

bool bShapeSelected = false;

// ...

            else if( pFESh->IsObjSelected() > 0 )
            {
                bShapeSelected = true;
                aFrameOrObj = static_cast<const SwFrame *>( nullptr );
            }

// ... 

    OSL_ENSURE( bShapeSelected || aFrameOrObj.IsAccessible(GetShell()->IsPreview()),
            "frame is not accessible" );

pFESh->IsObjSelected() should return GetMarkCount(), not 0. Otherwise bShapeSelected stays false and OSL_ENSURE warns "frame is not accessible".

/sw/source/core/frmedt/feshview.cxx : SwFEShell::IsObjSelected() and SwFEShell::IsFrameSelected():

size_t SwFEShell::IsObjSelected() const
{
    if ( IsFrameSelected() || !Imp()->HasDrawView() )
        return 0;

    return Imp()->GetDrawView()->GetMarkedObjectList().GetMarkCount();
}

bool SwFEShell::IsFrameSelected() const
{
    if ( !Imp()->HasDrawView() )
        return false;
    else
        return nullptr != ::GetFlyFromMarked( &Imp()->GetDrawView()->GetMarkedObjectList(),
                                        const_cast<SwFEShell*>(this) );
}

When selecting raster images, in SwFEShell::IsFrameSelected():

return nullptr != ::GetFlyFromMarked( &Imp()->GetDrawView()->GetMarkedObjectList(),
                                        const_cast<SwFEShell*>(this) );

GetFlyFromMarked should return false (0(null)), not an address which make nullptr != 0x01... true.

***

I also looked at Draw and Calc to see how images are handled. Images are converted a drawing objects and have the same attributes like shapes. But in Writer, images have different attributes and handling.

Summary of last 2 weeks

  • Tried to understand how shapes grouped together
  • Debugging

Next Week TO-DO

  • Make raster images selectable(group) with SHIFT+CLICK

by Bayram Çiçek at July 05, 2021 05:06 AM

July 04, 2021

Bayram Çiçek

Week #2 - GSoC Weekly Report - 100 Paper Cuts

GSoC progress for week #2.

Disabling slide sorter shorcuts when in edit mode / Impress

In Impress, when editing a text on a slide, CTRL+SHIFT+(HOME/END/ArrowUP/ArrowDOWN) shortcuts doesn’t select the text in the slide, but move the slide to the end of the slide stack.

Solution is simple: Disable slide sorter shortcuts when in text edit mode.

***

This week I tried to disable slide sorter shortcuts while in edit mode. However, I couldn’t found a proper way to disable them.

Code pointers:

Potential solution

In FuText:SetInEditMode, We should disable the global slide sorting shortcuts by something like:

    SfxItemSet aSet(mpViewShell->GetPool());
    aSet.DisableItem(SID_MOVE_PAGE_DOWN);  // and other SIDs: (LAST/UP/FIRST)

or:

    SfxItemSet& rSet = mpView->GetStyleSheet()->GetItemSet();
    rSet.DisableItem(SID_MOVE_PAGE_DOWN);

or:

    SfxItemSet aSet(mpViewShell->GetPool(), svl::Items<EE_PARA_LRSPACE, EE_PARA_LRSPACE>{} );
    aSet.DisableItem(SID_MOVE_PAGE_DOWN);

or:

    auto pSet = std::make_unique<SfxItemSet>( mpViewShell->GetPool());
    pSet->DisableItem(SID_MOVE_PAGE_DOWN);

or:

    SfxItemSet aSet(mpViewShell->GetDoc()->GetPool());
    aSet.DisableItem(SID_SLIDE_SORTER_MODE);

… However, none of them are worked, and I don’t know if there is another way to make SIDs disable while in edit mode. Since we are in the GSoC period, I don’t want to waste my time with a bug that I couldn’t make progress. I will look again this bug after GSoC with a huge free time!.

Summary

Next Week TO-DO

by Bayram Çiçek at July 04, 2021 05:50 PM

July 01, 2021

Tomaž Vajngerl

Document searching and indexing export - Part 1

About the idea

Searching for a phrase in multiple documents is not a new thing and many implementations exist, however such searching will usually only provide you if and roughly where in the documents a searched phrase exists. With Collabora Online and LibreOffice we can do better than this and in addition provide the search result in form of a thumbnail of the search location. In this way it is easier for the user to see the context, where the searched phrase is located. For example, if it is located in a table, shape, footer/header, or is it figure text or maybe "alt" text of an image. 

Thanks to the sponsor of the work - NLnet Foundation, we are implementing this solution for Writer documents.

The solution to this consist in 3 parts:

  • preparing the data for indexing, 
  • indexing and searching 
  • rendering of the result
Preparing the data for indexing and rendering of the search result is done in LibreOffice core, while the actual indexing and searching is delegated to one of the existing indexing and searching databases / frameworks (we will provide support for Apache Solr). 

In this post I will describe what has been done for milestone 1.

Milestone 1 - preparing data for indexing

Indexing data usually consists of (enriched) text, however in our case we also need to provide additional internal information, where the text is located, so it is possible to later go to the search result location and create a thumbnail of the document. In Writer we can provide a node index of the paragraph, with which it is possible to quickly identify the text in the document model and generate a thumbnail of the area around the text.

The data for indexing is provided by a "indexing export" filter in LibreOffice, which creates a XML document with a custom structure. The root element is <indexing> and the child elements are paragraphs with index and text, which can be nested in sub-elements (like image, shape, table, section) depending on where the paragraph is located. 

For example:

 <?xml version="1.0" encoding="UTF-8"?>
<indexing>
 <paragraph index="6">Drawing : Just a Diamond</paragraph>
 <paragraph index="12"></paragraph>
 <shape name="Circle" alt="" description="">
  <paragraph index="0">This is a circle</paragraph>
  <paragraph index="1">This is a second paragraph</paragraph>
 </shape>
 <shape name="Diamond" alt="" description="">
  <paragraph index="0">This is a diamond</paragraph>
 </shape>
 <shape name="Text Frame 1" alt="" description="">
  <paragraph index="0">This is a TextBox - Para1</paragraph>
  <paragraph index="1">Para2</paragraph>
  <paragraph index="2">Para3</paragraph>
 </shape>
</indexing>

The indexing export is build upon a ModelTraverser class, which was created for the indexing purpose, but can be reused for other purposes (it is similar to what AccessibilityCheck does, but generalised, so AccessibilityCheck can in the future be refactored to use it). 

The purpose of ModelTraverser is to traverse through the Writer document model, and provide SwNode and SdrObjects to the consuming objects - in our case IndexingExport class, which extracts the text from those objects (depending on the object type) and with help of a XmlWriter, writes the indexing data to the XML file.

Indexing export filter can be tested with the LibreOffice command line "convert-to" tool in the following way:

soffice --convert-to xml:writer_indexing_export <Writer document file path>


The commits implementing this milestone 1 functionality:

In the next milestone, we will render the thumbnail with the provided search result data.


To be continued...

by Tomaž Vajngerl (noreply@blogger.com) at July 01, 2021 01:12 PM

June 25, 2021

Collabora Community

Collabora Online Community Roundup #11

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

Collabora developers also keep fixing and improving our lovely mother project LibreOffice. As all the good work requires some appreciation, let’s take a look at what the seasoned developers of the Collabora team and the volunteer contributors from our community have been doing during the last few months. -Have been wondering what happened to the “weekly” roundups? Well, your friendly community mentor was having a time off for health reasons due to the pandemic, but now he is all good and back online. ;)-

Month in Numbers

On the Collabora Online code repository in the last month, 47 authors have pushed 266 commits to master and 907 commits to all branches. On master, 258 files have changed and there have been 8,685 additions and 2,186 deletions.

Screenshot of GitHub Pulse for Collabora Online
Development Activity on Collabora Online GitHub Repository from May 23, 2021 to June 23, 2021

New Contributors

Congratulations to Jerzy Drozdz, Vivekkumar Javiya, Gökhan Karabulut for their first pull requests on our GitHub repository!

  • Thanks to Jerzy Drozdz for adding the missing class A IP addresses regex to the loolwsd config file, thus helping COOL to be compatible with very large networks.
  • Thanks to Vivekkumar Javiya for adjusting the Notebookbar font size, adding support for signaling the fullscreen status in the menu, and adding comments to the Map.js to improve the inline documentation of the code-base.
  • Thanks to Gökhan Karabulut for helping COOL become easier-to-debug and more clutter-free by improving the state dumping and removing some unused fields on the C++ side of the code-base.

Thank you all, and welcome aboard! 🙂

Join the fun!

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

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

Highlights

Collabora Online Weekly Meeting #30

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

  • During the quick update part by Muhammet Kara, it’s been reported that we have 7 easy hacks at the moment, and planning to increase the number of them. He has also mentioned that COOL is now listed on the First Contributions platform.
  • Michael Meeks brought up the topic of Interactive Performance, and mentioned updates on the ongoing work by various team members, such as image scaling profiling, improving table pieces, fixing Calc’s interactivity & drag and drop selection, and benchmarking and performance profiling during collaborative editing by multiple users.
  • Szymon KÅ‚os shared a status update on his recent work on native sidebars, which would improve the performance and user experience while working with the sidebars.
  • Michael Meeks mentioned that all of the patches for the async saving work are now merged, and the bug fixing step is the next.
  • Muhammet Kara mentioned the nice work by Chetanya Kandhari on the Mattermost integration of Collabora Online.
  • Gabriel Masei shared an update on the stability profiling/improvement efforts going on, followed by a discussion with Andras Timar on the docker image scripts.
  • Quick updates on various ongoing efforts were shared by Michael Meeks.
  • Various topics around design bits were discussed, signalling a lot of visual/aestetic improvements especially on Calc.
  • Pedro Silva pointed out that the Cypress tests need to be made more stable, and acknowledged the recent nice work by Rashesh Padia on that front.
  • Andras Timar shared that CODE 6.4.10 release is planned for the next week.
  • Muhammet Kara reminded everyone that the CfP deadline for LibOCon 2021 is on June 30th, so ~1 week left to submit papers.

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

Move to Libera.Chat

We set up a #cool-dev channel from the first day of Libera.Chat to help people migrate, and recently made the decision to drop our Freenode channel. Thankfully, the LibreOffice channels are also moving, so we will stay aligned with the wider project. So if you were wondering where everyone went, here is your answer. 😉

Collabora Online (COOL)

  • Thanks to Marco Cecchetti for adding cypress tests for the fullscreen presentation, thus helping us ensure the stability and quality of COOL while doing presentations.
  • Thanks to Gabriel Masei for adding support for lost kits cleanup, thus helping COOL become more friendly in terms of system resource usage as well as making sure the button for the hyperlink dialog is enabled and disabled properly while dynamically changing the UI mode to classic.
  • Thanks to Yunusemre Åžentürk for improving the CODE docker image creation for arm64.
  • Thanks to Ayhan Yalçınsoy for helping to ensure COOL code-base’s compliance with the modern JS coding standards by updating the eslint version to 7.0.0 as well as making sure it builds without error on certain platforms.
  • Thanks to Ezinne Nnamani for making sure the paste shortcut CTRL+V works properly on the comment dialog, as well as for ensuring that the Impress slide previews in vertical orientation are fitting the screen nicely on mobile devices.
  • Thanks to Mike Kaganski for adding support for integrations that use certain URL parameters, and improving pixmap handling for watermarks thus possibly helping COOL perform better on related scenarios.
  • Thanks to Muhammet Kara for enabling CodeQL checks for C++ on our code repo, thus helping to maintain the code quality while adding new features and fixing issues, along with various improvements around the contributor friendliness of our project.

    CodeQL
    CodeQL is the analysis engine used by developers to automate security checks, and by security researchers to perform variant analysis.
  • Thanks to Aron Budea for various fixes and improvements such as making sure the Page Up and Page Down keys work properly in the slide sorter on Impress, and updating Cypress from 6.2.1 to 6.8.0 thus helping COOL’s testing facilities stay up to date.
  • Thanks to Gleb Popov for a lot of fixes and improvements around the FreeBSD support of COOL such as fixing tests and adding new CI configurations to ensure continuous stability of COOL on the aforementioned systems.
  • Thanks to Tamás Zolnai for a lot of fixes and improvements around cypress (testing framework), and the testing facilities thus helping COOL maintain quality over time.
  • Thanks to Henry Castro for various fixes and improvements such as adding configuration options for macro enabling macros and also setting security level for macros, thus helping COOL become easier to customize for different work settings.
  • Thanks to Mert Tümer for a series of fixes and improvements especially around improving experience on mobile views.
  • Thanks to Pranam Lashkari for fixing various issues around comment handling such as fixing an error on annotation insertion in Impress, and also for updating the instructions to set up COOL in Kubernetes (K8s), along with many other fixes and improvements.

    Kubernetes logo
    Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
  • Thanks to Miklos Vajna for various fixes and improvements especially towards general stability of the code-base, and also for helping us move our IRC notifications to #cool-dev’s new home on Libera.Chat.
  • Thanks to Andras Timar for fixing tooltip text for some notebookbar items, thus improving the user experience of COOL, along with various other improvements and maintenance especially around localization, containerization and packaging.
  • Thanks to Rashesh Padia for many fixes and improvements especially around the Cypress UI tests, thus helping us maintain high quality of COOL’s user experience.
  • Thanks to Michael Meeks for a lot of improvements particularly focused on performance testing and asynchronous behavior, thus possibly making user experience smoother for the users of COOL.
  • Thanks to Gökay Åžatır for his work on the new CanvasTileLayer towards offering a much smoother and crisper viewing experience for the users at different zoom levels.
  • Thanks to Dennis Francis for a ton of fixes, which can’t fit into a single sentence of the summary, from getting rid of the flickering during zoom animations to ensuring that the autofill behavior works properly without unwanted view jumps, thus improving the overall user experience of COOL in various ways.
  • Thanks to Pedro Silva for various fixes and improvements especially around the user interface of COOL to make it have a better and more consistent look and feel, as well as improving the Cypress tests to ensure the continuous quality of COOL.
  • Thanks to Tor Lillqvist for a lot of fixes and improvements towards modernizing the code-base.
  • Thanks to Andreas Kainz for his work towards making COOL look better on all platforms with a shiny and consistent look & feel, in cooperation with other contributors and team members such as our UI expert Pedro Silva.
  • Thanks to Szymon KÅ‚os for various improvements and fixes especially around the notebookbar, sidebar, cypress and various dialogs, thus helping COOL become richer in feature and have an even better user experience. Check out his blog post for an update on his recent work on native sidebars!

    Native sidebars on Collabora Online in action
  • Thanks to Ashod Nakashian for various fixes and improvements towards increasing general stability of COOL and maintainability of the code-base along with tests to make our code-base future-proof, working on the async upload feature which will provide a much smoother experience for the users especially in collaborative environments, and also for reviewing pull requests of other contributors, and for mentoring them through tough issues.

Collabora Office on Android & iOS

  • Thanks to Michael Weghorn for moving the file reading logic of the Android app to a separate thread thus possibly helping it to become more responsive while opening office documents.
  • Thanks to Mert Tümer for various fixes and improvements on the Android app such as making it possible to open PDF files.
  • Thanks to Miklos Vajna for making sure the Android app knows the user’s name or nickname properly and improving localization of the app by marking certain UI strings for localization, along with various other fixes and improvements.
  • Thanks to Tor Lillqvist for various fixes and improvements on the iOS app such as allowing it to open PDF files, and ensuring it is built without errors.

Collabora Online Integrations

  • Thanks to Dave Conroy for fixing OOXML template extension, thus making sure OOXML spreadsheets can be successfully created on Collabora Online’s Nextcloud integration.
  • Thanks to Joas Schilling for helping with the housekeeping of Collabora Online’s Nextcloud integration by updating node and npm versions.
  • Thanks to Roeland Jago Douma for reviewing and merging the pull requests from other contributors on Collabora Online’s Nextcloud integration.
  • Thanks to Valdnet for various fixes and improvements around the localization of Collabora Online’s Nextcloud integration.
  • Thanks to John Molakvoæ for various under-the-hood improvements on Collabora Online’s Nextcloud integration.
  • Thanks to Szymon KÅ‚os for various improvements and fixes on Collabora Online’s Nextcloud integration, such as making sure the configuration caching doesn’t cause users to be stuck in an erroneous state on certain cases after a fresh boot of COOL.
  • Thanks to Julius Härtl for countless fixes and improvements on Collabora Online’s Nextcloud integration as well as reviewing and merging pull requests of others.
  • Thanks to Semih Serhat Karakaya for fixing PHPStan issues on Collabora Online’s ownCloud integration, thus helping to improve its CI facilities.
  • Thanks to Phil Davis for helping to keep Collabora Online’s ownCloud integration up-to-date, as well as reviewing and merging pull requests of others.
  • Thanks to Piotr MrówczyÅ„ski for various fixes and improvements on Collabora Online’s ownCloud integration such as ensuring that secure view is enabled by default for all documents when it is enabled.
  • Thanks to Jürgen Weigert for helping with the housekeeping of Collabora Online’s ownCloud integration by updating packages and the changelog as well as reviewing and merging the pull requests of other contributors.
  • Thanks to Dipak Acharya for updating CI facilities of Collabora Online’s ownCloud integration, thus helping to maintain its code quality.
  • Thanks to theheyon for various under-the-hood fixes and improvements on Collabora Online’s ownCloud integration.
  • Thanks to Jan Ackermann for a lot of fixes and improvements on Collabora Online’s ownCloud integration, as well as reviewing and merging pull requests of other contributors.
  • Thanks to Jérémie Lesage of Jeci for countless fixes and improvements on Collabora Online’s Alfresco integration, from updating the README file to make it more developer-friendly, to adding CI facilities to ensure its continued quality.
  • Thanks a lot to Chetanya Kandhari of Brightscout for revamping Collabora Online’s Mattermost plugin completely, making it more user-friendly and modern-looking, as well as bringing it in alignment with Mattermost’s plugin guidelines.

    Collabora Online’s Mattermost integration in action

Honorable Mentions

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

Translators

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

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

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

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

Collabora loves LibreOffice!

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

  • Thanks to Gabriel Masei for making sure that mpWindowImpl is checked before referencing, thus improving stability of LibreOffice by preventing possible crashes.
  • Thanks to Miklos Vajna for many improvements and fixes along with adding new cool features to LibreOffice. Here are a few of them:
    • After the bibliography improvements in LibreOffice Writer, funded by TUBITAK ULAKBIM, Writer now has three improvements in this area: more information about the bibliography entries in the form of a mouse tooltip and clickable URLs in the table, the ability to refer to a specific page of a (potentially long) source. Check out his blog posts[0][1] for details!
      Tooltip for bibliography entry fields
      Clickable URLs in the bibliography table

      Refer to a specic page of a bibliography source, user interface
    • Improvements to gutter margin in Writer as part of his hack-week activity at Collabora.
    • Improved borders of merged table cells in Writer. Also thanks to Docmosis for making this improvement possible by funding the work on it.
    • Writer line heights: removing a 16bit limit. Also thanks to Vector for making this improvement possible by funding the work on it.
  • Thanks to Tomaž Vajngerl for continuing his work towards developing a built-in Xray-like UNO object inspector. This effort has been funded by The Document Foundation, so also thanks a lot to the TDF Board of Directors, and the TDF donors who made the work on this tool possible! Check out his blog posts for all the details:
  • Thanks to Mike Kaganski for implementing support for multi-column layout in LibreOffice’s text boxes. Also thanks a lot to SUSE, our valued partner, for making this improvement possible by funding the work on it. Check out the blog post for all the details!

    Multiple columns in LibreOffice text boxes
  • Thanks to GülÅŸah Köse for various fixes and improvements especially towards improving interoperability of LibreOffice with foreign document formats, thus improving interoperability with other office suites.
  • Thanks to Noel Grandin for doing various code-quality improvements and modernization all around the LibreOffice code-base.
  • Thanks to Tor Lillqvist for a lot of fixes and improvements especially towards better support on macOS and iOS.
  • Thanks to Gopi Krishna Menon for ensuring[0][1][2] crash reports are more detailed, thus making it easier to fix critical issues on LibreOffice.
  • Thanks to Sarper Akdemir for various fixes and improvements on OOXML file formats, thus helping LibreOffice to improve in terms of interoperability.

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

by Muhammet Kara at June 25, 2021 09:32 PM

June 21, 2021

Rizal Muttaqin

A More Realistic Light Bulb for LibreOffice's Tips of The Day

With the arrival of new trends like neomorphism, glassmorphism in the design world, using realistic assets is not always a bad thing. I took the initiative to update the childish light image in the tips of the day LibreOffice 7.1 to make it more pleasing to the eye.

In addition to making the lights more realistic, I've also made the icons sharper. Unfortunately, the thing that might be a little annoying is the incompatibility of this realistic style with the Colibre's default icons. That's why I've suggested that the image of this asset can be changed according to the icon theme (see tdf#13177). Meanwhile, enjoy what has been made first.

These are how it looks in the latest LibreOffice 7.1 version







And these are how it would looks in next version







Dark UI:




You can grab the latest change from daily master here.

by rizmut (noreply@blogger.com) at June 21, 2021 11:06 PM

June 18, 2021

LibreOffice QA Blog

LibreOffice 7.2 Beta1 is available for testing

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

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

LibreOffice 7.2 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!

by x1sc0 at June 18, 2021 09:54 AM

June 17, 2021

Caolán McNamara

GTK4 Port: DoubleDecker Notebooks

 

Double-decker mode, for notebooks with excessive numbers of tabs, works again in the GTK4 Port.

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

June 15, 2021

Mike Kaganski

Multiple columns in LibreOffice text boxes

Thanks to SUSE, our valued partner who supported this development, we at Collabora Productivity have implemented support for multi-column layout in LibreOffice’s text boxes.

Up to now, it was only possible to use columns in Writer’s page styles, sections and frames. One could not make text boxes, including those used in Impress, with text distributed to several columns. Well, there are workarounds like using tables, but indeed that was not the same, and was breaking the text flow.

Introduced simple columns in text boxes (you just set up number of columns and spacing between them, no per-column width or spacing) are supported in Open Document format files (ODT/ODS/ODP/ODG). At the same time we also introduce support for the related feature in PPTX (tdf#118458) and XLSX files. That improves interoperability. However mind that multiple columns in text boxes are not supported in Word and its file formats, thus columns that you set up with this new feature in text boxes in Writer, can not be exported to DOCX.

The new setting is available in the “Text Attributes” dialog:

This is how it looks in current master:

This feature will be available in the future LibreOffice 7.2, and the next Collabora Office update. If you want to try it, you may take latest Collabora Office snapshots on this page.

by mikekaganski at June 15, 2021 08:12 AM

June 14, 2021

Szymon Kłos

Sidebar converted to „native” HTML controls

In the past I’ve converted sidebar into contextual menus for mobile version of Collabora Online. Since that time I was waiting for a moment when it will be possible to do similar thing for the desktop version of Collabora Online, the one that you use in the browser on your laptop. It is a good step to make UI unified and more convenient for a user.

In the new approach we use HTML controls with „native” listboxes and spinfields instead of pictures generated by the server. The data transfer from the server to the browser for fields invalidation should be reduced as we don’t have to send images. Widgets can be now styled using the same CSS like other UI components what will improve look of the sidebar. Thanks to the conversion for a desktop I also improved the mobile menus and did few optimizations.

Sidebar is still under development but looks promising:



by Szymon Kłos (noreply@blogger.com) at June 14, 2021 01:16 PM

June 10, 2021

Miklos Vajna

Writer line heights: removing a 16bit limit

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

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

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

Motivation

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

Results so far

Now it looks like the way you would expect it:

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

How is this implemented?

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

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

Want to start using this?

Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF’s next release (7.2).

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

June 07, 2021

Marius Popa Adrian

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

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

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

Firebird Project is happy to announce general availability of Firebird 4.0

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

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

LibreOffice QA Blog

QA/Dev Report: May 2021

General Activities

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

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

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

Top 10 Reporters

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

Triaged Bugs

584 bugs have been triaged by 85 people.

Top 10 Triagers

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

Resolution of resolved bugs

620 bugs have been set to RESOLVED.

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

Fixed Bugs

198 bugs have been fixed by 52 people.

Top 10 Fixers

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

List of critical bugs fixed

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

List of high severity bugs fixed

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

List of crashes fixed

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

List of performance issues fixed

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

by x1sc0 at June 07, 2021 11:15 AM

June 04, 2021

Caolán McNamara

LibreOffice GTK4 Port: More MenuButtons

 

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

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

June 03, 2021

June 02, 2021

Caolán McNamara

GTK4 LibreOffice Port: Print Dialog

 

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

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

May 13, 2021

Tomaž Vajngerl

Command Popup HUD for LibreOffice

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

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

Figure 1: Command Popup window

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

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

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

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


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