oKular
Synopsis
A powerful unified viewer application for KDE with a plugin system and backends for most popular formats
Benefits to the KDE Community
- One unified look and feel
- Possibility for third party vendors to provide plugins for their format usign the public API
- Fast viewer for lots of formats that is easily embeddable in other apps like file browsers, mail readers or any other application that deals with files of different types.
- All the features of kpdf but for many more formats:
- extreme fast rendering, thumbnail generation and scrolling
- annotations support planned for 3.5 which when combined with oKular's plugin structure will become a powerful tool for making sidenotes while reading a document
- The new app will again put KDE's competition on the desktop market far behind, with robust, embeddable, featureful and fast viewer KDE will enter a new level of comfort in reading compound documents like pdf, chm, or doc.
- With the kword plugin ready, one will not have to wait for kword to start just to preview a document.
Deliverables
- Turn the basic API from kviewshell into a powerful plugin API and implement it in kpdf, this includes a dcop/dbus API.
- Port PDFGenerator class from kpdf to the new API and let it work as a plugin.
- Harvest interesting code from kghostview and kdvi and use it (or write from scratch) the ghostview backend and
- Write the chm format plugin (check if code from kdevelop is reusable, if not write from scratch).
- Create a kword format viewer and use it and kword's filters to be able to view all the documents kword can view (including MS Word document format and OASIS)
Project Details
- Check the Generator abstract class in kpdf and add all the functions required by it to the plugin API, then check what functions will be needed in the future and add them too (check the TODOs), after that start implementing the api inside kpdf.
- Work on the pdf backend (possibly move it to poppler if it is ready by that time if not, leave it basing on xpdf code)
- Work on ghostview (catching ghostview ooutput and transferring to screen) dvi backends
- Write the chm plugin and possibly the kword plugin
Project Schedule
I can start on 25th of June and finish it on 25th of August, a total of two months.
Bio
2001-2002 Working as the Polish KDE translation team coordinator and proofreader
2001-2004 computer science highschool finished with distincition as the best student of the studentes accepted in 2001 given the title of Primus of EZN (EZN stands for Electronic Science Intitute and is the highschool i went to)
2002- Workin as a PLD Linux Developer, my main branch of work was packaging KDE, doing compile fixes for newer gcc versions, standard compliance fixes and minor bugfixes
2004 - wrote the libnumbers library for an A in introduction to algorithms and data structures, libnumbers is a library that implements number class with number size limited only by the memory available in the computer, it uses the karatsuba algorithm for multiplying, internals include mergesort for sorting the nubmers when needed, the library was designed to use conventional number operations if number's size doesnt require the use of advanced algorithms library comes with a small stack-based calculator
2004- studying computer science at Faculty of Fundamental Problems of Technology, Wroclaw University of Technology in Poland, the goal of the faculty is to provide academic teachers for the University of Technology, therefore the teaching program is not only practical (whole C++ language semantics taught in one semester) but also highly theoretical (first order logic and prolog programming, algorithms)
I am a linux user for over 7 years now, I have started to give back to the opensource community 4 years ago, I worked with KDE for a long time now and i am familiar with its buildsystem and know the Qt/KDE APIs, i wanted to start developing a KDE app for a long time, but had to work for small buisness companies so that i was able to afford living in Wroclaw.
Now that Google offers me a chance not to earn some money by developing KDE and i dont have to work for small buisness companies I can not only offer KDE a great part of my free time, but offer it my whole work time ! I have not dreamt about such a good situation and I was actually planning to go to fruit plantations in western europe (the pay was higher than the money a student gets from smallbuisness companies here).
Why this bounty?
- The challenge of API design. I love designing API's with C++ as a tool.
- The need for an unified viewer: professor of my faculty publish exercise lists in different formats from dvi, pdf through ps and even chm. I really need it :):)
- It seemed to be the hardest not yet done anywhere proposition from KDE. Other interesting ones like whiteboard plugin for kopete or single sign on already exist elsewhere (like msn's whiteboard functionality) while a unified viewing shell (that is embeddable into filebrowsers or mail clients) is innovative among desktops.
- The C++ language. Other interesting proposition that included API design was OpenTAPI, but that proposition required working with the C language, which takes away the joy of object API design.