 Okay, good afternoon everybody. So I am Muthu Swaminyan. This time I chose a little different topic in the sense that instead of talking about what I did in the previous year, I am trying to talk about what we are currently doing and what we plan to do, specifically from the point of interoperability in impress. Though there are points which are applicable to LibreOffice as a whole, I would try and concentrate on impress, specifically here. These are the three things that I am trying to cover. One is the master slides versus the layouts. A lot of people who are face troubles with the layouts. When you get a PPTX or PPT from PowerPoint, you import and you try exporting your layouts to go where we see why that happens and what we could do about it. And the fill angles, a bit about the gradient fill angles specifically. And the missing features like we do not have gradient fills for text, for example, or for lines. People use workarounds like using an image of a line and then dragging it across and it seems to work most cases, but not a very elegant solution. So let's see some background. So I work with Ericsson currently. In Ericsson we have a group of people who use LibreOffice and most of the other people use Emma's office. So most of these problems are because of the templates and the corporate documents that are there in the PPT doc etc. And here we have a pool of LibreOffice users who try and use that and send documents across and the others complain that their problems are broken etc. So that's the background then. So starting with Emma's slides. You get snippets from different sources including Office Help. So they put it this way. So Emma's slide is the top slide in the hierarchy of slides that store information about team slide layouts etc. If you see here the most important point is around the kind of look that the slide is storing. The color, the background color, the font, effects etc. The layout, the slide layouts are more to do with the placeholders on them. So it's like you have a muscle slide and then you have different layouts. You can place your text there. Normally, again, one set of layouts of a team will have one muscle slide. There's no reason why but that's how they keep arranging that way. Let's see. So this is the idea behind the muscle slide and the layout but the reality is different. Layouts contain the look-related objects as well. Like you see here, this is one of the standard Emma's Office muscle slides and the layers that you get. The first layer itself has a different background. Everything is different. And in many cases or at least in quite some cases where you see the layouts actually use very little from the muscle slide. Maybe just the foot or the elements here and there. But in a way they kind of become a new slide of its own. Coming to LibreOffice, what we do is we have muscle slides which are named differently. Sometimes they are called muscle pages in some places. Sometimes they are called slide designs. Pretty confusing. They use different naming everywhere. Like if you right-click, it's called the slide design. And if you use a view, it's called the muscle slides and so on. Again, these take care of the elements of the placeholders to some extent. But there are layouts in LibreOffice which are mainly very strict in the sense that they just have the placeholders. Like you see the bottom there. They do not have any look and feel elements. There are no images or anything. There are text boxes which you can place elsewhere. That said, this is majorly hard-ported. You don't have so much flexibility to change the tool slides that you have. There was some bit of work done in GSOC by Rewish in trying to move these things into an XML file and so on. So some bit of work is there. Currently these are defined in layout list.xml. You do have some flexibility to change it but it's not easy at all. And that file is specific to LibreOffice installation. So you would have to go there and manually change stuff there. It's a bit of pain indeed. So, coming to the next set which is interesting here is what happens when we actually import it. We have a PPDX slide or let's say a DVD and we import it in LibreOffice. What happens is let's say you have one master slide and two layouts L1 and L2 and you have the second master slide with L2 and probably a layout for L3. And then probably there's only one slide in this deck which is slide one which uses a layout one and hence the master page one. So when you import this, that is what you see there. You would see a merged master slide in Impress and a slide to it. So the rest of the items are in a way dropped completely. So you would get the contents in M1 and L1 depending on what parts are being used and the slide one of course the rest are dropped. So what do we do when we export this? So that's an interesting case. So when we actually export this, we do not have a layout information now. So we have the merged master page there when you export. And these two 12 slide layouts that are there, they are directly exported. So it's kind of hard-coded. So what happens if you have two master pages in Impress? So what happens is then you get two sets of those in a way dummy layouts if you can call them as. So you kind of get 12 plus 12, 24 layouts which are nothing but just copies of this and the last page. This is what happens actually. So troubles here. Of course multiple master slides. So in a way the original file had one master slide and probably a number of slides. Now it becomes a number of master slides because your layouts, if you see here, let's say you had another slide which uses L2. You would actually end up having two master slides there which is L1 plus M1 and L2 plus M1. So you would have two master slides and when you export it, now you have 2 into 12 which is 24 layouts being exported actually. All the layouts are like I said standard because they are in a kind of hard-coded in Impress. And specifically the problems occur when it starts dropping master slides and layouts because the corporate documents, you have the branding elements etc. have layouts which are specific and they contain the config elements as well. Now when you save them they are, rather than import them, they are dropped there. There is no relation between original layouts and exported layouts like you can see. The original layouts are probably from MS Office because it's the config etc. But when you export it, it's the standard ones. So like I said, the template is not going to break every week. Let's see what we can do about it. One thing that we can do is we can create file specific layouts in the Graphless which is basically Impress. This kind of makes it easier for people to create file specific layouts but then it still does not contain our look-related elements there. What we can also do is try and create child master slides. In a way, if you see the MS Office it's nothing but they also are in a way master slides. Though they are called layouts but they kind of do the work that the master pages do as well. So these are, if you consider two levels, we can create probably 10 levels of them. But again, it gives the maximum flexibility. You can add your config elements. You can have a child of a child of a child and so on. But the UI would be tricky. How would you edit them? And it could become very very confusing for the user. So what we can instead do or what we are trying to do right now in the process is that we can round-trip the master pages from the original file. So let's say we have the merge slide, merge master page and then the slide. And you try to export it. The original set of slides which is basically the m1, m1, m2, m2, m3 comes from the original file. So this set is, we can directly export them there first. And then we can export the original master pages that are required by the slides. This way, in a way we can save the master pages and layouts. We will not lose them. This seems to work so far but then there would be surely a loophole there. When you export it again, we need to be a little careful in terms of trying to see that this is what we have and when you import it. So when you actually import it, we need to be careful that this set of slides were created by Apple so we just import those two. So we are trying to do some work around this. We have done some DOC's etc. We hope to see this soon implemented in the breakfast. Brother, is there any questions so far in here? Are you so tight on the second level? Did they just have two levels or are they about two levels? As far as I know they have just two levels. I'm not sure if they have any other questions. So the next feature that we are talking about is the gradient diagonal film. I should refer the original analysis here. This is part of one of the bugs which we had raised and we are trying to fix that. In our documents we have a specific gradient film needs to be diagonal. It's easier for a squire, just say it for degrees and you'll be happy. But what happens is that when you make it as a rectangle, it's no longer 45 degrees. Now you have the film which is the angle is 45 degrees of the film but the diagonal is lost. So what we currently do is manually have a kind of a working for automatically finding out what the angle needs to be. But if you need to do it manually it becomes really tricky to find the angle. You can do it approximately only but not specifically say okay you made the diagonal film. What is required is this which is called the scaled angle. So it's 45 degrees but for a rectangle you use scaled angle. So it kind of becomes diagonal always. So one of the ways to do this is of course implement the scale attribute in the ODF and implement it. Probably not easier. The other one which is also suggested by Lysna was to use the SVG's film. We can use SVG's linear gradient film inside the ODF specification. But I think this would be a generic solution which means that we have all the SVG features which is good. But at the same time it would probably take a little longer to implement this one because you need to do it for both input, export and the features as well to do this one. We are currently doing the first set which is basically the implementation scale attribute for the ODF file gradient film which is probably nice. Any questions in this section? Moving on then. We have a gradient film for text and lines which is quite interesting. This is the screenshot from Emma's office. If you see there, the hollow word has yellow color to kind of a blackish color. Gradient being filled in at an angle I think 45 degrees is what I used. If you use a long line then it kind of becomes each line is used as a set. So the first line is filled with the gradient from the start to end with an angle whatever you need. The second line is treated as a fresh line and then filled across. There's actually one single line because it's a long line and gets cut and then puts it in the next line. But the fill itself is treated separately. Again there if you start adding let's say a couple of dots at the end the fill automatically becomes now from the start to the end. So as you type it kind of changes. Again it's not individual character being a different color, individual character itself has a gradient. So it looks much more nicer anyway. One of the solutions which I was thinking was instead of trying to fill the gradient across the characters is just use separate colors for the text. Which is kind of a simple solution but you may not look at all that great because you will find yellow then probably some of the color and so on separately. But now that's a proper solution there. That said it also has multi-stop gradients. You can have let's say a number of colors there and it can fill from yellow to blue, blue to red, red to black. Same goes for lines. You can have lines, gradient lines and the color multi-stop gradients lines as well. Currently like I said what we do is we kind of store it as an image and we give it as a gallery. And drag and drop, drag it across and let's do. It's not a very alien solution. That said we can have such designs but you can also have for shapes. This simple rectangle but then you can have shapes and the shapes, the lines and the shapes itself can have the gradient fills etc. You can also have a mix, basically a fill line, the line fill and you can have them separate. Why we need it? It's basically, it looks pretty, more features of course. But then the major point here is there are a lot of organizations which have branding materials which depend on these. They have specific colors, they have specific stops, they have specific angles. Like I said in Edison there's a specification that it has to go from diagonal one then to the other end. So in such cases using LibreOffice becomes very tricky currently. So we are trying to do this feature so that it becomes nicer. What is required of course we need to first do the gradients for the text. I mean you can do it separately of course but then the gradients for the lines. And then the multi-stop gradients. We do not have multi-stop gradients for the area fill as well. We just have two color gradients. There was some work being done by Senorship but I don't think it's much yet. Let's see. References, these are some of the references which I said I took the content from. That's it, any other questions so far? That's it then for my side. Thank you so much. How do you serialize the gradients? How do you write them as XML? Okay, so they are in OXM1 you can actually specify the stops called the gradient stops. You specify the stops and you say okay. This particular percentage of the point, this color changes something else. You have a gradient color as a set of element and then you have the stops. This is not yet possible. Are you thinking about how to make it possible? Yeah, the one way is to use SVG if SVG supports it. But otherwise implementing this in first in the code. Probably it's a little easier. What we are trying to do is if you see the multi-stop gradients are nothing but you can break it down into two gradients. So from yellow to blue you first do it and then from blue to red and then from red to black. That's kind of an easy way. That's what we are trying to do first. But then yeah, when you write it in OXM1 you can actually write it out as stops. When you use gradients you have indeed a strong, if you say from blue to red to green, you have indeed the point where it's a strong, full, green color in between. So it's actually that. So when you actually put a stop there at the blue, it's just changing that. Visibly it is not much. I find particularly working on the master pages very interesting. Of course those nice colors are, and my colors, it's really a multi-sale for business branding. But the master pages, if it works better, it's a big win. That's the case for everybody, I think. And for us, the interoperability, there's a lot of things that break because it drops stuff. And we also merge stuff, which is... Yeah, but yeah, I think we take one step at a time. We do the round-tripping first and probably attack the other ones later. Any other questions, ma'am? Breaking it to support the transparency? Well, in a way, but normally what I've seen so far is that they're just gradient colors. But that's a good question, I haven't dug that yet. It is surely the object transparency, but I'm not sure about whether you can choose a color and specify a transparency, that's right. The text itself will be completely transparent, and some will be translucent. Interesting. Any other questions? Thank you so much, thanks a lot.