 Hello, hello, hello. Okay, thank you so much for being in this talk and I will try to summarize a bit of what we have been doing at Collabora in the in the recent year It is not my work. It is work of many So, so please appreciate their work like I had very little to do in this So I've just in preparation for this talk I've had a look like how many comments were there, but like it is that doesn't doesn't contribute only code like we have also people working on the QA working on that also like in the in the liberal arts community and and also on some other like more high-level things like Serving in the MC serving in the board and these things but like in this talk I would like to to focus on mostly the code contributions and these things So if we have a look like how many comments we have done since the last year it is 2,570 and It is done. It was done by like these 24 people So, so that this is their work that I'm going to be talking about In addition to the working on the code itself we have been we have been supporting people Mostly on the RC channel, but like also on the on the developer mailing list So sometimes asking so interacting with others, but also answering various culture like the questions if there was if There was a need for that We are also joining the ESC calls and hopefully like contributing positively there as well if we look at the patch reviews and Like kind of our involvement in the liberal arts community So like when I was counting like how many how many patches were reviewed then like I had to subtract the Some kind of like either self-reviews or you know colleague reviewing some somebody else's code So in master it was like 672 Commits in which like collaboration very viewing other people's code. So hopefully it's not too bad Then like one of the things that we were doing and it is like not like directly connected to Do some some features that were like paid by other companies? So so it was it was mostly like done by the by the collaborator for the community was lots of cleanup and code improvements Outstanding in these efforts is it's not grand in Who has done a tremendous amount of work? Like I was trying to go through all the comments, but it was not possible So I was just scanning that like there was lots of changes of the of the mutex that we had like our own our own stuff in in OSL changing that to the standard mutex then like own types for for sequences and These things were changed to STDQs STD vectors then Using using the string view which which helps you to not to have to allocate memory like in case In case like you want to do do something with the string Making it like more efficient. Well, it is kind of like micro optimization from one point of view on the other hand Like it helps the code base being more modern Then using unique pointer instead of explicit allocations instead of like having to check for now Just everywhere and on the other hand like in some cases it was what it was like more more useful to actually use STD optional instead of unique pointer. So Things like that then like that was like one group of things that he has done then Using more concrete pipes in chart to so chart to was was written with like very, you know a like approach and trying to show Show trying to use like, you know for everything lots of lots of Abstraction their references to ideal and whatnot. So one of the things now is doing as Using the concrete Types here. So so lots of us commit very like using sbx shape instead of like css reference exchange whatever there and There were also some internal, you know interfaces that were not needed that were used only inside the chart to and define there So again, like remove this ideals for that and instead using the code like right away he has done lots of lots of client tidy things also created plugins and and well, I Am not sure like if he has created some new plugin this year, but definitely he was he was Applying the existing plugins and doing code clean-ups based on that. So removal of unused methods of unused fields There were some unnecessary virtual methods removing you unused code In general and stuff like that then Some other group of things he has done as the as the code improvements were various optimizations On on various levels either it was like increasing the cache size of things or or like rewriting Pieces to use beta data structures that were like more fit for the purpose in that given part of the code Lots of bug fixes a sun you be sun so so like memory sanitization things and many many more like Lots lots of commits in there great stuff from now Then other people were doing various code clean-ups as well. So for example, Mike has has been using Has like introduced a new method in OU string that that helps to avoid allocation And like when you are like iterating you do not have to always like convert to string to do something He has modernized Use of a Windows API dropped some XP support on places Did some Simplified some code that was that was doing various various conversions Killed copy as paste on many places unified code Converted lots of lots of macros to lambdas or or or to templates things like this then Miklos has like apart from Lots of feature work. He has done. He has been prefixing members of various types for better readability was removing unused includes unused code things like that and and What I think is very important in these things. He has been documented Think like the code that that that was that was like under-documented and on the other hand like complicated So so so that it's extremely appreciated at least for me so and Many many others do like when they were doing something usually like there was a bit of Cleanup associated with that as well, and I see I'm going pretty quickly. Yeah, at least we will be on time so Then apart from this there were new features that were added by Barbara I think Like there were some that you have seen presentations about already, but let me let me just remind them them here so one of the things where Like huge spreadsheets so previously liberal this was limited to to much less columns than than what what was there in Microsoft Office and It was it was extremely extremely problematic because Because like you were getting this this error dialogue when you were trying to load a sheet that that that was over the limit It was not trivial to remove that so it was like part of the Noelle's work but also of others that That like it was necessary not only to increase the limit itself So like that would be easy just to change change the number there but like there were lots of associated data structures that were just not prepared for that and Like if you only change the constant to something larger Like many things either didn't work or if they were like they were slow and and not Not not performing or or causing problems. So this is now done. This is now in Which is which is awesome? then there was Another feature that was created and that is now part of the of the LibreOffice Was grammar checking on a server. So this is implemented using language tool and like language tool Previously already was integrated into into LibreOffice, but as an extension The difference is that like you can have the language tool like locally on your on your machine Directly because like it's an open-source project Unfortunately, like it doesn't use some advanced checking and the reason for that is that they are using some AI engine and for that like they are they need lots of lots of computing power on the on the GPU and So they are not providing that as part of this extension It is only like running on their premises this thing. So it is much more useful to actually use this online service for the for the checking itself it brings Like very useful stuff that like you can see even the like various colors of the underlines according to the if it is like Spell checking problem or if it is like grammar checking problem or if it is just a recommendation Of course, it is possible to use their free version But like it is possible also to upgrade to their to their like full version and then like put the key into the dialogue in in LibreOffice Also like associated with that is some some kind of like privacy concern So it is off by default, but the user can explicitly go to the to the tools options and like see their See their like their private privacy policy So there's a link to the privacy policy and if the user agrees to that then like they can explicitly explicitly enable that and and see that functional in LibreOffice Then there were the sparklines I've Well, Tomasz has already had the presentation about the sparklines So I suppose like you know a lot about the sparklines these days But like me let me just summarize it for those like who haven't seen that talk The sparklines are like small graphs that are like inside the cell in in a spreadsheet So this was work that was funded by the European Union Tomasz has implemented that beautiful feature again very important for interoperable Interoperability, so so it makes it advances LibreOffice again further to like being very well interoperable Another thing was was web piece support So now all of the document documents Are able to to have like not only like copying and pasting the web P into into LibreOffice But like you can save it you can you can load it have it there Which is which is good then Another thing that was there was already a presentation about is is content controls Again a very important interoperability feature In writer that helps to creating forms that the the users can then fill in There are many types of the content controls that you can have in writer So like you can you can have rich text Which which is like more than just just an input field there like you can do some styling in there You can have checkboxes drop drop-downs pictures and date Again, it was work that was funded by the European Union then it is it is possible to to to create PDF forms by the way so So like you can you can have it now as this like including the dates and and all these things that that are possible Using the form controls as well Sorry No, no, no, it's only the export like with the with the opening and editing like it's more And harder and more complex situation because like at the moment we have or maybe should I finish first and then After like it's a very interesting problem I'm very happy to talk about that But like let me finish that like it is two three more slides and and I will go into this So so so that's that's that's it and another thing that is again like trying to Proceed with with that feature that is very important in the Microsoft Office world is theming in impress So if you have been using the like modern PowerPoint, you could see that they have they have Very advanced possibility of the theming of the slides So now like it is very easy there to just Just like put the text somehow and pictures somehow like into the slide Not caring at all about the layout and then like on the right-hand side Like you will see some previews of the core of the of the slide That is somehow they say like they use some AI for like generating that I don't know if that's true or not but like one of the things that this is using heavily is the theming and if we want to to to bring a feature like this into Into LibreOffice at some stage like the theming is one of the building blocks that is very important for that So so I'm very happy that that we have at least some support for the theming these days And hope that it will it will like get us again further in the LibreOffice Possibilities in the impress then we have We have implemented the the data tables which are like small tables under the charts that make the presentation of the data much more convenient from the user point of view like it is just one click in the in the In the dialogue but like from the usability point of view makes the makes the charts are just much more readable and better and The last thing that did I have here in the slides is a depot a translation. So It was it was work that was funded or co-funded by by Ed Finnis and it is now that similarly to To the language tool you have you have a dialogue in tools options where you can specify Like what the people instance to use and and you can see the privacy policy And then like if you enable that you can select the paragraph and and then just hit translate and Like choose the language and it will translate it and it will translate not only the text it also like preserves some of the Some of the styling of that so like the bald idyllic and these things or underlines It is unfortunately met it because because the How is it done is that like we convert the paragraph to HTML send it send it to depot To to translate the HTML. They are like reasonably able to like preserve like Where it is like starting and ending in the translated thing and then put it back like convert it again from HTML into Into something that we paste instead of the original paragraph and and have that translated so I think very useful thing to have as well and In addition to that Like we have exposed lots of these things also to the bravis kids so that like we can use it in the collaboration line But like let me let me list that what is now possible to use from the from the colabora Sorry from the LibreOffice kit point of view So it is that like anybody who would be interacting with with LibreOffice using LibreOffice kit can can use that so now it is possible to add custom fonts or or be notified about missing fonts so that like It is possible to create some user interface to upload new fonts controlling this this content controls Things like form fill button drop down picture day Callback from print ranges. So like it is possible to see in the spreadsheet what like what are the the boundaries for the for the printing and Also like math for more related improvements So that so that it is ultimately possible to to have a math formula edited edited by the LibreOffice kit as well So that's it from me. So before any other questions, I will quickly ask answer this This PDF import. So actually in LibreOffice, there are currently two ways of PDF import So one is the original one using lipoppler that is like very old from the licensing reasons It has to be at different like separate separate binary and it then like streams some commands into LibreOffice and from that like it builds it builds the document and Like this way like you cannot have like extremely good fidelity But on the other hand like you get all the content from the PDF then there is another possibility and that is using that is using Help me PDF film It is using PDF film which is which is the library that is being used in Chromium for PDF like Showing and it has perfect fidelity the downside of that is that in on the page. It is it is a picture So there are plans to like Tomas has has improved that so that So that it is possible to insert commands and treat them the normal way But there are like in general plans to to be able to extend that to to forms and these things But like Tomas will be able to tell you much more Anything else? Yes, go ahead You mentioned the theming in in-press presentations and I would I would assume that before work on that there would be work on on supporting Styles like more kinds of styles in impress or paragraph and character styles and then maybe also styles for Graphical objects, which aren't pages Anyway enhancing the style support and then doing the theming on top of that So if it's not done on top of that, what is what is the approach? So if I remember correctly like these things are a bit orthogonal, so the the styles can use the themes So it is not that the theme would be using some some some different styles So so it is that like inside style like you can also do the themes or something like that But like again, Tomas would know much much more and much better, but he seems to agree with me at least like From what I see with his body language