The Document Foundation Planet

 

October 03, 2022

Miklos Vajna

Content controls in Writer: PDF export and combo box type

Writer now supports exporting content controls to PDF and a 7th content control type: it is possible to differentiate between drop-downs and combo boxes.

This work is primarily for Collabora Online, see the previous post for background.

Motivation

PDF export of Writer content controls into PDF

Writer users can create fillable forms using content controls, but the PDF export only contained the plain text representation of them. PDF can also have fillable widgets for form filling, so it's logical to map content controls to PDF widgets.

A perfect mapping is not possible, since PDF widgets are always a single rectangle and Writer content controls is a list of rectangles (text portions), but this doesn't cause a problem in most cases. The size of the PDF rectangle is determined based on the placeholder's size from Writer.

Benefits includes not having to insert a control shape, manually positioned to look like it's in line with the surrounding text. An other benefit is that this way the widget's style (font name, size, etc) can be specified using Writer styles, not with shape properties. It's also interesting that Word itself doesn't seem to support content controls in its PDF export at the time of writing.

Results so far

PDF export now automatically turns Writer content controls into fillable widgets for the rich text, plain text, checkbox, drop-down, combo box and date types.

Combo box itself is a new type: now combo box content can be either free-form or one of its list items, while drop-down can only be one of its list items.

How is this implemented?

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

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

Want to start using this?

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

by Miklos Vajna at October 03, 2022 06:25 AM

September 29, 2022

Official TDF Blog

LibreOffice Conference 2022: Day 1

We’ve just wrapped up the first day of the LibreOffice Conference 2022. You can check out the video streams from room 1 and room 2 – and after the conference, we’ll edit and upload individual videos of the talks.

Check out the schedule for day 2, and see you then, in-person or online! �

by Mike Saunders at September 29, 2022 03:50 PM

Live streams from the opening session of the LibreOffice Conference 2022

The LibreOffice Conference 2022 is go! And we will be live streaming talks from the rooms, on our YouTube channel:

by Mike Saunders at September 29, 2022 08:06 AM

Marius Popa Adrian

Linux 0.0.1 compiling on Ubuntu 64

You might need some packages first$ sudo apt-get install bin86 kvm qemu gcc build-essential qemu-system-x86 gcc-multilibclone the github repo with 64 build fixes https://github.com/mariuz/linux-0.01$ gh repo clone mariuz/linux-0.01$ unzip hd_oldlinux.img.zip$ make$ make run or $ make run-curses  SeaBIOS (version 1.13.0-1ubuntu1.1) iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+0078EBD0+

by Popa Adrian Marius (noreply@blogger.com) at September 29, 2022 07:48 AM

September 26, 2022

Collabora Community

Meet Skyler – Collabora Software Engineering Intern

 

Collabora recruits interns to work over the summer alongside our team, and to build experience to help them assess whether they want to pursue a career in Software Engineering, but how does that work out? Lets hear from Skyler:

Tell me about yourself!

My name is Skyler and I’m currently studying Maths, Further Maths, Computer Science and Business Studies at college. I spent the summer holidays doing an internship at Collabora Productivity. I’m into software development and video games, especially Minecraft and Celeste. I have a huge Steam library!

When did you first become interested in technology/coding?

When I was 11, my parents got me Raspberry Pi and I became fascinated with learning how to programme. Then in Secondary school I had an awesome Computer Science teacher who let us use old laptops to create a server where we built a small internal website. Since then I’ve been doing software development as a hobby.

What’s your favourite project you’ve worked on?

Oh, there’s quite a few to choose from! I’ve made several Discord bots which are automated game bots, including one to play Cards Against Humanity which was installed on over 2000 servers. I also made a version of Ultimate Tic Tac Toe – you can access it at https://uttt.crawling.us. I particularly enjoy creating smaller things that feed into one another to create something larger.

What have you been doing over the summer?

I’ve mostly been working on JSDialog, such as ‘repair document’, ‘number format’ or ‘split table’. I think the most common (and arguably most important) one I’ve worked on is ‘insert captions’ which is ~90% done: there’s 3 dialogs that work together to make our captioning work and I’ve converted 2 of them fully and figured out but not fully fixed an issue for the third.

Why did you want to spend your Summer interning at Collabora?

I went to a talk by Michael at my school where he told us about the benefits we’d get from doing an internship. He mentioned developing scalable techniques for big projects which I thought would be interesting and useful to learn.

I would have spent all Summer doing software programming anyway so I thought instead of letting the summer slip away, I would spend it learning. Plus it looks good on a university application!

What did you learn from your time at Collabora?

The main thing I learnt was the importance of taking notes efficiently so you can see what you were thinking and see if there were any assumptions you made that were wrong. I also learned how to implement scalable techniques (as Michael was talking about) which has really helped me.

What do you want to be working on in the future?

I’ve thought of various things I’d like to work on but I really enjoy back end development, much more than front end. I enjoy DevOps, scripts and testing – it’s satisfying to test and deploy.

I’m applying for university to do a Computer Science course focused on theory and software development and hopefully I’ll be able to get involved with some more projects at Collabora around my studies.

Would you recommend an internship at Collabora to others interested in a career in technology?

Yes absolutely, I’ve encouraged a few of my friends at school to apply!

 

It has been great to have Skyler work with us, and to see the impact on the codebase for all our users. Making our user-interface more visually consistent helps users to have a more easy to use and seamless experience. The underlying code improvements will also help to reduce complexity, making life easy for the next contributors to Collabora Online.

Why not get involved? We love to work alongside the next generation to help them discover what a career in Software Engineering might look like. If you’ve ever considered it for yourself, get in touch today!

The post Meet Skyler – Collabora Software Engineering Intern appeared first on Collabora Office and Collabora Online.

by Naomi Obbard at September 26, 2022 01:03 PM

Jean Hollis Weber

LibreOffice Community on Mac app store

On September 19, The Document Foundation (TDF) announced the release of LibreOffice on Apple’s Mac App Store, to support end users who want to get all of their desktop software from Apple’s sales channel. TDF will continue to provide LibreOffice for macOS free from the LibreOffice website, which is the recommended source for all users.

LibreOffice packaged for the Mac App Store is based on the same source code, but does not include Java – because external dependencies are not allowed on the store – and therefore limits the functionalities of LibreOffice Base.

The full TDF blog post is here.

by Jean at September 26, 2022 05:26 AM

September 23, 2022

Official TDF Blog

Lox365 extension: XLOOKUP (and more) for LibreOffice Calc

More news from the LibreOffice subreddit! User goose_pirate posted about an extension:

Hi everyone, I made this little extension for LibreOffice Calc which adds a few functions, currently FILTER, SORT, and XLOOKUP. I hope others will find this as useful as I do.

XLOOKUP is a function for finding things in a table by range or row. We asked goose_pirate for a bit of background on the extension:

I’ve been using both Excel and LibreOffice for many years and found the new(er) Excel functions like XLOOKUP to be really nice compared to the old VLOOKUP or INDEX MATCH. I wanted to use it in LibreOffice too, so I wrote this extension.

How I made it: I researched information about LibreOffice extensions, dissected a few such extensions made by others, and finally started my own. It wasn’t too bad, I was surprised no one has made something similar yet.

Great work, goose! 😊

Learn more and download here (in the “build” folder)

by Mike Saunders at September 23, 2022 08:45 AM

September 22, 2022

Official TDF Blog

Crowdfund audio recording and playback in LibreOffice presentations!

LibreOffice’s presentation tool, Impress, includes a bunch of features for home and office use. But one thing that’s missing is recording and playback for audio comments in presentations.

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

This feature is important in eLearning: in contrast to video recordings, audio recordings are stored per slide, and can be adjusted to match the individual pace of the presentation. This is particularly suitable in school, academic as well as corporate environments to make learning content and product presentations more interactive.

So, how can we get this feature in LibreOffice? Well, the CH Open association, which has been promoting open systems and standards in the Swiss ICT landscape for over 40 years, is organising a crowdfunding campaign to implement the feature. The project is estimated to cost €62,000 in total – with various milestones along the way.

Click here to learn more and participate!

by Mike Saunders at September 22, 2022 02:37 PM

Video tutorials for LibreOffice Writer, Calc and Impress

On the LibreOffice subreddit, we became aware of some useful tutorial videos created by Steven Davids. These cover various components of the suite, and show how to achieve common tasks.

We asked Steven about how he chooses the topics for his videos, and how he makes them:

My video tutorials come to me – I do not go and look for them. If I have a problem, I search for a solution on the web. I always assume I am not unique, and that many other people had or have the same problem. If I do not find a solution or one that is readily available, I struggle my way out to a solution. Then I share that solution via video! Why video? Because it seems to me people are lazy to read and video illustrations are just easier to understand.

The videos are very low budget and homemade. There are no costs for the software since I use free public open-source programs for the screen recorder and video editor. There are many such programs, but OBS Studio and Shotcut serves me very well. I often use LibreOffice Presentation to assist in presenting the material. The hardware is also low cost. I already have a laptop and mobile phone so there are not extra costs there. A mid-range microphone from Samson is indispensable and basically the only additional cost.

Click here to view the playlist on YouTube!

by Mike Saunders at September 22, 2022 08:58 AM

September 15, 2022

Luboš Luňák

16384 columns in Collabora Online

 After the work to support 16384 columns in LibreOffice Calc I have also made sure that the feature works also in Collabora Online, thanks to the funding of NGI.

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871498.

 

 

 

 

Since the Calc core is the same, the underlying functionality works just like in LibreOffice. But the online functionality presented some additional challenges that needed handling, as having more cells in a spreadsheet may mean more data sent over the network, slowing things down. There definitely used to be problems with large spreadsheets, as the tiled rendering used by Online in fact was already limited to 500000 rows compared to 1048576 rows of the desktop version (in fact, git history shows that this started at only 1000 rows initially and then was continually raised over the time as things improved). So together with raising column count to 16384 I have raised this to the normal 1048576 rows as well.

While working on this, one of the problems I needed to handle was a rather unusual one - some automated tests were failing because of timing out. Only with debug builds, because they of course do more checks compared to optimized release builds. And the problem turned out to be how some tests checked resulting spreadsheets after some operations. Since testing Calc running in a browser is more complicated than testing the desktop version, what the tests did was to select a large number of cells (e.g. one entire row), paste that to the clipboard and then the clipboard data was present in browsers HTML data, so the testing framework could test it and verify it is as expected. And this failed with unoptimized debug builds because even though the spreadsheet was almost empty, the unoptimized code checked every cell involved and together it added up enough to exceed the test timeout. Ironically enough, a significant portion was spent in code that was trying to optimize the size of the clipboard data. So I needed to improve the tests and optimize handling of unoptimized code, as strange as it may sound.

Now with hopefully all performance problems solved, Collabora Online 22.05 should support these spreadsheet sizes just as fine as the desktop version.






by llunak (noreply@blogger.com) at September 15, 2022 02:51 PM

Tomaž Vajngerl

Chart Data Tables

Chart data table is a feature of charts, that presents in the chart area a data table with the values that are visualised by the chart. The data table is positioned automatically at the bottom of the chart, and can for certain chart types replace the X-axis labels. Until now this feature has been missing in LibreOffice, but thanks to the funding of NGI, it is now implemented.


This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871498




Figure 1: Charts with a data table

Chart data table usage and description

Figure 2: Insert data table dialog


The chart data table can be added to the chart from the menu (Insert -> Data Table...), where it is possible to select to show the data table and set the data table specific properties (see Figure 2). The data table specific properties are:

  • Show Horizontal Border
  • Show Vertical Border
  • Show Outline
  • Show Keys
The properties "Show Horizontal Border" and "Show Vertical Border" control if the inner horizontal or vertical borders of the data table are shown or not. The "Show Outline" controls if the outline - borders around the data table are shown or not. "Show Key" controls if the legend keys for the data series are shown in the data table in addition to the data series (row) names.

Figure 3: Data Table Dialog


In addition to those data table specific properties it is also possible to change the line, fill and font properties of the data table (see Figure 3). For example the line properties define how the borders (lines) will be shown, so it is possible to change the line style (continuous line, dashes, dots), the colour of the line, transparency, line thickness. The fill properties defines the colour of the cell background and the font properties what font and size the is used for the text in the data tables.

Implementation

The data table implementation is located in the chart2 component, like all the other chart related code. A data table is represented in the model by a new DataTable (chart2/source/inc/DataTable.hxx) class (extending the XDataTable interface) and lives on the "Diagram" object. If there is no DataTable object, it means the data table is turned off. The DataTable holds the data table specific properties as well as line, fill and font properties.

The automatic positioning of the data table is done similar like the x-axis labels, as the data table is also meant to replace the x-axis labels, unless it is not able to do so, because of the chart type (for example the "bar chart", which has the main x and y axis swapped). 

Rendering is done on the DataTableView class (chart2/source/view/inc/DataTableView.hxx), which creates a table shape and positions that into the chart. The row headers (data series names) and column headers (x-axis names) and values (from the data series) are filled into the table cell by cell, where also the cell properties are mapped from the model (DataTable class), so the data table looks correctly.

Document format support

Data table is supported by OOXML (c:dTable element). There was already present reading and writing of the basic data table properties ("horizontal border", "vertical border" and "outline" but not "keys") to preserve the document formatting even when LibreOffice couldn't render the data table itself. The properties however were not present at a convenient place (directly on the Dialog object in the model) so this had to be refactored to use a DataTable class instead. Now the OOXML support can not only preserve the complete properties (including line, fill, font) and of course also render the data table properly. 

Support for the ODF format had to be added into the LibreOffice extended namespace. This was done with a "data-table" element that was added to the "chart:chart" element. The "data-table" element only has a link to a certain style instance (linked with "style-name" attribute to a style:style element with the same "name" attribute). The data table specific properties are attributes of the "chart-properties" element ("loext:show-horizontal-border", "loext:show-vertical-border", loext:show-outline", "loext:show-keys" attributes), that can be added to a style. The style can also have "graphic-properties" and "text-properties", which are mapped to line, fill and text properties of the data table on import (and vice-versa on the export).

The support for the data tables is currently available in LibreOffice master and will be present as a feature of LibreOffice 7.5 when released. 
 

by Tomaž Vajngerl (noreply@blogger.com) at September 15, 2022 01:19 PM

September 06, 2022

LibreOffice Dev Blog

Crash fixes for LibreOffice, part 1: segfaults

One of the bugs that we see in computer programs including LibreOffice is the crash. You’re working with the application, and the program is suddenly closed! Here we discuss the usual causes for these crashes, and how to fix some of them.

Crash Report

Crash Report

There can be many reasons for a crash in C/C++, including segmentation faults (segfaults), assertion failures, aborts, and exceptions that lead to abort. Here we discuss the segmentation faults.

Usual Causes for the Segmentation Fault Crashes

There can be many reasons for a segfault in C/C++, and most of them are are related to the incorrect use of memory. For example:

1. Accessing memory that the program does now own
2. Using memory outside the allocated parts
3. Using uninitialized variables

If you use a variable without properly initializing it, that may lead to a segfault. For example:

int main() {
    int *p;
    *p = 1;
    return 0;
}

Trying to de-reference a null pointer also leads to crash.

int main() {
    int *p = nullptr;
    *p = 1;'
    return 0;
}

$ g++ main.cpp -o main; ./main
Segmentation fault (core dumped)

In C/C++, most compilers do not check the array bounds automatically. When working with arrays, you have to take care that you are accessing inside the array bounds, and not beyond them. Look at this example:

int main() {
    int a[10];
    a[1000000] = 1;
    return 0;
}

When working with pointers, it is important to make sure that the pointer is not null before working with it. For example, look at this file:

sc/source/ui/view/tabview.cxx

Inside it, look at this method:

bool lcl_HasRowOutline( const ScViewData& rViewData )
{
    const ScOutlineTable* pTable = rViewData.GetDocument().GetOutlineTable(rViewData.GetTabNo());
    if (pTable)
    {
    const ScOutlineArray& rArray = pTable->GetRowArray();
    if ( rArray.GetDepth() > 0 )
        return true;
    }
    return false;
}

Here, before working with pTable, with the condition “if (pTable)“, we make sure that the pTable pointer is not null.

That is also the case when working with arguments. Look at this function inside the same file:

IMPL_LINK_NOARG(ScTabView, TimerHdl, Timer *, void)
{
    if (pTimerWindow)
        pTimerWindow->MouseMove( aTimerMEvt );
}

The condition makes sure that pTimerWindow is not null.

How to Fix the segfaults?

To describe how to fix some of the segfaults, I discuss to fixes that are merged recently by Caolan and me.

First, please take a look at this recently fixed crash by Caolan:

The crash was happening when you created a page break, and then tried to edit it. The backtrace showed that the problem is happening in this file:

sw/source/uibase/docvw/PageBreakWin.cxx

inside this method:

IMPL_LINK_NOARG(SwPageBreakWin, FadeHandler, Timer *, void)

just in this line, when invoking IsVisible().

if (IsVisible( ) && m_nFadeRate > 0 && m_nFadeRate < 100)
    m_aFadeTimer.Start();

In a debug session for LibreOffice, one can see that the window object is actually destroyed, but the code wants to check if the window is visible or not. In this way, it leads to a segfault. Looking carefully, it becomes visible that the problem comes from some lines below that. We see that m_pLine->DestroyWin() is invoked, but the control sequence is working in a way that IsVisible() is called right after that. To fix this, Caolan simply added a return after destroying the window, and it fixed the problem.

    if ( m_bIsAppearing && m_nFadeRate > 0 )
        m_nFadeRate -= 25;
    else if ( !m_bIsAppearing && m_nFadeRate < 100 ) m_nFadeRate += 25; if ( m_nFadeRate != 100 && !IsVisible() ) Show(); else if ( m_nFadeRate == 100 && IsVisible( ) ) {
        Hide();
        m_pLine->DestroyWin();
    }
    else
    {
        m_pLine->UpdatePosition();
        PaintButton();
    }

    if (IsVisible( ) && m_nFadeRate > 0 && m_nFadeRate < 100)
        m_aFadeTimer.Start();</pre

    if (IsVisible( ) && m_nFadeRate > 0 && m_nFadeRate < 100)
        m_aFadeTimer.Start();

Different Fixes for the Crashes

Not all the crashes can be fixed this way. Sometimes, you have to work on the logic of the application in a higher abstraction level, to be able to fix the crash. For example, see one of the crashes that I have fixed recently.

You could select many footnotes by pressing up/down keys and holding shift, then delete all the footnotes at once. Then, hovering on a reference of such a footnote, lead to crash.

To fix the crash, I bibisected the problem to find the responsible commit. In that specific change, the commit author changed the behavior of the arrow keys to be able to to go to the beginning of the first line just by pressing up in the first line. Also, the same behavior for the last line was also part of the goal.

To fix the problem, I reduced the behavior change to anywhere other than the footnotes, and set the previous behavior for the footnotes. With this change, the crash no longer happened.

diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx
index b379fe6..06c73af 100644
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
@@ -2088,7 +2088,9 @@ bool SwCursor::UpDown( bool bUp, sal_uInt16 nCnt,
            }
            bRet = !IsSelOvr( SwCursorSelOverFlags::Toggle | SwCursorSelOverFlags::ChangePos );
        }
        else
        else if (!pFrame->IsInFootnote()) // tdf#150457 Jump to the begin/end
                                          // of the first/last line only if the
                                          // cursor is not inside a footenote
        {
            sal_Int32 nOffset = 0;

@@ -2114,6 +2116,8 @@ bool SwCursor::UpDown( bool bUp, sal_uInt16 nCnt,
            }

        }
        else
            *GetPoint() = aOldPos;

        DoSetBidiLevelUpDown(); // calculate cursor bidi level
    }

Last line, *GetPoint() = aOldPos; comes from the previous behavior, as it was before the commit that introduced the regression.

More Information

There are many other types of crashes, and many other tricks for fixing those crashes. If you look for the crash fixes, you will find many of them, and take a look into them.

git log --oneline|grep -i crash|grep -i fix

You can also refer to a list of recently fixed crashes in the LibreOffice QA report of the August 2022 which is published recently:

QA/Dev Report: August 2022

One can learn a lot from the code itself!

I will continue this tutorial, and talk about other sources of crashes including assert failures, aborts, and exceptions that lead to abort.

Links Related to Program Crashes

In the end, these are some related links:

by Hossein Nourikhah at September 06, 2022 01:42 PM

LibreOffice QA Blog

QA/Dev Report: August 2022

General Activities

  1. LibreOffice 7.4.0 was released on August 18
  2. Rafael Lima added documentation in Help for the new method Normalize in ScriptForge FileSystem and made the Templates dialog work better with HiDPI displays
  3. Olivier Hallot (TDF) made some smaller fixes and cleanups in Help
  4. Laurent Balland fixed an issue with Impress’s Inspiration template
  5. Christian Lohmaier (TDF) did preparatory work for publishing LibreOffice in Microsoft Store under TDF
  6. Miklós Vajna (Collabora) added support for cropped video for media shapes in Impress, made shift-clicking/double-clicking graphics in Writer work and fixed problems with exporting to XHTML with graphics as OLE objects and with vertical text and clearing breaks in Writer. He also made some crash fixes.
  7. Jean-Pierre Ledure worked on the ScriptForge library
  8. Tünde Tóth (NISZ) fixed a problem with decimal tabulators in DOCX files and made it so long legend texts in charts are truncated
  9. Szymon Kłos, Tor Lillqvist, Mert Tumer and Henry Castro (Collabora) worked on LOKit improvements
  10. Eike Rathke (Red Hat) fixed an issue with calling Calc’s add-in functions via macros while having a non-English UI, made it so switching to English function names in Calc does not require a restart, made Calc’s date pattern evaluation more robust and made it possible to create a new language list entry by simply dropping an autocorrect .dat file into a relevant autocorr directory inside the user profile
  11. Tomaž Vajngerl (Collabora) continued working on data tables for charts
  12. Julien Nabet fixed hyphenation issues with Greek language, made it possible to align date fields in macro dialog boxes, fixed preview issues with horizontal alignment of objects in frames and page dimension in Print Preview. He also made some crash fixes.
  13. Jim Raykowski made it so object selections in Impress or Draw are reflected in the Navigator, made page number display in status bar more intuitive and fixed an issue with Navigator’s Navigate By Page Next functionality
  14. Andreas Heinisch made cursor navigation with Ctrl key in Writer treat narrow no-break spaces the same way as other space characters, made narrow no-break spaces visible by drawing a gray background, fixed Calc’s Formula to Value not taking immediate effect, improved Basic macro error messages and fixed Calc’s Formula bar suggestion tooltips misbehaving with non-ASCII characters
  15. László Németh improved the layout of drop cap characters, made several improvements to change tracking and fixed regressions
  16. Xisco Faulí (TDF) added over a dozen automated tests, made SVG marker-mid and marker-end handling more robust and fixed a crash
  17. Heiko Tietze (TDF) made several UI improvements and made the recovery dialog easier to understand (thanks to earlier work by Danie Truter)
  18. Michael Stahl (allotropia) fixed issues with dropdowns and paragraph borders in RTF files, made WebDAV TLS work with self-signed Certification Authorities and improved bookmark handling in the Navigator
  19. Michael Weghorn fixed a qt/kf5 double-click issue (only in unreleased code) and made nearly sixty improvements and cleanup changes to Windows and Linux accessibility code
  20. Mike Kaganski (Collabora) dropped the Elements docking window from Math and made it a Sidebar panel instead. He also fixed some crashes and regressions and an issue with importing XML files from paths with non-ASCII characters on Windows
  21. Caolán McNamara (Red Hat) implemented fully native scrollbars for gtk3 and gtk4 UIs, made it possible to align currency fields in macro dialog boxes, made automated tests more reliable by correct use of fonts and fixed an issue with active object selection not being indicated in Impress sometimes. He also continued working on gtk4 UI and fixed many crashes and issues found by Coverity and fuzzers, including even Hunspell Coverity issues
  22. Stephan Bergmann (Red Hat) made many code and build-related cleanups as well as test fixes
  23. Rizal Muttaqin updated the icons for Field and Field by Type
  24. Noel Grandin (Collabora) improved the loading time for documents with charts having ridiculously long legends. He also made many code cleanups and general optimisations
  25. Luboš Luňák (Collabora) made many cleanups in OpenCL code
  26. Justin Luth fixed several issues related to numbered paragraphs and fixed incorrect anchoring in certain imported DOC files
  27. Mark Hung fixed an issue causing unwanted hiding of RTL sections in Writer
  28. Paris Oplopoios made cleanups to the graphics handling code as part of GSoC
  29. Chris Sherlock made many code cleanups and improvements to readability
  30. Áron Budea (Collabora) added Persian (fa-IR) dictionary to installset
  31. Hannah Meeks worked on the VBA macro compatibility GSoC project
  32. Maxim Monastirsky continued polishing icon flipping in the context of RTL, fixed a menu regression and made code cleanups
  33. Khaled Hosny (Alif Type) fixed many issues affecting the layouting of Kashida characters in Arabic scripts, issues with letter spacing, made the preview in Styles dropdown use CJK/CTL fonts, improved how the text cursor moves in relation to ligatures in Writer and made it possible to disable default features in Font Features dialog. He also made it possible to search for combining marks in text containing complex scripts
  34. Colomban Wendling (Hypra) worked on accessibility tests
  35. Matt K made it so errors with PDF export only show one dialog instead of three
  36. Hossein Nourikhah (TDF) improved the bin/run build script and its documentation and fixed a footnote crash
  37. Regina Henschel fixed an issue with saving Writer documents containing vertical text
  38. Vasily Melenchuk (CIB) made handling of frames more robust in Writer and fixed a couple of regressions
  39. Pranam Lashkari (Collabora) made it so Writer’s paragraph dialog will show Tabs tab also when multiple paragraphs are selected and fixed a crash
  40. Pedro Silva (Collabora) fixed some button image size inconsistencies
  41. Samuel Mehrbrodt (allotropia) made dialog positioning more robust, made it possible to specify names for printer jobs via the API and made it so unused document variables are preserved with RTF import and export
  42. Niko Fink fixed a crash in PyUNO
  43. Wu Jiahuan (Loongson) added support for building with loongarch64 CPU architecture
  44. Arnaud Versini made some code cleanups
  45. Thierry Emery changed pasted images to be anchored to cell by default in Calc
  46. Povilas Kanapickas implemented touchpad gesture support for rotating and zooming in Linux
  47. Thorsten Wagner made some cosmetic improvements to button text colours and font height on macOS
  48. Sarper Akdemir (Collabora) fixed a regression affecting PPTX tables
  49. Roman Kuznetsov made it so the About dialog can show both OpenCL and threaded for Calc’s calculation mode
  50. Łukasz Leszko fixed saving external links as relative in XLS files
  51. Oguz Balkaya added an option to clear unavailable files from the Recent Documents menu and Start Center
  52. Armin Le Grand (allotropia) reworked the code for rendering glow effects

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

480 bugs, 44 of which are enhancements, have been reported by 289 people.

Top 10 Reporters

  1. Telesto ( 28 )
  2. Mike Kaganski ( 16 )
  3. Tuomas Hietala ( 15 )
  4. Rafael Lima ( 14 )
  5. BogdanB ( 11 )
  6. Gabor Kelemen (allotropia) ( 10 )
  7. Hossein ( 9 )
  8. Robert Großkopf ( 8 )
  9. Regina Henschel ( 8 )
  10. Eyal Rozenberg ( 7 )

Triaged Bugs

470 bugs have been triaged by 69 people.

Top 10 Triagers

  1. Dieter ( 55 )
  2. Julien Nabet ( 39 )
  3. Heiko Tietze ( 38 )
  4. Timur ( 35 )
  5. Mike Kaganski ( 25 )
  6. V Stuart Foote ( 23 )
  7. Roman Kuznetsov ( 21 )
  8. m.a.riosv ( 21 )
  9. Rafael Lima ( 20 )
  10. Xisco Faulí ( 18 )

Resolution of resolved bugs

478 bugs have been set to RESOLVED.

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

Fixed Bugs

168 bugs have been fixed by 38 people.

Top 10 Fixers

  1. Khaled Hosny ( 11 )
  2. Caolán McNamara ( 11 )
  3. Julien Nabet ( 8 )
  4. Justin Luth ( 7 )
  5. Michael Stahl ( 7 )
  6. László Németh ( 7 )
  7. Mike Kaganski ( 7 )
  8. Andreas Heinisch ( 6 )
  9. Eike Rathke ( 6 )
  10. Heiko Tietze ( 5 )

List of critical bugs fixed

  1. tdf#149966 Crash on Windows and freeze on Linux when customizing Menu ( Thanks to Noel Grandin )

List of high severity bugs fixed

  1. tdf#149467 Follow URL link in Writer text when navigator displayed: Crash in: _chkstk ( Thanks to Jim Raykowski )
  2. tdf#150034 LibreOffice Calc hangs on opening the particular file with pathological chart ( Thanks to Noel Grandin )
  3. tdf#150170 Crash in: mdds::flat_segment_tree::insert_to_pos(boost::intrusive_ptr<mdds::__st::node<mdds::flat_segment_tree > > &,long,long,bool) ( only LibreOffice 7.3 ) ( Thanks to Xisco Fauli )
  4. tdf#150197 number lost (after assigning numbering to style) when exporting to DOCX ( Thanks to Justin Luth )
  5. tdf#150236 Does not open full screen, ooSetupFactoryWindowAttributes not being filled ( steps in comment 21 ) ( LibreOffice 7.4 only ) ( Thanks to Xisco Fauli )
  6. tdf#150331 EDITING: AutoCorrect without “Show as tip” always fills in rest of word regardless of next key stroke ( Thanks to Xisco Fauli )
  7. tdf#150336 Shift + Up/Left no longer works to select cells in LO 7.4 beta 2 (using the Tabbed UI) ( Thanks to Caolán McNamara )
  8. tdf#150443 Track changes: Crash rejecting a grouped change ( Thanks to László Németh )
  9. tdf#150452 Crash in: libc.so.6 ( Thanks to Xisco Fauli )
  10. tdf#150499 CRASH: deleting sheet ( Thanks to Luboš Luňák )
  11. tdf#150502 CRASH: after clicking between the horizontal and vertical rulers ( Thanks to Julien Nabet )
  12. tdf#150594 LO 7.4: crash when I update a chapter index (swlo!SwDoc::SetTOXBaseName+0x5cd:) ( Thanks to Andreas Heinisch )
  13. tdf#91764 RTL: Arabic, Hebrew diacritics cant be found using search dialog ( Thanks to Khaled Hosny )
  14. tdf#94223 Selection box for text box not shown ( Thanks to Caolán McNamara )

List of crashes fixed

  1. tdf#147466 Crash swlo!SwDoc::InvalidateNumRules+0x657 (track changes involved) ( Thanks to Michael Stahl )
  2. tdf#149467 Follow URL link in Writer text when navigator displayed: Crash in: _chkstk ( Thanks to Jim Raykowski )
  3. tdf#149548 CRASH: copying and pasting tracked content ( Thanks to Michael Stahl )
  4. tdf#149966 Crash on Windows and freeze on Linux when customizing Menu ( Thanks to Noel Grandin )
  5. tdf#150138 FILEOPEN: Writer crashes when opening ODT file ( Thanks to Luboš Luňák )
  6. tdf#150170 Crash in: mdds::flat_segment_tree::insert_to_pos(boost::intrusive_ptr<mdds::__st::node<mdds::flat_segment_tree > > &,long,long,bool) ( only LibreOffice 7.3 ) ( Thanks to Xisco Fauli )
  7. tdf#150219 EDITING: Crash when cutting trace dependent with precedent on different sheet ( Thanks to Noel Grandin )
  8. tdf#150222 REPORTBUILDER – Starting to set font for a text box crashes whole LO ( Thanks to Noel Grandin )
  9. tdf#150249 Crash in Fontworks applying style after undo ( Thanks to Caolán McNamara )
  10. tdf#150265 Crash exporting a document with zoom to DOCX ( Thanks to Mike Kaganski )
  11. tdf#150291 Macro-collection-management crashes when no macro-container is selected (gtk3 specific) ( Thanks to Caolán McNamara )
  12. tdf#150394 LibreOffice is crashing with long hyperlink on the last position (Don’t hyphenate the last word) ( Thanks to László Németh )
  13. tdf#150443 Track changes: Crash rejecting a grouped change ( Thanks to László Németh )
  14. tdf#150452 Crash in: libc.so.6 ( Thanks to Xisco Fauli )
  15. tdf#150457 Crash on hovering footnote references after removing footnote ( Thanks to Hossein )
  16. tdf#150499 CRASH: deleting sheet ( Thanks to Luboš Luňák )
  17. tdf#150502 CRASH: after clicking between the horizontal and vertical rulers ( Thanks to Julien Nabet )
  18. tdf#150555 Crash after resizing Writer’s main window ( Thanks to Julien Nabet )
  19. tdf#150575 REPORTBUILDER: Crash when closing report after report navigator has been started ( Thanks to Julien Nabet )
  20. tdf#150594 LO 7.4: crash when I update a chapter index (swlo!SwDoc::SetTOXBaseName+0x5cd:) ( Thanks to Andreas Heinisch )
  21. tdf#150629 LibreOffice Writer crashes, when editing a page break ( Thanks to Caolán McNamara )

List of performance issues fixed

  1. tdf#108560 Pasting or editing large amount of multi-line text into a cell result in unusable Calc with GTK3 (steps to reproduce in comment 29) ( Thanks to Caolán McNamara )
  2. tdf#150618 Serious performance regression: it takes 5min+ for SUMIFS formula recalculation when switching sheet (while it only takes 30s in 7.3) ( Thanks to Luboš Luňák )

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

  1. tdf#103492 Arabic words not formed well in textboxes when sentence begins with English word ( Thanks to Khaled Hosny )
  2. tdf#104921

by x1sc0 at September 06, 2022 12:22 PM

Jean Hollis Weber

LibreOffice 7.4 Calc Guide published

Cover of Calc Guide 7.4The LibreOffice documentation team published a new user guide in August: LibreOffice 7.4 Calc Guide, available in free PDF and ODT. Low-cost printed copies are available from Lulu.com.

Visit the Documentation page on the LibreOffice website for links.

by Jean at September 06, 2022 01:16 AM

September 01, 2022

Miklos Vajna

Cropped video for media shapes in Impress

Impress now supports cropped videos in slide edit mode and during slideshow for documents imported from PowerPoint.

First, thanks to our partner SUSE for working with Collabora to make this possible.

Motivation

PowerPoint-style cropped video in Impress

PowerPoint handles videos by taking a preview bitmap from the video, and then it allows users to apply various effects on that bitmap, like cropping. The complex aspect of this is that such filters are also respected while playing the video as well.

Impress didn't store such properties on the media shape, which lead to distorted aspect ratio when playing some cropped videos from PPTX files. This lead to this preview in Impress before the work:

Video with lost cropping in Impress

Results so far

The first problem was that the Impress preview was picked from the 3rd second of the video (presumably to avoid a black preview in many videos that start with a short black fade-in), while PowerPoint can store an explicit preview from the video (seems to be the first frame), so no matter what effects you apply, the previews were just different as the source bitmap was different. This could be fixed by looking for an explicitly provided bitmap for the video first, and only then asking the various avmedia/ backends to produce a preview.

Once the preview's initial bitmap was OK, it was necessary to take cropping into account. This was first done for the preview bitmap, and then also for the gstreamer backend (the relevant one for Linux, as a start) of avmedia/, which is responsible for the actual video playback. The gstreamer bits were done by first creating a videocrop element and then connecting that to the existing playbin.

With these sorted out, we get rendering which matches the reference:

Cropped video in PowerPoint

The last step was to load/save the explicit preview and the crop from/to ODF as well, not only PPTX. We use a markup like this to store the information:

<style:style style:name="gr1">
  <style:graphic-properties fo:clip="rect(0cm, 1.356cm, 0cm, 1.356cm)"/>
</style:style>

And now that the gr1 automatic style is defined, we can refer to it from a media shape:

<draw:frame draw:name="test" draw:style-name="gr1">
  <draw:plugin xlink:href="..." xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" draw:mime-type="application/vnd.sun.star.media">
    ...
  </draw:plugin>
  <draw:image xlink:href="Pictures/MediaPreview1.png"/>
</draw:frame>

The nice property of this markup is that automatic styles are already used for other shapes and image previews are also used for e.g. table shapes, so this is just using existing markup in a new context, but the ODF spec already allows this markup.

How is this implemented?

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

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

User interface to create such a crop, support for other video effects (e.g. black-and-white) and other backends (Windows, macOS) could be done, but is future work currently.

Want to start using this?

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

by Miklos Vajna at September 01, 2022 07:46 AM

August 27, 2022

Caolán McNamara

zero coverity defects for hunspell

 

After the recent 1.7.1 release of hunspell I spent a little time massaging the source to address some long standing coverity complaints and achieved the elusive 0 outstanding defects with 0 dismissed state.

by caolan (noreply@blogger.com) at August 27, 2022 03:18 PM

August 19, 2022

Jean Hollis Weber

LibreOffice 7.4 Community Release

LibreOffice 7.4 Community was released on 18 August 2022. Here is the official blog post about it, with much more information about the release and about LibreOffice.

You can get LibreOffice 7.4 from the download page for Windows, macOS (Apple Silicon and Intel processors), and Linux.

A video summarizing the top new features in LibreOffice 7.4 Community is available on YouTube.

Most Significant New Features

GENERAL
Support for WebP images and EMZ/WMZ files
Help pages for the ScriptForge scripting library
Search field for the Extension Manager
Performance and compatibility improvements

WRITER
Better change tracking in the footnote area
Edited lists show original numbers in change tracking
New typographic settings for hyphenation

CALC
Support for 16,384 columns in spreadsheets
Extra functions in drop-down AutoSum widget
New menu item to search for sheet names

IMPRESS
New support for document themes

by Jean at August 19, 2022 12:50 AM

August 16, 2022

LibreOffice Dev Blog

ODF standard and the code – EasyHack

Open Document Format (ODF) is a standard (ISO/IEC 26300) and native file format that LibreOffice uses. OASIS developed this file format based on the file format of StarOffice, the ancestor of LibreOffice.

To understand the ODF standard, working with the LibreOffice code and fixing a small bug is enlightening. Here we discuss a related EasyHack.

ODF File Extensions

If you are a LibreOffice user, you may already know these extensions:

.odt for text processing documents (LibreOffice Writer)

.odp for presentations (LibreOffice Impress)

.ods for spreadsheets (LibreOffice Calc)

.odg for drawings (LibreOffice Draw)

.odf for formulas (LibreOffice Math)

Essentially, these are zip files containing XML and binary files. Additionally, Open Document Format can also be text-only format with the extensions of .fodt, .fods and .fodg instead of .odt, .ods, and odg respectively.

Open Document Specification

OASIS website provides the documents that describe the Open Document Format extensively . You can find the specifications for ODF 1.3, which is the latest version of the standard here:

OpenDocument V1.3 OASIS Standard published

Beside LibreOffice, several other applications support ODF standard, including Microsoft Office, ONLYOFFICE, Calligra Suite, Google Docs, and many others! But here, we focus on LibreOffice.

Basically, LibreOffice handles the Open Document format by opening the zip file using the zip parser and the deflate algorithm, and then parses the XML files inside it using libxml2 library.

On the other hand, the meaning of the XML tags and attributes are available via the specification from OASIS. In essence, the specification describes the text, pictures, shapes and other elements of the text processing, presentations, spreadsheets and formulas. Additionally, ODF standard discusses accessibility, collaboration and many more topics.

An EasyHack Related to ODF

To best way to understand the ODF standard, is working with the LibreOffice code. Please take a look at this small bug, which has the label of EasyHack (tdf#150302):

In this EasyHack, there is a sample document which is using a specific feature in the drawings. Looking at the <draw:enhanced-geometry> tag, one can see that there is an attribute draw:text-path-same-letter-heights that is used to control the way that text is rendered in shapes. It is described in ODF standard as:


19.224 draw:text-path-same-letter-heights

The draw:text-path-same-letter-heights attribute specifies if all letters in a custom shape have the same height.

The defined values for the attribute are:

  • false: letters in a custom shape need not have the same height.
  • true: letters in a custom shape have the same height.

The default value for this attribute is false.


The issue is that handling this parameter in the code is not correct. Specifically, the effect of this bug is that if you open the sample file and click on the SameLetterHeights button in the Fontwork toolbar, nothing happens. On the other hand, the correct behavior should be that the shape changes, and “shows the characters vertical stretched to fit the place between the paths”.

Shapes inside the example ODF file

Shapes inside the example ODF file

After all, to fix this issue one should refer to the code pointer that Regina Henschel has provided:

If you open the file core/svx/source/toolbars/fontworkbar.cxx, you will see that the else part is missing, and that is the cause of the problem. Specifically, you should fix that part of the code, and then submit your changes to Gerrit. To begin, please refer to this page for more information on how to submit code to LibreOffice Gerrit:

Writing a Test for the Fix

The fix is rather straightforward, but this is not the end of the task! Furthermore, you have to make sure that the problem does not happen again. In order to achieve this goal, writing a unit test is necessary. The test code should open the example file, and then use the toolbar option. This is possible by invoking .uno:FontworkSameLetterHeights command.

Fontwork toolbar, SameLetterHeightsFontwork toolbar: SameLetterHeights is the second icon is the second icon

Fontwork toolbar: SameLetterHeights is the second icon

There are some examples in sd/qa/unit/uiimpress.cxx that invoke UNO commands, and you may use as the starting point.

Final Notes

EasyHacks are good starting points for the newcomers. This specific improvement is filed as tdf#150302.

If you want to contribute to LibreOffice code by working on this improvement, but you need to know how to get started with LibreOffice development, I suggest you to see our video tutorial:

Getting Started (Video Tutorial)

 

by Hossein Nourikhah at August 16, 2022 01:17 PM

August 10, 2022

LibreOffice QA Blog

QA/Dev Report: July 2022

General Activities

  1. LibreOffice 7.3.5 was announced on July 21
  2. Adolfo Jayme Barrientos improved the layout of many dialogs
  3. Rafael Lima expanded the help for ScriptForge with many new features
  4. Olivier Hallot (TDF) updated the help for Fontwork and CSV import
  5. Laurent Balland fixed an issue with customer number formats with embedded text in decimal not saving correctly to ODS. He also fixed the footer of some Impress templates
  6. Christian Lohmaier (TDF) did lots of preparatory work for publishing LibreOffice in Apple Store under TDF
  7. Miklós Vajna (Collabora) fixed an issue with RTL text and floating objects in DOCX files and a couple of XHTML export issues. He also continued working on content controls for Writer
  8. Jean-Pierre Ledure worked on the ScriptForge library
  9. Tünde Tóth (NISZ) fixed DOCX export of line breaks in text frames and made saving style names to DOCX more robust
  10. Szymon Kłos, Henry Castro and Michael Meeks (Collabora) worked on LOKit improvements
  11. Eike Rathke (Red Hat) made it so two leading apostrophes before a number collapse to one when typing into a Calc cell with default formatting. He also made handling of Calc date formats more robust
  12. Bartosz Kosiorek fixed an issue with ordered bullets in Lotus Word Pro documents
  13. Tomaž Vajngerl (Collabora) worked on implementing data tables for charts and fixed an issue with hidden Writer fields becoming visible with PDF export
  14. Julien Nabet extended clone formatting functionality in Impress and Draw to work in more cases, fixed regressions affecting the copying of database tables from HSQLDB to MariaDB and the Draw Dimensions dialog and fixed displaying the OpenType tag for fraction
  15. Jim Raykowski made some Navigator fixes and tweaks
  16. Andreas Heinisch made Writer chapter numbering character style list alphabetically sorted, made Calc’s function wizard also search through function descriptions and changed Ctrl+Backspace to behave more intuitively in Calc cell editing. He also made narrow no-break spaces visible in Writer
  17. László Németh continued polishing change tracking of numbered paragraphs in Writer
  18. Xisco Faulí (TDF) added many new unit tests, fixed some crashes found through the crash reporter and made many improvements to SVG import, including adding support for Orient auto-start-reverse in markers and more robust handling of URLs and fill properties
  19. Heiko Tietze (TDF) made autocorrecting org-mode/markdown-like formatting marks to Writer formatting deactivated by default and fixed a regression preventing detaching of sub-toolbars like Basic shapes
  20. Michael Stahl (allotropia) fixed many Writer regressions, made handling ODF-imported automatic styles in Writer more robust and made it possible to edit the text content of a bookmark through the Insert → Bookmarks dialog
  21. Michael Weghorn fixed some qt/kf5 visual issues, fixed loading printer settings from documents in case of long printer/driver names and made some Linux accessibility improvements
  22. Mike Kaganski (Collabora) made it so editing hyperlinked text in Writer no longer breaks it up into multiple links, fixed rendering errors in Soft Edges image effect in Impress and corrected handling of Undo/Redo keyboard shortcuts in Math
  23. Kurt Nordback fixed an issue with negative error bars in logarithmic charts and improved rendering of exploded donut charts
  24. Caolán McNamara (Red Hat) fixed an accessibility performance issue affecting multi-line text in Calc, continued working on gtk4 UI and fixed many issues found by Coverity and fuzzers
  25. Stephan Bergmann (Red Hat) made many code and build-related cleanups as well as test fixes
  26. Rizal Muttaqin updated the icons for No List and improved the Breeze icons for New Presentation and Start from First Slide
  27. Noel Grandin (Collabora) made it so Calc undo works when typing is happening in two independent views, continued improving the import speed of complex PDF files and improved the import and post processing speed of a big DOCX file. He also made many code cleanups and general optimisations
  28. Luboš Luňák (Collabora) worked on Windows Subsystem for Linux support in the build system and made some improvements to HTML export. He also published a blogpost about his recent work on improving performance of unsorted lookups
  29. Justin Luth fixed RTL issues with tables and comments in DOCX files, fixed import and export of highlighting inside comments in DOCX/DOC/RTF files, improved the logic for optimal column width in Writer tables, fixed a DOCX compatibility issue with comments in textboxes, improved the DOCX compatibility with page styles and fixed an issue with bulleted lists in imported PPTX/PPT files
  30. Mark Hung continued working on CJK text grid improvements
  31. Paris Oplopoios replaced the old PNG export code with libpng as part of GSoC
  32. Chris Sherlock made many code cleanups and improvements to readability
  33. Tibor Nagy (NISZ) fixed an issue with polygon connecting points with PPTX export
  34. Balázs Varga (allotropia) fixed a UI glitch with Calc’s Data Validity List, fixed issues with password-protected shared files, made it so hidden elements are shown as inactive in Calc’s autofilter and improved the line style selection user experience
  35. René Engelhard (Debian) made some cleanups related to CPU architecture details
  36. Gülşah Köse (Collabora) fixed an issue preventing deletion of embedded databases through the UI
  37. Áron Budea (Collabora) fixed an issue with Sidebar getting stuck in a resize loop with HiDPI scaling
  38. Marco Cecchetti (Collabora) added support for scale and translate SVG transform animations in the Impress JS export
  39. Hannah Meeks worked on the VBA macro compatibility GSoC project
  40. Maxim Monastirsky improved icon appearance in the context of RTL
  41. Khaled Hosny (Alif Type) improved the validation of kashida insertion position and updated HarfBuzz to 5.1.0
  42. Colomban Wendling (Hypra) worked on accessibility tests
  43. Matt K fixed an issue related to canceling out of a save confirmation dialog
  44. Hossein Nourikhah (TDF) made it so Add New sheet button in Calc is disabled for protected sheet structures
  45. Regina Henschel fixed several issues related to rotated content in OOXML files
  46. Vasily Melenchuk (CIB) fixed issues with DOCX page breaks and attaching files to emails through macros

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

385 bugs, 56 of which are enhancements, have been reported by 249 people.

Top 10 Reporters

  1. Mike Kaganski ( 21 )
  2. Gerald Pfeifer ( 10 )
  3. peter josvai ( 9 )
  4. Gabor Kelemen (allotropia) ( 7 )
  5. Telesto ( 7 )
  6. Regina Henschel ( 6 )
  7. Rafael Lima ( 6 )
  8. Xisco Faulí ( 6 )
  9. Albert Acer ( 5 )
  10. Michael Weghorn ( 4 )

Triaged Bugs

391 bugs have been triaged by 72 people.

Top 10 Triagers

  1. Timur ( 52 )
  2. raal ( 42 )
  3. Rafael Lima ( 30 )
  4. Mike Kaganski ( 24 )
  5. Roman Kuznetsov ( 20 )
  6. Xisco Faulí ( 18 )
  7. m.a.riosv ( 17 )
  8. Julien Nabet ( 16 )
  9. Dieter ( 16 )
  10. Buovjaga ( 14 )

Resolution of resolved bugs

406 bugs have been set to RESOLVED.

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

Fixed Bugs

138 bugs have been fixed by 40 people.

Top 10 Fixers

  1. Julien Nabet ( 10 )
  2. Caolán McNamara ( 7 )
  3. László Németh ( 7 )
  4. Justin Luth ( 5 )
  5. Xisco Fauli ( 5 )
  6. Michael Stahl ( 5 )
  7. Balazs Varga ( 4 )
  8. Andreas Heinisch ( 4 )
  9. Attila Bakos (NISZ) ( 4 )
  10. Michael Weghorn ( 4 )

List of high severity bugs fixed

  1. tdf#119491 FILESAVE: password protected shared spreadsheet loses password on save ( Thanks to Balazs Varga )
  2. tdf#141294 Decks of Sidebar on HiDPI gets stuck in resize loop upon attempted width adjustment, work around of setting new SB “MinimumWidth” to false in expert config ( Thanks to Aron Budea )
  3. tdf#148913 Crash mergedlo!SfxViewFrame::Notify+0xf87 for some users ( Thanks to László Németh )
  4. tdf#149170 UI The “Document in use” dialog is not appearing anymore when opening from ‘recent files menu’ ( Thanks to Michael Stahl )
  5. tdf#150187 Crash in Presentation Styles – Background objects – Modify ( Thanks to Julien Nabet )
  6. tdf#56580 logarithmic graph Y error shows as a diagonal line when apply negative error values ( Thanks to Kurt Nordback )
  7. tdf#98404 UX – While objects on a slide are being edited, notably text boxes, the new slide sorter Ctrl+Shift shortcut combinations (see bug 91909) incorrectly receive focus and move the slide ( Thanks to Gabor Kelemen )

List of crashes fixed

  1. tdf#142715 Crash when closing document after changing and saving it ( Thanks to Attila Bakos (NISZ) )
  2. tdf#148687 Crash swlo!SwAnchoredObject::GetObjRectWithSpaces+0x98: ( Thanks to Attila Bakos (NISZ) )
  3. tdf#148913 Crash mergedlo!SfxViewFrame::Notify+0xf87 for some users ( Thanks to László Németh )
  4. tdf#149173 Crash BigPtrEntry::GetArray(this=0x0000600001726940) const at bparr.hxx:106:23 (STR: comment 3) ( Thanks to Attila Bakos (NISZ) )
  5. tdf#149546 CRASH: importing document ( Thanks to Attila Bakos (NISZ) )
  6. tdf#149649 CRASH: in SwNodeIndex::SwNodeIndex ( Thanks to Michael Stahl )
  7. tdf#149985 FILEOPEN PPTX: Impress crashes opening a one-slide presentation (with a chart) ( Thanks to Noel Grandin )
  8. tdf#150187 Crash in Presentation Styles – Background objects – Modify ( Thanks to Julien Nabet )

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

  1. tdf#101731 Rename gradient ‘border’ label to something more meaningful ( Thanks to Ali_Abdollahian )
  2. tdf#104428 exploded donut uses too small radius ( Thanks to Kurt Nordback )
  3. tdf#104683 Show nonprinting characters: show spaces at the end of the line before break line for justified ( Thanks to Attila Szűcs )
  4. tdf#114734 Comment direction lost on saving-then-reloading a .docx ( Thanks to Justin Luth )
  5. tdf#117646 Clone Formatting not working for connector lines ( Thanks to Julien Nabet )
  6. tdf#33787 FORMATTING, FILEOPEN: Bullet point numbers don’t increment (.lwp import) ( Thanks to Bartosz Kosiorek )
  7. tdf#54703 Hidden Sections are no longer hidden when printing or exporting pdf (see comment 16) ( Thanks to Tomaž Vajngerl )
  8. tdf#56580 logarithmic graph Y error shows as a diagonal line when apply negative error values ( Thanks to Kurt Nordback )
  9. tdf#61623 UI Data Validity List and icon drawing bugs ( Thanks to Balazs Varga )
  10. tdf#67669 Make narrow non-breaking spaces visible ( Thanks to Andreas Heinisch )
  11. tdf#90837 re-base: Can’t “Save As” file opened in view mode on top of the original file ( Thanks to Michael Meeks )
  12. tdf#92610 alt command for Same Content on First Page should be unique ( Thanks to Gabor Kelemen )
  13. tdf#96723 FILESAVE: custom cell number format with embedded text in decimal part not saved in ods ( Thanks to Laurent BP )
  14. tdf#97539 INSERT: SVG clippath not fully supported ( Thanks to Xisco Fauli )
  15. tdf#98404 UX – While objects on a slide are being edited, notably text boxes, the new slide sorter Ctrl+Shift shortcut combinations (see bug 91909) incorrectly receive focus and move the slide ( Thanks to Gabor Kelemen )

WORKSFORME bugs

56 bugs have been retested by 27 people.

Top 10 testers

  1. Timur ( 9 )
  2. Buovjaga ( 6 )
  3. Julien Nabet ( 5 )
  4. Roman Kuznetsov ( 5 )
  5. raal ( 4 )
  6. Gabor Kelemen (allotropia) ( 2 )
  7. Faisal ( 2 )
  8. Dieter ( 2 )
  9. Telesto ( 2 )
  10. phv ( 2 )

DUPLICATED bugs

102 bugs have been duplicated by 26 people.

Top 10 testers

  1. Timur ( 14 )
  2. Mike Kaganski ( 11 )
  3. V Stuart Foote ( 8 )
  4. Gabor Kelemen (allotropia) ( 8 )
  5. Heiko Tietze ( 7 )
  6. Dieter ( 6 )
  7. Buovjaga ( 6 )
  8. Michael Warner ( 5 )
  9. Aron Budea ( 4 )
  10. raal ( 4 )

Verified bug fixes

42 bugs have been verified by 11 people.

Top 10 Verifiers

  1. NISZ LibreOffice Team ( 17 )
  2. Gerald Pfeifer ( 8 )
  3. BogdanB ( 5 )
  4. Dieter ( 3 )
  5. Xisco Faulí ( 3 )
  6. stragu ( 1 )
  7. Gabor Kelemen (allotropia) ( 1 )
  8. Rafael Lima ( 1 )
  9. Aron Budea ( 1 )
  10. Julien Nabet ( 1 )

Categorized Bugs

206 bugs have been categorized with a metabug by 21 people.

Top 10 Categorizers

  1. Aron Budea ( 31 )
  2. Gabor Kelemen (allotropia) ( 28 )
  3. Rafael Lima ( 27 )
  4. Timur ( 21 )
  5. Roman Kuznetsov ( 18 )
  6. Dieter ( 17 )
  7. László Németh ( 9 )
  8. Rizal Muttaqin ( 8 )
  9. V Stuart Foote ( 8 )
  10. raal ( 7 )

Regression Bugs

44

by x1sc0 at August 10, 2022 11:46 AM

August 03, 2022

Caolán McNamara

GTK[3|4] GtkScrollbar for writer documents

 

GTK4 screenshot of writer using true GtkScrollbars rather than themed Vcl ScrollBars. Long press enters gtk's usual fine control mode for scrolling.

by caolan (noreply@blogger.com) at August 03, 2022 04:03 PM

August 01, 2022

LibreOffice QA Blog

Help us to test LibreOffice 7.4 RC2!

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

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

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

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

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

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

Happy testing!

by Mike Saunders at August 01, 2022 11:13 AM

Miklos Vajna

Content controls in Writer: the plain text type

Writer now supports a 6th content control type: it is possible to insert a plain text content control.

This work is primarily for Collabora Online, done as a HackWeek project, but the feature is fully available in desktop Writer as well.

Motivation

Word-style plain text content control, user interface

Writer users can put a content control around a piece of rich text, see Content controls in Writer: dropdown, picture and date types for the first five types.

The next step in this journey is plain text: even if one of the big advantages of content controls over input fields is that they allow rich formatting, sometimes you want to restrict this. For example, if one has to fill in their name, then it makes no sense to mark the family name as bold while leaving the given name as non-bold. This would just lead to inconsistent look.

Results so far

There is now a new Form → Content Controls → Insert Plain Text Content Control menu item to create a plain text content control. If you try to make a selection that is a subset of the text inside the content control and you try to format it, the whole text in the content control is formatted to maintain the invariant that plain text has no formatting itself, just the formatting of the whole content control.

As usual, you can delete this content control later. You can also load/save it to ODT/DOCX and it's preserved.

How is this implemented?

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

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

Want to start using this?

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

by Miklos Vajna at August 01, 2022 07:57 AM

July 28, 2022

Michael Meeks

2022-07-28 Thursday

  • Poked at some hackery, added some debugging bits to the forkit to chase a problem. Submitted a LibOCon paper really looking forward to meeting up with people in person. And continued working on our very awesome (but no longer co-located) COOL days which will be in Berlin immediately afterwards with Eloy.

July 28, 2022 01:22 PM

Caolán McNamara

GTK4: Toolbar popups via GtkPopovers

 

Bootstrapped using GtkPopovers to implement popups from LibreOffice's main menubars for GTK4.

by caolan (noreply@blogger.com) at July 28, 2022 10:03 AM

July 27, 2022

Michael Meeks

2022-07-27 Wednesday

  • Mail chew, catch-up calls left & right; calls with interns & Pedro.
  • Band practice with H. in the evening ; chat with Thorsten.

July 27, 2022 09:00 PM

July 26, 2022

Michael Meeks

2022-07-26 Tuesday

  • David arrived early, off into London together - long tube ride, admired the Elizabeth line with E. - out to Grenwich Park for lunch. Checked out a camera-assisted Aldi test-store: taking things and putting them in your bag makes you feel like a shop-lifter oddly.
  • On to the Nautical museum, Queens museum, then enjoyed climbing over the Millennium dome as a family with David, Wagamamas afterwards, tube/drive home.

July 26, 2022 09:00 PM

July 25, 2022

Michael Meeks

2022-07-25 Monday

  • Mail chew, planning call, partner call, sat in on the first part of the TDF board call. Setup calls with interns, tried to clear various decks approaching holidays.
  • AllSaints PCC meeting; minuted.

July 25, 2022 09:00 PM

July 24, 2022

Michael Meeks

2022-07-24 Sunday

  • All Saints in the morning, Alex played Bass for the 1st time: nice, can play the violin instead. Pizza lunch. Read LOTR to babes. Cleaned up and circulated the PCC minutes.

July 24, 2022 09:00 PM

July 15, 2022

Luboš Luňák

Making unsorted lookups in Calc fast

 The VLOOKUP spreadsheet function by default requires the searched data to be sorted, and in that case it performs a fast binary search. If the data is not sorted (for example if it would be impractical to have the data that way), it is possible to explicitly tell VLOOKUP that the data is not sorted, in which case Calc did a linear one-by-one lookup. And there are other functions such as COUNTIF or SUMIF that essentially do a lookup too, and those cannot even be told that the data is sorted and so they processed the data linearly. With large spreadsheets this can actually take a noticeably long time. Bugreports such as tdf#139444, tdf#144777 or tdf#146546 say operations in such spreadsheets take minutes to complete, or even "freeze".

I wanted to do something about those for quite a while, as with the right idea making those much faster should be actually fairly simple. And the simple idea I had was to let Calc to sort the data first and then use fast binary search. These documents usually do lookups in the same fixed range of cells, so the linear search in the same unsorted data was rather a waste when done repeatedly. Surely Calc should be able to sort the data just once, cache it and then use that cached sort order repeatedly. In fact VLOOKUP already had a cache for results of lookup in the same area, used when doing lookup in the same row but different columns.

I finally found the time to do something about this when SUSE filled a bug to Collabora about their internal documents freezing on load and then crashing after 10 minutes. The LO thread pool class has a 10 minutes timeout as a safety measure after which it aborts, and the large number of lookups in the documents actually managed to exceed that timeout. So I can't actually say how slow it was before :), but I can quote Gerald Pfeifer from SUSE reporting the final numbers:

BeforeAfter
76m:56s CPU time (crash)9s CPU time (6s clock time)
126m:23s CPU time (crash)25s CPU time (15s clock time)
160m+ CPU time (crash)38s CPU time (23s clock time)
8m:56s CPU time (8m:56s clock time)14s CPU time (5s clock time)

This work is available in LibreOffice 7.4, and the TDF bugreports show similar improvements. In fact tdf#144777, titled "countifs() in Calc is slower than Excel's countifs()", now has a final comment saying that MS Office 2021 can do a specific document in 26s and LO 7.4 can do it in 2s. Good enough, I guess :).



by llunak (noreply@blogger.com) at July 15, 2022 11:09 AM

LibreOffice Design Blog

Vote on the LibreOffice branding icons

LibreOffice iconsThe LibreOffice application icons are undoubtedly awesome. But over the years they have become a bit dated and do not fit well into the zeitgeisty icon design. Plus, the set has no good main icon, which is in particular an issue on macOS where this icon is shown on the launcher bar.…

by Heiko Tietze at July 15, 2022 11:02 AM

July 12, 2022

LibreOffice QA Blog

LibreOffice 7.4 RC1 is available for testing

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

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

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

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

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

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

Happy testing!!

Download it now!

by x1sc0 at July 12, 2022 09:44 AM

July 05, 2022

LibreOffice QA Blog

QA/Dev Report: June 2022

General Activities

  1. LibreOffice 7.3.4 was released on June 9
  2. Adolfo Jayme Barrientos updated the font stack used in Help and made many small tweaks to content (with help from Celia Palacios). He also made some UI improvements
  3. Dietrich Schulten updated Calc help for cell copying after a new option was added to only select visible cells
  4. Seth Chaiklin updated help for Arrow styles, object anchoring, list indenting, table resizing and many menu and toolbar items. He also improved many LibreOffice UI strings and tooltips
  5. Ilmari Lauhakangas (TDF) improved the help for AutoCorrect
  6. Alain Romedenne documented some Python resources in Help and improved the help for ScriptForge
  7. Rafael Lima expanded the help for ScriptForge with many new features and made some smaller help fixes
  8. Olivier Hallot (TDF) added help pages for the new Calc Sparklines feature and pivot table formatting, updated the help for Insert Image and Navigator, expanded the help for toolbars and made many other smaller Help fixes. He also made many updates to extended tooltips
  9. Laurent Balland added a new Calc command GoTo Sheet and wrote help for it
  10. Christian Lohmaier (TDF) prepared for Apple Store distribution, for example fixing access to macOS address book and making Impress remote connection dialog not depend on Bluetooth access. He also made generating help files reproducible by changing how the ID generation works
  11. Miklos Vajna (Collabora) implemented allowing negative page border distances in Writer for interoperability and improved the HTML exporting of table backgrounds, lists and image links. He also continued working on colour themes in OOXML documents and content controls for Writer
  12. Jean-Pierre Ledure worked on the ScriptForge library
  13. Tünde Tóth (NISZ) made it so changing the autorecovery setting works again and made exporting of hyperlink style names interoperable with DOCX
  14. Szymon Kłos and Pranam Lashkari (Collabora) worked on LOKit improvements
  15. Eike Rathke (Red Hat) made several improvements to Calc arrays, fixed an issue with cell references, made it so number formatting for booleans is respected, fixed an undo issue related to cutting, improved the compatibility of VBA Range.Sort and made handling letter cases more robust
  16. Bartosz Kosiorek fixed the rendering of EMF+ gradients and implemented support for custom line caps in the graphics format
  17. Tomaž Vajngerl (Collabora) added support for interoperability of OOXML text inset values
  18. Julien Nabet fixed issues with databases, TIFF images and saving to network locations
  19. Jim Raykowski improved the vertical alignment of the Navigator view when tracking elements
  20. Andreas Heinisch made VBA parsing more robust, improved Writer’s Hyperlink dialog, improved data handling in pivot tables and made Basic’s MsgBox handle its arguments correctly
  21. László Németh added support for hyphenation zones to improve OOXML interoperability and implemented change tracking for numbered paragraphs in Writer. He also documented new hyphenation options in Help
  22. Xisco Faulí (TDF) wrote a script to get attachments from various online forums to help expand our test document corpus and fixed many crashes and other dangerous pieces of code detected by the document crash testing system. He also added over twenty automated tests
  23. Heiko Tietze (TDF) redesigned the Character Formatting dialog to be more useful for Asian and CTL language users, improved the Frame dialog and made the Snap to Grid command easier to access across the UI
  24. Armin Le Grand (allotropia) worked together with Samuel Mehrbrodt and Michael Stahl to make the “Use background fill” option interoperable with PPTX files
  25. Michael Stahl (allotropia) fixed many Writer regressions and made change tracking more robust
  26. Michael Weghorn improved the Qt/kf5 UI and made accessibility improvements
  27. Mike Kaganski (Collabora) continued improving the Fontwork dialog and icon list UI element, for example adding accessibility, made image cropping in imported PPTX files more robust, made improvements to Basic and fixed an issue with using file paths in macros that send emails with attachments. He also made many corrections to Help pages
  28. Caolán McNamara (Red Hat) continued working on TIFF image handling improvements, fixed dozens of crashes and made UI improvements
  29. Stephan Bergmann (Red Hat) made the warning dialog for executing external programs more reliable, removed deprecated idlc and regmerge from the SDK and made many code and build-related cleanups as well as test fixes
  30. Attila Szűcs (NISZ) made it so spaces at line ends in margins are displayed in Writer when View → Formatting Marks is active
  31. Rizal Muttaqin made many updates to the icon themes, including better differentiation between some icons
  32. Gábor Kelemen (allotropia) added new shortcuts for moving slides and turning off mouse as pen in Impress
  33. Noel Grandin (Collabora) made it so dialog size and position are remembered during a session, letter case font effects are shown in the Navigator, improved the look of comboboxes on macOS, made string to number replacements in Calc two orders of magnitude faster, improved the zooming performance in complex Writer documents and improved the import speed of complex PDF files. He also made many code cleanups and general optimisations
  34. Luboš Luňák (Collabora) fixed a graphical glitch when dragging text around in Calc’s formula bar, improved the performance of importing XLSX files with pivot tables, fixed several crash regressions and made code cleanups
  35. Justin Luth fixed issues with character style “None” being ignored in Number Styles upon ODT import, applied numbering leaking across Writer table cells in certain cases and missing frame borders in exported DOCX files
  36. Daniel Lohmann fixed a graphical glitch with OpenGL Impress transitions
  37. Thorsten Behrens (allotropia) made cross-building more robust
  38. Enhua Xu improved the sizing logic of the Sidebar
  39. Mark Hung fixed a couple of issues with CJK text grid
  40. Jan-Marek Glogowski (allotropia) fixed many Qt/kf5 UI issues, worked on the WebAssembly port and refactored window handling on Windows
  41. Lera Goncharuk improved the crash report analysis script
  42. Paris Oplopoios entered the official GSoC coding period and worked on compression support for graphics, improved WMF file detection and made CSS handling in SVG files more robust
  43. Chris Sherlock made cleanups in vcl, registry, io and store modules
  44. Tibor Nagy (NISZ) made fixes related to PPTX preset shapes and internal hyperlinks
  45. Balázs Varga (allotropia) fixed a regression affecting Calc’s conditional formatting and made a couple of build fixes
  46. René Engelhard (Debian) made several build fixes
  47. Gülşah Köse (Collabora) fixed an issue with the Glow effect
  48. Áron Budea (Collabora) fixed a UI regression in Calc Data Table dialog
  49. Henry Castro (Collabora) made some code cleanups
  50. Nathan Teodosio (Canonical) made compatibility fixes for Poppler PDF library 22.06
  51. Marco Cecchetti (Collabora) added support for emphasis spin animation in SVG export of Impress presentation
  52. Siddhant Chaudhary improved privacy when opening a locked file and made it so Paste Special options are remembered across sessions
  53. Hannah Meeks entered the official GSoC coding period and implemented the Value2 property for VBA’s Range object
  54. Ilhan Yesil fixed an issue with setting image URLs via UNO API
  55. Maxim Monastirsky worked on merging the Single Toolbar and Contextual Single UIs
  56. Lukas Molleman made many cleanups in Python scripts
  57. Khaled Hosny (Alif Type) made PDF exporting more robust regarding glyph widths
  58. Colomban Wendling (Hypra) worked on converting accessibility tests from Java to C++

Kudos to Ilmari Lauhakangas for helping to elaborate this list.

Reported Bugs

372 bugs, 53 of which are enhancements, have been reported by 220 people.

Top 10 Reporters

  1. Xisco Faulí ( 27 )
  2. NISZ LibreOffice Team ( 16 )
  3. Regina Henschel ( 11 )
  4. Gabor Kelemen (allotropia) ( 11 )
  5. Telesto ( 9 )
  6. Mike Kaganski ( 9 )
  7. Rafael Lima ( 9 )
  8. Eyal Rozenberg ( 7 )
  9. sdc.blanco ( 6 )
  10. phv ( 6 )

Triaged Bugs

403 bugs have been triaged by 69 people.

Top 10 Triagers

  1. Xisco Faulí ( 43 )
  2. Rafael Lima ( 35 )
  3. Timur ( 34 )
  4. Heiko Tietze ( 28 )
  5. Dieter ( 28 )
  6. Julien Nabet ( 25 )
  7. Aron Budea ( 17 )
  8. Buovjaga ( 17 )
  9. m.a.riosv ( 16 )
  10. NISZ LibreOffice Team ( 15 )

Resolution of resolved bugs

422 bugs have been set to RESOLVED.

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

Fixed Bugs

174 bugs have been fixed by 37 people.

Top 10 Fixers

  1. Noel Grandin ( 14 )
  2. Eike Rathke ( 13 )
  3. Seth Chaiklin ( 12 )
  4. Caolán McNamara ( 9 )
  5. Olivier Hallot ( 8 )
  6. Michael Stahl ( 8 )
  7. Luboš Luňák ( 8 )
  8. László Németh ( 7 )
  9. Miklos Vajna ( 5 )
  10. Justin Luth ( 4 )

List of high severity bugs fixed

  1. tdf#147822 LO Calc with RadioButton Crash in: ScUnoListenerCalls::ExecuteAndClear() – steps Comment 22 ( Thanks to Eike Rathke )
  2. tdf#149408 CRASH: opening the WriterInspectorTextPanel in a OLE object ( Thanks to Caolán McNamara )
  3. tdf#149502 CRASH/Hang: deleting sheet ( Thanks to Attila Szűcs )
  4. tdf#149529 Calc Insert Sheet + save Freeze ( Thanks to Caolán McNamara )
  5. tdf#149554 CRASH: using empty transpose ( Thanks to Luboš Luňák )
  6. tdf#149574 HANG: deleting sheet ( Thanks to Attila Szűcs )
  7. tdf#149679 CRASH: importing document in ScQueryEvaluator::compareByString ( Thanks to Luboš Luňák )
  8. tdf#149752 CRASH: importing spreadsheet ( Thanks to Luboš Luňák )

List of crashes fixed

  1. tdf#145843 Incidental Crash on macOS with skia raster ( Thanks to Luboš Luňák )
  2. tdf#147822 LO Calc with RadioButton Crash in: ScUnoListenerCalls::ExecuteAndClear() – steps Comment 22 ( Thanks to Eike Rathke )
  3. tdf#148624 Crash in: GrVkPipelineState::setAndBindInputAttachment(GrVkGpu *,gr_sp,GrVkCommandBuffer *) ( Thanks to Luboš Luňák )
  4. tdf#149325 VBA reference to a sheet by name, not index, crashes Calc ( Thanks to Eike Rathke )
  5. tdf#149389 Crash when closing document in dead key mode while adding comment ( Thanks to Noel Grandin )
  6. tdf#149408 CRASH: opening the WriterInspectorTextPanel in a OLE object ( Thanks to Caolán McNamara )
  7. tdf#149502 CRASH/Hang: deleting sheet ( Thanks to Attila Szűcs )
  8. tdf#149503 CRASH: Pasting content from sheet ( Thanks to Xisco Fauli )
  9. tdf#149507 CRASH: pasting and undoing ( Thanks to Michael Stahl )
  10. tdf#149509 CRASH: inserting page break in content control ( Thanks to Miklos Vajna )
  11. tdf#149550 CRASH: copying textbox ( Thanks to Attila Bakos (NISZ) )
  12. tdf#149554 CRASH: using empty transpose ( Thanks to Luboš Luňák )
  13. tdf#149655 Crash: “Helplines while moving” crashes debug-build ( Thanks to Noel Grandin )
  14. tdf#149679 CRASH: importing document in ScQueryEvaluator::compareByString ( Thanks to Luboš Luňák )
  15. tdf#149692 CRASH: importing document from commandline ( Thanks to Noel Grandin )
  16. tdf#149748 CRASH: selecting None from Color bar ( Thanks to Miklos Vajna )
  17. tdf#149752 CRASH: importing spreadsheet ( Thanks to Luboš Luňák )
  18. tdf#149787 CRASH: closing area dialog after closing Add color palette via extension dialog ( Thanks to Caolán McNamara )

List of performance issues fixed

  1. tdf#126109 EDITING/UI: Slow when replacing string to number ( Thanks to Noel Grandin )
  2. tdf#148309 Mail-merging a complex document with many data records significantly slower after fix for bug 144565 ( Thanks to Michael Stahl )
  3. tdf#149574 HANG: deleting sheet ( Thanks to Attila Szűcs )

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

  1. tdf#115523 FILEOPEN Track Changes: Writer does not show the change in number of deleted numbered paragraphs ( Thanks to László Németh )
  2. tdf#115524 FILEOPEN Track Changes does not show the change in number of added numbered paragraphs ( Thanks to László Németh )
  3. tdf#117539 Assert after cut and paste operation of a chart stick ( Thanks to Noel Grandin )
  4. tdf#43100 EDITING: It is better for spaces at the end of line to cause a new line ( Thanks to Stephan Bergmann )
  5. tdf#43244 VIEWING nonprinting characters (spaces) missing at page margin ( Thanks to Attila Szűcs )
  6. tdf#52602 Excel Visual Basic compatibility issue in LibreOffice Calc: NumberFormat to date/time ( Thanks to Eike Rathke )
  7. tdf#68335 EDITING: Maximum fixed line spacing limited to 10 cm ( Thanks to Gabor Kelemen )
  8. tdf#69750 Feature request: Preserve last used Paste special options selection for next session (after restarting LibreOffice) ( Thanks to Siddhant Chaudhary )
  9. tdf#75297 FORMATTING: Number Styles, character style of “None” is ignored ( Thanks to Justin Luth )
  10. tdf#81293 The dialog “manage names” forgets size and column width settings ( Thanks to Noel Grandin )

WORKSFORME bugs

42 bugs have been …

by x1sc0 at July 05, 2022 09:23 AM

July 04, 2022

Miklos Vajna

Document themes in Impress: shape fill

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

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

Motivation

PowerPoint-style themed shape fill, user interface

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

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

Results so far

Here is a demo that shows how it works:

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

PowerPoint-style themed shape fill, after opening

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

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

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

Here is how your shapes now look like:

PowerPoint-style themed shape fill, after changing the theme

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

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

You can see how this is useful when designing templates: a designer can create something good-looking, and all you have to do is to set the theme to the colors of your organization, and you're done.

How is this implemented?

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

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

Want to start using this?

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

by Miklos Vajna at July 04, 2022 06:23 AM

July 01, 2022

Marius Popa Adrian

Flamerobin 0.9.3.12 Snapshot released with a few Firebird 4 fixes

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

by Popa Adrian Marius (noreply@blogger.com) at July 01, 2022 02:57 PM

June 30, 2022

Jean Hollis Weber

LibreOffice 7.3 Base Guide published

Cover of Base 7.3 GuideThe LibreOffice documentation team published one new user guide in June: LibreOffice 7.3 Base Guide, available in free PDF and ODT. Low-cost printed copies are available from Lulu.com.

Visit the Documentation page on the LibreOffice website for links.

by Jean at June 30, 2022 12:17 AM

June 22, 2022

Marius Popa Adrian

Firebird 3.0.10 sub-release is available

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

by Popa Adrian Marius (noreply@blogger.com) at June 22, 2022 07:09 PM

June 01, 2022

Miklos Vajna

Content controls in Writer: dropdown, picture and date types

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

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

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

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

Motivation

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

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

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

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

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

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

Results

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

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

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

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

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

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

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

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

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

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

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

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

How is this implemented?

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

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

To make this more interesting, Rashesh Padia of Collabora continued exposing this in Collabora Online, see the PR at https://github.com/CollaboraOnline/online/pull/4803.

Want to start using this?

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

by Miklos Vajna at June 01, 2022 07:09 AM

May 30, 2022

Jean Hollis Weber

Draw and Impress Guides 7.3 published

Cover of Impress Guide 7.3Cover of Draw Guide 7.3New user guides from the LibreOffice documentation team published in May are LibreOffice 7.3 Draw Guide and LibreOffice 7.3 Impress Guide, available in free PDF, ODT, or to read in a browser. Low-cost printed copies are available from Lulu.com.

Visit the Documentation page on the LibreOffice website for links.

by Jean at May 30, 2022 12:07 AM

May 19, 2022

Caolán McNamara

Dark Style Preference with GTK

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

by caolan (noreply@blogger.com) at May 19, 2022 10:45 AM

LibreOffice Dev Blog

Interacting with the Review Bot on Gerrit

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

Interacting with the Review bot

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

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

A polite ping, still working on this bug?

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

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

Abandoned

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

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

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

More information

You can find more information about

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

by Hossein Nourikhah at May 19, 2022 06:57 AM