oKular report

Piotr Szymański niedakh at gmail.com
Thu Jul 21 12:48:13 CEST 2005


Hi,
A summary of what has been going in oKular in the last weeks.
1. 05 July 2005
The option to show the page tab in TOC with page number relevant to given 
chapter is now not a compile time option but a hidden configuration option.

2. 06 July 2005
Understood how the core (API) of kpdf works. Added some introudction for new 
developers, not really finished yet, but still useful because its much easier 
to read this than to go through the code in part.cpp and ui stuff.

3. 15 July 2005
a.) Forwardport of important changes from head to annotation_branch and 
oKular.

b.) Abstracted the text layer of the page. Earlier kpdf used the xpdf's 
TextPage class. Added some changes to xpdf code, I was later asked to send 
them to poppler by bradh, will do it once I have a while.

Added the search and getText functions for searching and getting text for 
selection. 

KPDFTextPage, the abstract class supports the situation when document provides 
only textline information, or only per word information, but also support per 
glyph and per char area definitions.

This is done in a KPDFTextEntity which uses a NormalizedRect since I believe 
there can not be a situation where the Entity starts on this line and ends on 
another.

c.) Added the RegularArea<NormalizedShape, Shape> template class, which takes 
care of defining a finite sum of NormalizedShapes. NormalizedShape is a 
version of Shape with  coordinates in [0,1], where 0 and 1 are the bounds of 
the scrollview.

Also this introduced one regression, some edges are drawn twice, fix is in 
progress.

With b.) and c.) we support searching for sets of words on different 
textlines/pages. KPDF didnt support that. Ex. "hello world" will be found 
even if they are on different lines/pages, ie. when hello is the last word on 
page 1 and world is the first one on page 2.

d.) Finished making the generators as loadable modules. 
e.) Backported from kviewshell: handling of compressed files.

4. 21 July 2005
a.) added support for changing rotation of the document by the user, does not 
yet work in pdf generator, will investigate why, seems to be done properly 
though.

b.) reorganised generators into one generator dir which holds plugins.


5. Since 15 July 2005 - working on ghostview backend. First wanted to do this 
based on kghostview, but decided finally to use libgs, the ghostscript 
library. Unfortunately its API is very badly documented, I am losing all my 
motivation and have completely no joy of developing this. I have some code 
already done, I do hope it works.


I thought deliverables 1 and 2 were met. Well Wlfired Huss pointed to me that 
we also need support for:

- generators adding menu items, catching mouse/keyboard events, adding rmb 
stuff
This is in progress.

- errors/warnings generation
This will be done along the ghostview backend.

- adding printing configuration options
Damn i have no idea how to do this. we are passing a configured KPrinter 
reference to the print function which takes care of printing inside the 
generator. No real idea on this now :(

-- 
Piotr Szymański
niedakh at gmail.com
CS student at Faculty of Fundamental Problems of Technology, 
Wroclaw University of technology, Poland


More information about the Kde-soc mailing list