Quantcast
Channel: What is Jan Holešovský - Kendy doing
Viewing all 34 articles
Browse latest View live

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

Viewing all 34 articles
Browse latest View live




Latest Images