GSoC/GCI Archive
Google Summer of Code 2015

LibreOffice

License: Mozilla Public License 2.0 (MPL-2.0)

Web Page: https://wiki.documentfoundation.org/Development/GSoC/Ideas

Mailing List: http://lists.freedesktop.org/mailman/listinfo/libreoffice

LibreOffice is a powerful office suite; its clean interface and powerful tools let you unleash your creativity and grow your productivity. LibreOffice embeds several applications that make it the most powerful Free & Open Source Office suite on the market: Writer, the word processor, Calc, the spreadsheet application, Impress, the presentation engine, Draw, our drawing and flowcharting application, Base, our database and database frontend, and Math for editing mathematics.

LibreOffice is compatible with many document formats such as Microsoft® Word, Excel, PowerPoint and Publisher. But LibreOffice goes further by enabling you to use a modern open standard, the OpenDocument Format (ODF).

Projects

  • Cleanup internal drawing units in Calc Calc currently uses a mix of specifying the units that are used when drawing - mixing drawing in pixels, and drawing in 1/100's of mms. This task would be about converting all functions to use a common unit of measurement.
  • Dynamic Text Chaining and Hyphenation in Draw The aim of this project is to add features to text boxes in Draw, allowing in particular: - flow of content from one frame to another logically linked to it; - hyphenation. This project is based on the GSoC idea “Improve Text Boxes in Draw” in LibreOffice wiki.
  • Haskell UNO Language Binding Haskell is an advanced purely-functional programming language. Its current state is the result of many years of research providing many state-of-the-art features: strong static type system, great power of abstraction, parallelism support, amongst others. These features can benefit LibreOffice and provide an entry point for new developers and researchers. It allows to easily implement techniques that can provide, e.g., new paths to optimizations of algorithms with the use of multi-core CPUs.
  • Improve user experience with CMIS I want to improve user experience with connecting to the online document storage services. Now it is not easy to access to CMIS, because most users use default system dialogs to open files and this feature is only accessible through LibreOffice’s custom file dialogs. Second task will be implementing document preview in the system file dialogs.
  • Improving Automated Error Checking While LibreOffice currently does feature validity checking, the functionality is rather basic; I propose adding a great variety of validity checks, automated consistency checks even during data input,
  • Integrate gtktiledviewer into GNOME-Documents Today, GNOME Documents spawns LibreOffice via a rather unreliable unoconv command-line that converts documents to PDF. It is not only unreliable but also the results are not good, for example, spreadsheet rendering results are quite bad. With this project, we would be improving the existing libreofficekit based gtk tiled renderer, which would, then, be a very good replacement of the unreliable unoconv command in gnome-documents.
  • More and Better Tests LibreOffice contains a well-structured code-base but there are few unit tests available in it while there is a demand for many, to counter-check the features and sub-routines. By adding more and better unit tests in code-base we can produce more productive features and find regressions as early as possible. This project aims at including better tests on C++, there is also porting of some old Java units to C++ and re-factoring of some tests that do remote control of an existing instance.
  • Reuse Mozilla's rolling update mechanism for LibreOffice I propose to implement a rolling update mechanism for LibreOffice based on Mozilla's rolling updater code. Doing this will help improve the LibreOffice user experience for users who want a convenient method of updating their software to get the latest and most secure versions of LibreOffice. My plan is to get all the relevant code pointers in the Mozilla updater code, and then convert them to be compatible with LibreOffice's existing update mechanism and locale support.
  • Review of the sidebar & its functionality The project aims to improve the user interface and usability of sidebar by rearranging the existing controls and creation of new tabs. It is based on the bug - 65138 and it will include sub tasks of solving the high priority enhancement requests listed in the meta bug.
  • Rework the Expert Configuration dialog The "Expert Configuration" dialog is too slow to appear with accessibility enabled. This is because the amount of configuration entries is just too large for practical use in a single list. The list should be reworked to be a tree of options and progressively show/hide branches of the options tree to work with blocks of smaller segments of options.