Quantcast
Channel: What is Jan Holešovský - Kendy doing

LibreOffice build on Windows with ccache for MSVC

$
0
0

I have just revived my 4 years old hack that adds MSVC support to ccache. The use case is a bit limited - you have to use it from inside cygwin; but that is exactly what LibreOffice needs :-) So I have updated LibreOffice's configure.in to be able to handle it well - so far in the libreoffice-3-4 branch, but it will get to master the next time we merge the branch there.

How to use it? Download the ccache.exe binary, put it to eg. your ~/bin (or somewhere else in your PATH), setup the CC and CXX environment variables, and compile as you are used to (./autogen.sh, make, ...), like:

 CC="ccache C:/PROGRA~1/MICROS~1.0/VC/bin/cl.exe" CXX="ccache C:/PROGRA~1/MICROS~1.0/VC/bin/cl.exe" ./autogen.sh make 

And yes, it would be great to do the ccache support as simple as a --enable-ccache configure option - but I did not find time to fine tune it on the other platforms, so I'll go for that only when I find there is a demand for that - drop me a mail ;-)

If you want to have a look at the ccache's statistics, run ccache -s. I've done no measurement how much time it saves overall - if are able to do any, please mail me your results too.


Toolbar improvements

$
0
0

On Friday, I was able to spend a bit of time on UI hacking which I love. Those small and tiny pieces that when combined, do a big difference - do you remember my GSoC task proposal in this area? ;-) Unfortunately, no student has picked that; but let's see if somebody else gets interested.

This time it was the toolbar's menus. So far those menus were too prominently visible on the toolbar, while not that much used. Additionally, you can get the same functionality as a context menu - when you right-click on the toolbar. Together with our UX guys, we agreed that the best will be to remove them, and show the ">>" marks only when there are hidden toolbar items. You can see the changes on a "Before/After" screenshot:

And how does it look like when there are hidden items:

This will be available in LibreOffice 3.5. There is a small follow-up Easy Hack, see EasyHack: Make the toolbar menu easier. I'll be happy to provide you with details if you want to try this one - just drop me a mail.

LibreOffice v češtině

$
0
0

Chcete si stáhnout LibreOffice? Doporučím vám tedy stránky LibreOffice v češtině, abyste se k instalátoru nemuseli dostávat přes anglické stránky :-)

LibreOffice 3.4 má uživatelské rozhraní kompletně přeložené do češtiny, nápovědu z 90%. 3.5, příští verze, je na tom trochu hůře - uživatelské rozhraní 97%, nápověda 89%. Pokud chcete tato čísla zlepšit, není nic jednoduššího - zaregistrujte se na LibreOffice Pootle serveru, pošlete mi své uživatelské jméno na kendy @ suse cz a já vám zařídím potřebná oprávnění.

LibreOffice 3.5 toho má hodně co nabídnout, byla by škoda nemít všechno přeloženo!

Improved Rulers

$
0
0

Recently I was able to spend a bit of time on the UI hacking again; and this time it was the "Rulers" in Writer. Thanks to Mirek M. (BTW, have you seen his Call for GSoC projects designs, and Call for Templates blog entries?) who provided me with a helpful mockup, I was able able to implement the new look quickly and effectively, mostly by removing code :-)

I hope I will be able to do more such changes before the 3.6 feature freeze; I'll keep you informed. And if anybody of you is interested in UI-related hacking, just mail me or ping me on the IRC (kendy on irc.freenode.net), and I'll provide you with code pointers to other interesting areas :-)

LibreOffice Tutorial Videos

$
0
0

A user just asked on IRC how to print a serie of descriptions of photos, when he has a list in a spreadsheet. I answered that Mail Merge is what he is searching for - but he did not know what Mail Merge was. I found a very helpful video showing the mail merge in LibreOffice, so I want to share it with you :-)

[There is also a shortcut to Mail Merge when you understand the concept, try Tools -> Mail Merge Wizard..., of course.]

There are more LibreOffice videos out there, backed up by this nicely structured webpage. Might be worth watching the other videos too :-)

LibreOffice HackFest in Munich: Apply Style Combobox

$
0
0

The first day of the LibreOffice HackFest in Munich is nearly over, and I am happy to say that I've already achieved what I wanted to hack on:

This is how the "Apply Style" combo box looks like from now on - in LibreOffice 4.0, we will show previews of the styles directly in there, helping the users to choose the right style conveniently.

I can imagine some follow-up work, like being able to edit the style directly from the menu entry, instead of having to choose "More...", and editing from there; if you are interested to hack on this, I'll be glad to show you where :-) - just mail me.

LibreOffice 4.0: Use Firefox Personas in your favorite office suite

$
0
0

At the very last minute, my patches to support Firefox Personas in LibreOffice were accepted as a late feature for 4.0, hooray! :-) What does it mean?

Personas are easy-to-use themes that let you personalize the look of your Firefox says the Personas page. In fact, it is a great collection of many nice pictures you can apply in your Firefox with one click.

Olivier had the great idea to reuse them in LibreOffice too. I provided him with few code pointers to implement the feature, but then I decided this is actually so fun project that I wanted to do it myself (sorry, Olivier!) - and started that at the Munich HackFest. Long story short, here is the result:

Unfortunately we cannot choose Personas in LibreOffice with just one click as in Firefox, but it is as easy as it can be - just download LibreOffice 4.0 RC1 (or later) when available, choose Tools -> Options... -> Personalization -> Select Persona, and the rest is trivial, the dialog will lead you through the necessary steps. Enjoy!

Recent documents in LibreOffice

$
0
0

This is again one of those little improvements that make LibreOffice much more usable, and that I so much love hacking on. I implemented a dropdown for the Open toolbar button that brings an easy access to the Recent Documents, and sent that the UX mailing list for feedback. I got some really useful hints. Even better - I gave Samuel code pointers to play with this a bit, and he came up with a beautiful patch that implements his ideas. And here is the result:

Samuel - thank you for this! :-) For anybody who would like to bring this functionality to the Start Center too (the screen you see when you start LibreOffice), here is an Easy Hack that will result in reusing the code for the Start Center too; and also will delete lots of duplicate code.


Moved my blog

$
0
0
Recently I decided to update my blog to something that will be less awkward than NanoBlogger I have been using until now. I mean, writing the entries in vim is great, running the nb script is easy, but the turnover to preview it, fix, run the script again etc. is just annoying.

Now I moved my old blog to holesovsky.blogspot.com, which will be much easier for me to handle. With some Perl scripting, I even converted all the old entries here, so that the old blog can really RIP.

Small note to the conversion

When you are using the blogger.com's Import XML feature, and it looks like the import is taking too long (minutes or so), the answer is simple: Your XML was not accepted by blogger.com. I have seen reports of people waiting several hours to import the blog.

Don't wait in such cases - it was just that an error occurred, and the UI has not reported that. Just try to find out what is in the XML that could have caused the import to get stuck - usual suspects are &'s instead of " or OTOH things like &Acaron;, or other less common escapes.

LibreOffice 4.2: Better Windows bug reports

$
0
0
If you are not a programmer, and still want to help LibreOffice, there are many ways; one of them is submitting good bug reports. And a good bug report means a report with as much information as possible - one that contains the exact version, file(s) that caused the issue, description of the steps that lead to the problem.

In case LibreOffice crashes for you (sorry for that! - we are trying hard to avoid such situations, but it still may happen), and you are on Windows, description of the problem used to be all you were able to do - but now you can do more: you can attach a backtrace, and help the developers tremendously.

What is a backtrace? It is a log describing where exactly the program failed. It used to be very hard to get one on Windows, as you had to build your own LibreOffice.

Now it is much easier - you can provide such backtraces either using the official builds starting with LibreOffice 4.2.0rc1, or using the daily builds, without the need to build anything - you can just connect to a so called symbols server, and that's it.

Official releases

Just install LibreOffice 4.2.0rc1 (or later when available), and follow the information on the How to get a backtrace wiki page, it will lead you through the process. Thank you +Christian Lohmaier so much for setting that up!

Daily builds

I have updated my tinderbox to produce daily builds that are ready for debugging too. If you see a crash, it is worth checking if it happens in the most recent daily builds too - so installing this will allow you to check it, and directly provide a backtrace too.

Please try it out - I am looking forward to seeing backtraces in the your bugreports. In case you have trouble with the How to get a backtrace description, or the process itself, please let me know - or improve the page yourself; it is wiki, after all :-)

Oh, and all this wouldn't be possible without Luboš Luňák, +Fridrich Strba and others who have helped to connect various pieces together - thank you!

Help needed: Translating Getting Started Guide to Czech (or Slovak)

$
0
0
Standa Horáček just posted information about a shared effort to translate the LibreOffice Getting Started Guide to Czech and Slovak Language. You can find more information also in the original post by Miloš Šrámek.

Why shared?

The Czech and Slovak languages are close enough for Google translate to do a very good job of translating one to the other. So you as a translator can choose if you work on the Czech or the Slovak version, and the other team will use the automatic translation. After that, they will just fix the parts where the machine translation failed, which will save a lot of work.

If you are interested, please help spreading the word. Or even better - help translating! :-)

Story of the New Start Center in LibreOffice 4.2

$
0
0
LibreOffice 4.2 has been released - have you tried it? If yes, you might have experienced the new start center that looks about like this:
Many people have contributed to it, and this is going to be a "Thank you" blog post. I hope I remember everyone who has helped; if not, please let me know in the comment - would be a shame to miss anyone.

Original idea

It all started as a Google Summer of Code idea that I have filed, and later mentored. Basically, I wanted a student to reuse the Caolan McNamara's awesome dynamic dialogs to provide modern and easy way to create a beautiful dialog, and GSoC 2012 project that introduced a new template manager in LibreOffice 4.0 - done by Rafael Dominguez and Cédric Bosdonnat.

The work itself

The main part of the work was done by Krisztian Pinter, who was working on it as a GSoC project too. His first task was to convert the old start center to the dynamic layout, so that the start center could much more easily adapt when the user resizes the screen.

But that was not all - his next task was to plug the template manager code in, and extend it so that it was able to show recent files instead of the templates. He  made the needed changes, adapted the look to the preliminary design made by the LibreOffice Design / UX team, and the GSoC period was over :-)

We have integrated it into the LibreOffice master, and I was patiently waiting when we get the final look blueprint from the design guys.

The final look

And it came! The code was in the master and in the daily builds, so everyone could play with it. For some time, nobody reacted on my call for the final look, but finally, Mateusz Zasuwik sent a design proposal of Krzysztof Ponikiewski to the LibreOffice Design mailing list which lead to discussion, and in the end to the start center we have now in 4.2.

The the ultimate version of the design was done mostly by Stefan Knorr, and Mirek Mazel, but others contributed to that too. I've adapted the code accordingly, Rodolfo Ribeiro Gomes helped me with some changes, and Tamas Zolnai fixed many bugs to give it the final, polished look & feel.

Thank you!

As you can see, the new start center couldn't have happened without shared work of many people - I want to thank you all. And of course, thank you Google for the Google for Summer of Code, I hope we will be able to participate as an organization this year again.

At the very moment, the LibreOffice UX Hackfest is taking place in Brussels, and I am working on few more improvements in the start center - like previews of even other filetypes than just ODF. But that will be for LibreOffice 4.3...

FOSDEM: How the Text in Writer Gets on the Screen

$
0
0
At FOSDEM 2014 I had a short presentation about how the text gets drawn in Writer. It is mostly an explanation of the backtrace you get when you stop the drawing at the right time; hopefully it is helpful in case you want to know more about LibreOffice Writer.

How the Text in Writer Gets on the Screen
Click to see the entire presentation

Improved OS X look of the upcoming LibreOffice 4.3

$
0
0
The last week, just after FOSDEM, I was one of the lucky ones who participated in the LibreOffice UX Hackfest that was generously hosted by +Betacowork.

We achieved a lot (incomplete list - many haven't added their achievements yet), but I want to particularly highlight the result of me teaming up with +Joren dc and +Tor Lillqvist. It is the new look of LibreOffice on OS X:

Improved OS X look of LibreOffice

Have a look at the toolbar - it is using CoreUI to render the gradient in a native way. It is based on similar work that has been done for Firefox - thank you, Markus Stange, for your observations & code, we have reused pieces under the MPL license.

It is visible that the work is not finished yet; we need to extend the gradient to cover even the title bar (or how is it called exactly?), but there is enough time for the LibreOffice 4.3 feature freeze in May - I am sure it will be perfect by then.

Other Improvements

Other than that, I have extended the new Start Center to be able to show previews of other file formats than just ODF. As a sideeffect, it should improve the startup speed with many previews.

The last thing I've done was that I have converted the Template Manager to use dynamic widget layout. This led to removing many hacks there that made the Template Manager resizable even before - but using the .ui is much more elegant, and potentially may allow integration of the Template Manager directly into the Start Center.

Overall, the UX hackfest was awesome - I am really looking forward to the next one :-) Thank you, Mirek, for organizing it!

LibreOffice GSoC user interface tasks

$
0
0
If you are a student, love programming, and want to have fun & earn some money at the same time, you should really consider applying for Google Summer of Code 2014. And choose LibreOffice as the project - we have a really nice set of GSoC ideas to work on.

Working on a GSoC task has a real impact - for example the new LibreOffice 4.2 start center is the result of a GSoC task. Yes, the very face of new LibreOffice version is here thanks to Summer of Code.

I am going to mentor this year again, mostly user interface ideas. Let me summarize them here:

  • Improved Color Selection
    Something that is really badly needed in LibreOffice. Selecting a color that is not pre-defined is a painful task for users - help us to finally improve the experience there!
  • Further improvements in the Template manager
    The Template manager is a result of an older GSoC task too. We would like to integrate it into the new Start center, to get a seamless experience for the user.
  • Improve usability of Personas
    This is a task to make the selecting the themes for your LibreOffice more pleasant, with better integration with Firefox Themes.
  • Revamp the Gallery tool
    This task will enable the user to browse online gallery of shapes, based on an older work that made this somehow possible.
Each of this tasks will make LibreOffice more beautiful, more useful, and more pleasant to work with.

If you want to apply for any of these, don't forget that we require you to solve a programming Easy Hack first; the more of them you do, the better chances you have that we will select you.

And if you have any questions, don't hesitate to ask :-)

Removing files from the recent documents list

$
0
0
I participated in the Gran Canaria LibreOffice Hackfest recently, and once again, it was a great one :-) - I am looking forward to the next hackfest from the very minute I boarded the plane home.

As always, it was lots of talking to others, sharing ideas, plugging in the new people (few students appeared, and were interested - one even drew few dialogs in Glade, still need to integrate them). And the rest of the time, I was hacking - LibreOffice Start center again:


This time, it was the removal of files from the recent documents in the Start center; you can now point the mouse to the cross at the top right side of the document you want to remove from the list (but not from the disk of course!), a click - it is gone.

It will be available in LibreOffice 4.3; try the betas soon!

DrawingLayer: What Should You Know about It, and my other LibreOffice Conference 2014 presentations

$
0
0
At the LibreOffice Conference 2014, I had three presentations. The first one was about DrawingLayer, one of the core technologies in LibreOffice that is not known enough, which consequently leads to people not using it, or being afraid of doing changes there:
Click to see the presentation.

Based on the research I've done for the presentation, I extended the DrawingLayer's README and svx's README.

The other presentation was a Lightning talk giving a bit of a detail about the boost::unordered_map removal I've done, that was mentioned in the Miklos' blog post:

Click to see the presentation.
And the last presentation was about how to create a custom widget using the LibreOffice's widget toolkit, VCL:
Click to see the presentation.

The LibreOffice Conference is awesome, I'm extremely glad I can be here, and present to so many great people!

LibreOffice Design: Easy Hacks

LibreOffice Design Team

Using Icecream to speed up the LibreOffice Android build

$
0
0
Lots of us is using Icecream distributed compiler for the LibreOffice development. It is usually the first thing we set up at a hackfest, to speed up the build for everybody (given that it only seldom occurs that all the people build at the same time).

The LibreOffice FOSDEM HackFest is no exception; Markus even brought a MacMini with a Linux VM to provide even more building power.

The problem was that I decided to hack on Android-related stuff; and the setup for Icecream was something that I had on my TODO, never achieved, and now it became really paiful. There was a small problem that was confusing me for a while, but finally I have a how-to!
  1. Make sure you have a recent enough repo that contains this fix
  2. Create cross-compile package for your environment like this (adapt the paths of course):
    /usr/lib/icecc/icecc-create-env --gcc /local/libreoffice/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc /local/libreoffice/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++
  3. icecc-create-env will create a tarball with a hash instead of a readable name, rename it to something sensible, let's say
    /local/libreoffice/android/arm-linux-androideabi-4.9.tar.gz
  4. Find out how exactly is the compiler called. Just do ./autogen.sh > .log 2>& .log, and search for arm-linux-androideabi-gcc and arm-linux-androideabi-g++. You will need it with all the options that are there, it is quite a long command line!
  5. Modify your autogen.input to start like (we'll:
    CC=icecc [the_command_line_with_options_for_arm-linux-androideabi-gcc]
    CXX=icecc [the_command_line_with_options_for_arm-linux-androideabi-g++]
    --with-parallelism=10
    --enable-icecream
Now every time you start a new shell, just do:

export ICECC_VERSION=/local/libreoffice/android/arm-linux-androideabi-4.9.tar.gz

start the build:

./autogen.sh
make

and enjoy the lightning fast compilation for Android! :-)

Update: Since this commit, it is not necessary to set the ICECC_VERSION in every env any more, the one from the ./autogen.sh time is preserved - it has to be in sync with CC/CXX setting anyway. In other words, you can just add ICECC_VERSION to autogen.input the same way you have added CC/CXX there:

CC=icecc [the_command_line_with_options_for_arm-linux-androideabi-gcc]
CXX=icecc [the_command_line_with_options_for_arm-linux-androideabi-g++]
ICECC_VERSION=/path/to/the/tarball
--with-parallelism=10
--enable-icecream
...your other options...

Stabilising LibreOffice Viewer for Android

$
0
0
At the end of the last week we released the new version of LibreOffice Viewer for Android, and I must say, it is a pretty solid release. The app is still in Beta, and some problems (like occasional crashes) should be anticipated, but overall there have been so many stability improvements that I am confident that it's now very usable for daily work.

New components

How does the Viewer look from the technical point of view?  It is the complete LibreOffice that we use on the desktop, but cross-compiled to Android, stripped down to its bare bones, and accessed from the Java part via LibreOfficeKit to provide rendering of 'tiles' -- 256x256 bitmaps that together compose what the user views as a document.

Spot the problem in the above description? "Stripped down to bare bones".  When we initially released, some hard compromises were made, which led to many documents crashing. Did that document contain a drop down box? Ouch! How about a custom shape? Ouch! You get the idea.

To address that, I used the same approach that Markus Mohrard is using for import and export crash testing.  I have collected over 55,000 documents - not so far from the 75,000 that we test with desktop LibreOffice. I discarded documents that were not applicable to the Android Viewer, stripped down the desktop application the same way we are stripping the LibreOffice core that is on Android, and let the tests run for several days.

Based on the output, I have added all the necessary services for text documents; so crashes due to missing components should now be rare.

Documents that remain difficult

Some documents internally provide bindings to features that are intentionally left out of the Android Viewer; namely functionality relating to databases. These documents are still missing the components described above, and thus unfortunately still crash.

We could theoretically add those services too; the problem is that currently we are hitting the 50M .apk size limit that Google imposes on Play store apps.

But don't worry - we have several tricks still up our sleeves. We'll work on them in the following weeks, and eventually include more of the services that are still missing.

More stability improvements

Intents for documents opened from Gmail:  opening documents directly from GMail now works nicely. This was an important use case that we missed in the initial release, and we caught it thanks to the feedback of the users using the Viewer.

Several smaller things have also been fixed, like presentations used with Notes view now switch to the presenting view. We also added preset shape definitions, so .docx files with preset shapes now display nice images.

And finally, we improved recovery from failure -- previously, when the document failed to open, the subsequent open of a document lead to a crash; not any more.

Overall, while the latest LibreOffice Viewer for Android is still a Beta release (and the usual warnings apply), I'm confident it's a really good Beta. Many thanks to Miklos Vajna and Tomaž Vajngerl for their hard work!

Install LibreOffice Viewer Beta from Google Play and enjoy!

Aarhus: Presentations & the Table Styles in Writer

$
0
0
It is already a week since I am back from the great LibreOffice Conference in Aarhus. I enjoyed it a lot - talked to lots of people [eg. met Heiko for the first time in person - after having spent quite some time with him over hangouts :-)], listened to many nice presentations, gave my talks, and - even managed to find some time for the late night's hacking. Oh, and the train there and back was a good choice too - I have travelled with Stanislav who's translating & managing the Czech translations; and on the way back we have also met Jos.

Before I tell you about the Table Styles in Writer, the feature I was working on, let me share the slides from my presentations. First of all, I presented work of my GSoC students, Nathan Yee and Krisztian Pinter, during the GSoC panel:

Click the slide to see the presentation.
Then I talked about the recent achievements & plans of the LibreOffice Design team:
Click the slide to see the presentation.
Then on Thursday, I talked about what we have done in VCL, our graphics toolkit, to be able to make our rendering double-buffered:
Click the slide to see the presentation.

 

Table Styles in Writer

And now - the Table Styles in Writer. It is a feature that we have missed for a long time. In LibreOffice, we have the Table -> AutoFormat..., but applies the formatting only once; after you modify the table (like insert rows / columns) later, you basically destroy the look of the table.

During summer 2013, Alex Ivan was working on implementing the table styles as GSoC project. I rebased his work to the current master, and made it to work again. Unfortunately, the approach there turned out to be very aggressive - the changes first destroyed the Table AutoFormat feature, and then started building the Table Styles. This means that we could merge that only after we have the import and export for Table Styles - but the GSoC work did not get that far.

I reconsidered the approach, and tried to find a way that implements the core of the Table Styles functionality without destroying the Table AutoFormat - and it worked :-)

I have pushed the results to master. Now, when you apply the Table AutoFormat in Writer, it behaves as a Table Style: When you insert more rows/columns, they still keep the correct formatting, similarly deleting, or splitting tables keeps the table formatted. Direct formatting is applied over the style too, and you can clear it via "Clear Direct Formatting".

 

Further work

Loading/saving is not implemented though, so once you save the table with Table Style, it turns into a "normal" AutoFormat - the next time you open it, you see the formatting, but it is "static", ie. works as before the Table Styles work.

I hope to get the load/save done before 5.1; and there's also lots to be improved in the UI of Table Styles - but I believe the current state is already an improvement, and a step in the right direction.

Integrating LibreOffice OnLine into your web app

Dialog Tunneling in LibreOffice Online

New features in the Online since the last conference





Latest Images