Libreoffice Docviewer Integration blueprint

Registered by Alan Pope 🍺🐧🐱 πŸ¦„ on 2015-07-08

For planning integration of Libreoffice into docviewer project to allow rendering of common office formats.


Blueprint information

Not started
Alan Pope 🍺🐧🐱 πŸ¦„
Needs approval
Series goal:
Accepted for trunk
Milestone target:

Related branches



Scratch pad at

Questions for 14 Aug 2015 (Stefano)

* Status of a convergent UI/UX design for DocViewer.
Since our ultimate target is to get a DocViewer version, suitable for both PCs and devices, we'd need to have a up-to-date design pattern in order to know how to manage zooming with different input devices.

* PDF plugin re-design.
Ideally, this should be take just a week, as the tiled rendering for LOK is completed (with SG paiting and zooming).

This has been a critical argument during the past meetings, since it's not considered a priority. There's a number of reason why I think it would be an important thing to do.

I decided to design the PDF plugin as I did in October, during the Washington D.C. sprint, mainly for three reasons: we needed to make it work ASAP, there were already a pre-existent code, and I was not so good in write a proper plugin from scratch. :)
We have considered to use a Poppler plugin written for the SailfishOS Document Viewer, but there were potential issues with the used license.

So we went with the current implementation, which has some issue:

- Multithreading is not perfectly working on all the Ubuntu phones
- Zoom management is a mess (see issues with centred zoom) \o/
- We are using Qt5 private imports
- Consistence of the code would be a lot broken, when we'll go for adding overlays (i.e. hypertext links, copy/paste, and search - which are priorities for the PDF plugin)
- It is not convergence-friendly. Current zoom management would just be a mess on desktops (i.e. it doesn't follow the standard way to zoom a PDF document of desktop)

* Is it worth to move directly from UITK 1.1 to UITK 1.3?
 I know that it would be a bit uncomfortable for devs to work on docviewer from desktop.
 This is just a generic question: since our target is to release the reboot series in late-September, I think we could do it. Feel free to say no! :)

* Has Jenkyns been enabled for builds from the "reboot" branch?

* Any news about a new application icon? :D


Work Items

Work items for 2015-07-02:
[bjoern-michaelsen] Investigate how the LOK-based gnome docviewer detects page breaks: DONE
[bjoern-michaelsen] Study the API and report on capabilities that would be applicable to the LO viewer: INPROGRESS
[verzegnassi-stefano] Add capability to detect page breaks to go to a particular page: BLOCKED
[verzegnassi-stefano] Investigate tile rendering approach: DONE
[mrqtros] Study the docviewer code: DONE
[mrqtros] Study the LibreOffice Kit API: DONE
[mrqtros] Implement error detection and recovery: POSTPONED

Work items for 2015-07-09:
[verzegnassi-stefano] Continue prototyping tile rendering approach ( DONE
[mrqtros] Provide support to Stefano on writing/debugging/imroving performance of the tiled rendering code: DONE
[bjoern-michaelsen] Publish blog post on the mobile LibreOffice viewer work: DONE
[verzegnassi-stefano] Add PDF conversion support to the LOK plugin as a short-term alternative: DONE

Work items for 2015-07-16:
[verzegnassi-stefano] Implement PDF conversion support in DocViewer's QML code as a short-term alternative: POSTPONED
[verzegnassi-stefano] Improve the logic that initialize the tiles: DONE
[verzegnassi-stefano] Implementing the double buffered cache: DONE
[bjoern-michaelsen] Investigate options/feasibility of LO in a click: TODO

Work items for 2015-07-23:
Placeholder: TODO
[verzegnassi-stefano] Finish zoom implementation: INPROGRESS

Work items for 2015-07-30:
Placeholder: TODO

Work items for 2015-08-06:
Placeholder: TODO

Work items for 2015-08-13:
[verzegnassi-stefano] Do a further check to ensure that all signals/slots works properly for the zooming feature: DONE
[verzegnassi-stefano] Improve support for LO Impress documents: INPROGRESS
[mrqtros] review LO plugin architecture and provide potential improvements: TODO
[mrqtros] use SceneGraph for rendering: INPROGRESS

Work items for 2015-08-20:
[verzegnassi-stefano] Centering the zooming on the gesture/page center ("attempt-fix-zooming-1" branch): INPROGRESS
[popey] Clone Bjoern's small footprint LibreOffice build PPA: DONE

Work items for 2015-08-27:
[verzegnassi-stefano] Investigate on future features (text selection and keyboard/mouse/touch events): TODO
[popey] Set up an armhf LibreOffice build for the PPA: INPROGRESS
[popey] Include the armhf LibreOffice binaries in a docviewer click package: TODO

Work items for 2015-09-03:
[verzegnassi-stefano] Switching from the content hub C++ API to the QML API: TODO

Work items for 2015-09-10:
Placeholder: TODO

Work items for 2015-09-17:
Placeholder: TODO

Work items for 2015-09-24:
Final Placeholder: TODO

Work items:
Placeholder for un-targetted items: DONE

This blueprint contains Public information 
Everyone can see this information.