Document Viewer application implementation
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
- Completed by
Related branches
Related bugs
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-
[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-
[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-
[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-
[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-
[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