Document Viewer application implementation

Registered by Michael Hall

Initial Document Viewer Development

Blueprint information

Status:
Started
Approver:
Ubuntu Core Apps Drivers
Priority:
Undefined
Drafter:
Ubuntu Core Apps Drivers
Direction:
Needs approval
Assignee:
Ubuntu Document Viewer Developers
Definition:
New
Series goal:
Accepted for coreapps-13.10
Implementation:
Started
Milestone target:
None
Started by
Anthony Granger

Related branches

Sprints

Whiteboard

 [sarnold] Find out if Calligra components can be used to add office document support

Calligra serves as the basis for the Harmattan Office Viewer for Meego; I saw references to a future open-sourcing of the UI for the Harmattan Office Viewer, and claims that the needed improvements to Calligra had already been pushed back into the Calligra source tree. This is all encouraging news.

The Calligra source code itself is clean and well-documented throughout. I gave several of the parsers a very quick glance and found them to be well-written, though I wasn't exactly clear where failures would be handled in the event of being handed malformed input. At a minimum, the XML parser installed a "dummy" entity handler that won't be susceptible to the external entity attacks or billion-laughs attacks.

One downside is that Calligra relies upon a Java implementation of a parser for MS Project files. I can understand how they came to this decision but we would not want the reliability and performance problems of Java to be so easily accessible to potentially maliciously constructed documents. If Calligra is used as a portion of our document viewer, please configure it without the Java-based MS Project support.

(?)

Work Items

Work items for coreapps-13.10-month-0:
[chocanto] Accept files passed as command-line arguments: DONE
[chocanto] UI Layout A - Component 1 - Create functionality that parses a selected text type file and prepares it for display in Component 1: DONE
[chocanto] UI Component for displaying plain text files: DONE

Work items for coreapps-13.10-month-1:
[chocanto] UI Layout A - Component 2 - Create a component that displays image types bmp, jpg, png, others?: DONE
[chocanto] UI Layout A - Component 2 - Create functionality that parses a selected image type file and prepares it for display in Component 2: DONE
[chocanto] Add ability to open images using image component: DONE
[mhall119] Complete packaging: DONE

Work items for coreapps-13.10-month-2:
[sarnold] Find out if Calligra components can be used to add office document support: DONE
[mhall119] Get docviewer app registered to open file types it support when they are called with xdg-open: BLOCKED
[mhall119] Follow up with Florian on the status of command-line args in QML components: DONE
[chocanto] Update Poppler to Qt5: DONE

Work items for coreapps-13.10-month-3:
[chocanto] Test opening a text file: DONE
[chocanto] Test text file meta-data: DONE
[chocanto] Test opening image file: DONE
[chocanto] Test image file meta-data: DONE

Work items for coreapps-13.10-month-4:
[chocanto] Test image zooming: BLOCKED
[chocanto] Test opening PDF file: DONE
[chocanto] Test PDF file meta-data: DONE
[chocanto] Test PDF zooming: INPROGRESS
[chocanto] Test PDF page next/prev: BLOCKED
[chocanto] Test searching a PDF: BLOCKED
[chocanto] Export Poppler component as a QML plugin: DONE
[chocanto] Test opening an unknown file type: DONE
[chocanto] Investigate how to add gesture zooming/panning to Image view: DONE
[chocanto] Open file with unknow mimetype as a plain text file: DONE
[chocanto] Remove the actual launcher and replace it with the Arguments module and a plugin to read file's infos : DONE

Work items:
UutI Layout A - Component 3 - Create a component that displays office documents (odt, docx, rtf): POSTPONED
Create a component that displays office documents (doc, docx, odf, rtf): POSTPONED
UutI Layout A - Component 4 - Create a component that displays PDF documents: DONE
Create a component that displays PDF documents: DONE

This blueprint contains Public information 
Everyone can see this information.