Collabora Online Development Edition (CODE) 6.4.0 released

New CODE release brings improved user experience and compatibility

Cambridge, United Kingdom, September 24, 2020Collabora Productivity is excited to announce a new, major release of our product CODE (Collabora Online Development Edition) 6.4.0 This release adds a new easier to use interface option with a notebook bar as well as excellent display of Microsoft file format documents. This release not only brings a fresh look, enhanced usability, improved interoperability, and extra functionality. It also marks a harmonization of our version numbering. CODE jumps from 4.2 to 6.4, to align with our other Collabora Office products: for the desktop and mobile devices. This release gives a showcase of our development on the next version of our supported product Collabora Online. CODE and Collabora Online offer privacy as well as the only truly open-source solution for working with and collaborating on rich documents in the cloud.

Attractive and easy to use NotebookBar option in Collabora Online

CODE 6.4 comes with a cool and modern NotebookBar providing another easy to use and pretty access to all rich features. The easily identifiable buttons allow users to quickly select functions and the thematic organization of the tabs is intuitive. Users are encouraged to test the NotebookBar when using CODE and share their experience! Users will of course recognize much of the NotebookBar from the desktop version.

The activated Home tab of the new Notebookbar in Impress in CODE 6.4

Version 6.4 – A huge leap in user-friendliness… and numbering

The new CODE with the NotebookBar marks a big step forward in usability. The version number also makes a big leap with a jump from 4.2 to 6.4. The previous numbering of CODE and Collabora Online reflected the release cycles of our online products, first released in 2016. To simplify things we make the numbering similar to Collabora Office for the desktop. This more accurately reflects the level of development, since much of the technology is shared by both products. Our mobile apps Collabora Office for Android, ChromeOS and iOS will also catch up in numbering soon.

Saving space and other NotebookBar details

When the user needs to save space, a single click on the active tab will collapse the NotebookBar. All the tabs are still there to use.

Collapsed NotebookBar

 

Open NotebookBar

On the top left of the NotebookBar, either in collapsed or full state, there is the hamburger menu with some important tools for e.g. collaboration and language.

Use the hamburger menu to access more options

How to keep the classic mode

The new NotebookBar is set as the default interface in this new release, however we have no plans to remove the classic menu and toolbar UX – some users and deployments clearly prefer it. To change this back you can select ‘classic’ for the user_interface key in loolwsd.xml, and some integrations will provide their own admin UI for this, to configure it for the whole server.

The new look of Writer, Impress and Calc

In CODE 6.4 the new NotebookBar adapts to the users needs. With each type of document all available features are nicely sorted into clear tabs. The following images are taken from Writer, Impress and Calc.

Quick access, flexible interface option

Our developers worked effortless to provide the user interface that is both feature rich, and also flexible and small… if the user needs that. The following images present some possibilities with text, presentations and data.

New Spreadsheet rendering: freeze rows and columns

Spreadsheet rendering has been re-written from scratch in CODE 6.4! It continues to improve rapidly, please be patient as we work on performance tuning here. One big new feature is that users can now freeze rows and columns with the button on the tab Sheet or the entry in the menu View. Then, when the users scrolls/moves down in the spreadsheet, the chosen rows and columns will stay visible on top and the left. This is similar to the feature that is available in the desktop version of Collabora Office under View > Freeze Rows.

Freeze rows in Calc

Collaborating with annotations to PDF files

Collabora’s products already have many powerful features supporting the increasing use of PDF documents. CODE 6.4 allows users to collaborate around PDF documents by including a new feature to add annotations to PDF documents.

Various Collabora Online integrations let users open PDF files with Collabora Online, for example with a command in the file’s detail menu (More or simply ). After that, a comment can simply be added with Insert > Comment.

Insert annotations to PDF files with Collabora Online

 

Interoperability improvements & consistent rendering

Collabora Online’s interoperability with Microsoft’s OOXML file formats, is as excellent as in our desktop product, since all share a large part of the underlying LibreOffice code base. This 6.4 release again adds dozens of improvements in Microsoft OOXML rendering for presentations, smart art, charts and more from the whole community. Some examples are given below:

Text can be set semi-transparent

A new feature in CODE 6.4 is the use of semi-transparent text, that can be set on the tab Font Effects. Therefore now semi-transparent text from OOXML files is shown.

A DOCX file rendering semi-transparent text in CODE 6.4.
A PPTX spreadsheet including semi transparent text in CODE 6.4

Improved import of SmartArt

With the release of CODE 6.4 the import of SmartArt in MS Office documents has been further improved.

The slide displays an imported SmartArt diagram turned Shape in CODE 6.4

Gradient backgrounds in slides

The pitfalls of interoperability nowadays lie in small details. For example, colour gradients in the background of slides used to be lost with the import of Microsoft PPTX files. With version 6.4, this is now fixed.

A gradient slide background in an imported PPTX file

About CODE

CODE is the Collabora Online Development Edition. It contains the latest developments and is perfect for home users. It enables them to regain control of their own online documents and to host them themselves in a secure and private environment. For tech-enthusiasts, it is a low-threshold way to get involved and familiar with our online office solution. CODE will be improved continuously and our next supported and maintained Collabora Online product will be built from it.

Get CODE 6.4

Thanks to the community!

Collabora has invested significantly in bringing a host of new features and functionality to this latest release, and accounts for the overwhelming volume of contributions. However we want to acknowledge all of our friends and colleagues who helped to contribute not only to this, but also to the underlying LibreOffice technology, you can checkout LibreOffice community credits. We cannot thank everyone involved enough for their passionate work. All of our code is Open Source, and our contributions to LibreOffice can be expected in the LibreOffice 7.1 release, although we have our own branding and theme. Would you like to be part of the story ? Participate today!

Read More

Collabora Online 4.2.9 refines the handling of comments

 

The new minor release of Collabora Online 4.2.9 brings further improvements in the joint editing of documents. It offers new options to work with comment threads – comments on comments. Both single comments as well as a complete thread can now be marked as “solved”. This also applies to the delete function. You can now choose to delete a single comment or the specific thread as a whole. Features that make your collaboration experience even better!

There are some more fixes in this Collabora Online 4.2.9 update. See our release notes page. Would you like to test the latest version with all new features? Then simply request a free demo!

 

 

About Collabora Productivity

Collabora Productivity is the driving force behind putting LibreOffice in the cloud, providing Collabora Online and a range of products and consulting to enterprise and government. Powered by the largest team of certified LibreOffice engineers in the world, it is a leading contributor to the LibreOffice codebase and community. Collabora Office for Desktop and Collabora Online provide a business-hardened office suite with long-term, multi-platform support. Collabora Productivity is a division of Collabora, the global software consultancy dedicated to providing the benefits of Open Source to the commercial world, specializing in mobile, automotive and consumer electronics industries. For more information, visit www.collaboraoffice.com or follow Collabora Office on Twitter .

Read More

Implementing Vulkan-capable LibreOffice user interface using the Skia library

This work by Collabora Productivity was possible thanks to AMD.

LibreOffice 7.0, just released, includes a new drawing backend based on the Skia library, which allows LibreOffice to use the modern Vulkan API to graphics operations. This Visual Class Library (VCL) backend is the default on the Windows platform, superseding the OpenGL-based backend.

Working on the future of graphics for office productivity

Having multiple VCL backends has its benefit to integrate with different operating systems, but each backend performing its own rendering implementation is far from optimal, since we cannot add new rendering functionality and assume that it will work cross-platform. Many backends across different platforms and toolkits miss optimized paths for various rendering tasks. This adds complexity and makes it hard to ensure that rendering objects happens in an accelerated way everywhere.

Another problem is that multiple backends regularly perform the same type of mapping from VCL’s APIs to what a modern toolkit provides these days. This duplication means not only maintenance cost, but also can lead to having to fix the same bug at multiple places.

Moving away from GDI and OpenGL

The VCL library is responsible for widgets (buttons, controls, etc.) and basic rendering. It does not implement the drawing directly, but it provides an internal API, which is implemented by various backends that implement the actual graphics operations. These backends usually adapt LibreOffice to each platform , for example the ‘win’ backend is used on Windows, the ‘kf5’ and ‘gtk3’ backends are for Unix-like platforms using the KDE Frameworks and the Gtk3 graphics toolkit respectively and there is a ‘headless’ backend used by tests that does not render to the screen.

Each VCL backend uses an underlying graphics API available on the platform to perform the graphics operations. The Cairo library is used by some Unix-like and ‘headless’ backends, the ‘osx’ backend uses the macOS Quartz. On Windows, the ‘win’ backend has several plugable drawing implementations:

  • GDI drawing. This code is relatively old and has several limitations, such as not being double-buffered.
  • OpenGL drawing. This code provides GPU-accelerated drawing. OpenGL is used directly, so all relevant code including OpenGL shaders needed to be implemented in LibreOffice. The OpenGL API is also slowly being phased out in the industry.
  • Skia drawing. The Skia library hides implementation details, and provides several rendering methods, including Vulkan API.

Integrating Skia and Vulkan

The Skia library is not shipped in a binary form, not even by 3rd-party providers such as Linux distributions. It is provided only as source and the usual way to use it in a project is to ship it with that project. LibreOffice includes Skia as a 3rd-party library and fortunately building it using the LibreOffice gbuild system is reasonably simple. An additional complication is that Skia provides a new release roughly every 6 weeks, and generally only the latest release receives any fixes, requiring repeated updates. Since Skia is continually evolving, each update may also require adjustments (although so far it seems they are generally small).

Collabora’s developers taking the first hurdles

The Skia API is generally well documented, but it appears to be mostly aimed at developers already working on a project using Skia, such as Chrome. Important classes have their API well described, but it can be difficult to find tutorials for them and some classes are harder to understand at the beginning (for example, SkPixmap, SkBitmap, SkImage and SkSurface are all classes representing a drawable, but it was unclear at the beginning what the suitable use cases would be for each for them).

Similarly, it is not obvious how to use Skia in a new project. There does not seem to be any actual developer introduction to Skia in the documentation, nor does thereseem to be any documentation on how to setup a new or standalone project using Skia. There is a Hello-World example in the examples/ directory that is based on platform integration code that is not part of the Skia library itself but is inside a sk_app/ directory in the tools/ directory. That code was usable for LibreOffice, but required patching to cover LibreOffice needs (for example, the code created a new graphics context for each toplevel window, and Skia requires proper graphic context to be used in drawing operations, but LibreOffice code sometimes does not know which toplevel window will use the result of a drawing).

LibreOffice is a fairly old codebase, and still uses relatively old concepts such as paletted bitmaps, low-resolution bitmaps (such as 4bpp) or drawing that uses the XOR operation on pixels. Skia, being a relatively new library, has features that assume modern concepts are used (for example, RGB bitmaps are required to be 32bpp with unused alpha channel, 24bpp RGB bitmaps are not supported).

 

AMD Skia / Vulkan integrated in a alpha-release of LibreOffice 7.0

 

Once the initial learning period is over, Skia is consistent in its API and reasonable flexible to use allowing progress to be relatively fast. Code using Skia is very readable, and using Skia makes future maintainance tasks easier to perform. Even some old concepts, such as LibreOffice using a separate bitmap for alpha channel, sometimes interpreted as 8bpp and sometimes as alpha, later blended with data bitmap to get the actual result, could be mostly implemented using Skia API, making them GPU-accelerated.

Nice performance and even room for improving

While there were some concerns about how performance would be affected by moving to Skia compared to OpenGL driver and and hardware implementations that have been heavily optimized over the past several decades, it turns out that performance within LibreOffice is at least equivalent to the OpenGL version and synthetic benchmarks show that there is room for improvement.

Benefits for LibreOffice-technology

While somewhat complicated at the beginning, using Skia in LibreOffice has been in general a rather pleasant experience. In the future LibreOffice’s use of Skia could be extended to other platforms, reducing the number of platform rendering APIs used, eliminating duplicated code, reducing bug count and generally improving quality.

For comparison, LibreOffice OpenGL drawing code is roughly 12k lines of code, while Skia drawing code is only 4k.

Apart from the immediate benefits, moving to Skia and Vulkan on Windows paves the way for a single, powerful, hardware-accelerated rendering API cross-platform.

Moving to Skia on Windows required about 7 person-months ol, which lets us use Vulkan acceleration without large implementation costs. It will be interesting to see how much time is saved in the next few years from the reduced maintenance cost. The resulting work is mature enough that there is no real negative change in performance, and we have not started heavily optimizing yet.

Read More

Connecting Collabora Online built-in CODE Server with Nginx

When you are using a Nginx server, you need to do a small modification to your existing configuration. For the Collabora Online app to work, you have to add a ‘richdocumentscode/proxy’ entry point as an allowed location to the config in the webroot of your nginx installation. From the documentation at Nextcloud:

location ~ ^\/nextcloud\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy)\.php(?:$|\/) {

If you experience any problems, of have any questions, pls do contact us.

Read More

Collabora Online update available – version 4.2.3

New features

  • Support for drop down lists in form fields in ODT and DOCX and other text file formats
  • Handling of tabstops directly on the ruler in text documents

Most important improvements and fixes

  • Started to support WOPI proof keys (see also: https://wopi.readthedocs.io/en/latest/scenarios/proofkeys.html)
  • Packages for Ubuntu 20.04
  • Fixed Insert – Image (from storage) on Firefox and IE11
  • Fixed PDF printing of multi-page documents
  • Fixed Number format controls in Calc
  • Calc multiline formula bar improved
  • Updated translations

Read complete release notes here.




About Collabora Productivity

Collabora Productivity is the driving force behind putting LibreOffice in the cloud, providing Collabora Online and a range of products and consulting to enterprise and government. Powered by the largest team of certified LibreOffice engineers in the world, it is a leading contributor to the LibreOffice codebase and community. Collabora Office for Desktop and Collabora Online provide a business-hardened office suite with long-term, multi-platform support. Collabora Productivity is a division of Collabora, the global software consultancy dedicated to providing the benefits of Open Source to the commercial world, specializing in mobile, automotive and consumer electronics industries. For more information, visit www.collaboraoffice.com or follow @CollaboraOffice on Twitter.

Read More