* putting it in an own view mode
* associating the selection to every page
* using a better algorithm to calculate the selection, even in a page range
* moving its drawing from the page view to the page painter, so it's possibile to draw it just like it's done with eg annotations
Other changes (more or less related):
* moved the annotation popup to a better place, so it won't interfere with annotation drawing
* commented some debug code in TextPage
svn path=/trunk/playground/graphics/okular/; revision=588795
Adapted also to receive the X and Y scale, so the bounding rect for every kind of ObjectRect can depend on a specific page size.
As a consequence, we can add also the annotations among the rects of a Page, and use the standard getObjectRect to find them.
svn path=/trunk/playground/graphics/okular/; revision=586457
reverting back the drawing of InPlace Text annotations to the unbuffered ones, but with a more clever behaviout than before:
- the text is drawn wrt the size of the page, and thenscaled to the real annotation boundary size. this makes the drawing of the annotation more similar to the page layout
- the bounding rectangle is drawn to be max 1pixel wide: if the drawn page is smaller than the page, then the rect is scaled along with the text, otherwise it's drawn after the scaling, so it won't appear huge at high levels of zoom
The AnnotationEngine's had to be modified by adding a page pointer parameter to the event() function, necessary to compute correctly the bounding rect of an inline text annotation.
svn path=/trunk/playground/graphics/okular/; revision=585289
- make the PagePainter draw all the points specified in a LineAnnotation, as it can represent also a Polygon or Polyline annotation
- automatically read the annotation dom element in the base AnnotatorEngine class, so every engine won't need to read it on its own
- properly reset some vars in the engines
- when constructing a Stamp annotation, use the right 'icon' attribute of the annotation element (and not the icon of the engine)
- renamed the TwoPointsEngine into PolyLineEngine, and abstracted to construct a polygon/polyline with a specified number of sides
- added a polygon button on the annotation toolbar
- check better if the annotator has to paint something
svn path=/trunk/playground/graphics/okular/; revision=583102
- improve the calculation of the bounding rect for freetext annotations
- fix the drawing of the pixmap associated with the PickPointEngine
- implement the creation of stamp annotations
svn path=/trunk/playground/graphics/okular/; revision=582808
Created a oKularcore lib, so the generators ca link to it, and made the oKularpart link to it too, of course.
Adapted the sources of the Okularpart to the new location for the generated settings.h.
svn path=/branches/work/kde4/playground/graphics/okular/; revision=523729
- 1. editor-like text selection, and I do mean it, its not pseudo-editor
(like the ones acroread and kviewshell have) it doesnt intersect the
selection area with words under it, no, it does a lot more, including
work on cursors and searching for the text area closest to the given
cursor
- 2. rotation support, change the orientation of the documents if
you need too :)
- 3. the kfaxview backend works beautifully, porting kviewshell backends
is damn easy ! djvu and dvi will be next!
- 4. Hardware Blending of selection rectangles! We now use XRender
instead of KImageEffect, makes a damn faster blend!
- 5. Overview mode - as seen in Kviewshell, but quite a bit extended,
the kviewshell is only one state, while we support it in both
continous and non-continous form
- BTW. I coded all those features myself, (apart from kfaxview backend library)
it is an impressive bit right? but oKular cant be run by only one person,
join in on the fun! i can introduce you into the code just mail niedakh@gmail.com
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=509871
Restarting working on the Engines. Readded annotation creation for
SmoothPath engine / InkAnnotation annot.
Tools.xml:
Format changed, makes more sense now. Fileformat described in comment.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=405145
annotations in the 'document tie file'. Every attribute of kpdf dss
can be dumped to disk. Only rendering prevents HEAD merging now! :-)
Annotations:
Storage: full annotations saving/loding on the tied XML is implemented.
every annotation put on a page (either loaded from a pdf or created
internally is loaded and saved when opening/closing a document).
Attributes are dumped to XML and reloaded from it via qdom
DataStructures: internal changes, better naming, some attributes fused.
PopupAnnotation has become WindowAnnotation
PDF16Parser: 100% completeness for the types we support
PDFGenerator:
adapted to annotation ds changes. better parsing on a couple of attrs.
correctly handle 'F'.
Misc:
Document: remove/cleanup debugs, Page: performance testing stuff added,
PagePainter: setPen( annot->color ), PageV..or: typo,
TODO: many changes
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=398789
PagePainter:
Only draw annotation extents (the rect property).
PageViewAnnotator:
Changed AnnotatorEngine(s) to deal with new attribs in structures. In
particular they use the NormalizedRect attribute of annotation instead
of the annotation as a rect itself.
Todo:
Updated.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=396911
Annotation: the class has been passivized. It's only a data container now,
no more active manipulation of events/paints.
PageViewAnnotator: this class has been created to handle creating annots.
PageView creates its 'Annotator on demand. The annotator parses tool
definition from the 'tool.xml' file.
The Annotator internally uses AnnotatorEngine(s) to react to mouse events
and the annotation is created when the job is really finished.
Page: added a (maybe temporary) NormalizedPoint to complement Norm..Rect.
PageViewUtils: removed PageViewEditTools and cleaned up header.
conf/: added a debug option for showing annotation boundary while creating
one and added a temporary 'debug' toolbox in the config dialogs.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=394959