* 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
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
- draw the leader lines (and the extensions) for Line annotations that have them
- add a config widget for setting their length in Line annotations
svn path=/trunk/playground/graphics/okular/; revision=585212
Fix bug 133507 that prevented the correct restoring of the document viewport on session restore for remote documents
svn path=/trunk/playground/graphics/okular/; revision=584932
- improve the icon loading strategy for Stamp and Text(Linked) annotations: first look where we have the custom icons, then in the system place(s)
- add a simple (for now) TextAnnotationWidget to change the icon of a Linked Text annotation
svn path=/trunk/playground/graphics/okular/; revision=583882
- 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
Modified the constructors to specify if a rect represents a rectangular region or an elliptic one; added a new one to create a region defined using a polygon.
Adapted to the new API the generators that support links (all but the DjVu one - will be adapted and improved soon).
svn path=/trunk/playground/graphics/okular/; revision=561890
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
* moving all xpdf stuff from core and part to inside generator_pdf
* adding abstract KPDFText class and KPDFTextEntity to hold either
glyph, or word or textline
- support for importing PS files as pdf like on annots branch
- synced with annots branch
- abstract text layer with search for words in different lines
- added RegularArea<NormalizedShape,Shape> template class
which inherits QValueList<NormalizedShape*> and is used
to hold regular areas of given shape (finite collections of the shape)
- loading of relevant generators via ktrader for given mimetype
- the deliverables 1 and 2 of my SoC proposition are delivered
next: 1. fix one spotted regression and 2. code ghostview backend
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=434883
PagePainter:
Updated drawShape with RasterOperation (Normal, Multiply) for getting
Highlight annotation types to work. All Highlight annotations are now
drew using the Multiply raster operation.
Painter_AGG2:
Replaced the agg_pixfmt_rgba.h pixformat definition template with an
internal version that implements different raster operations too. The
new version has been shrinked to the minimum, containing the only code
needed by kpdf AGG2 rendering engine to work.
Thanks for Rob Buis for telling me the way to go and providing sample code
with his AGG2 algorithms.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=405338
Part from the *very C00L* AGG2 library (www.antigrain.com) are imported
from the agg23 source package. The imported files provides antialiased
rendering on bgra32 qimage memory buffers.
See "kpdf/ui/painter_agg2/README.kpdf" for more info.
PagePainter:
Replaced my dear crappy scanline renderer (well, was the fastest btw :-)
with agg2 based rendering code.
Implemented HighlightAnnotation (HL, Underline, Strikeout and Squiggly)
and InkAnnotation (simple one) rendering.
Need a multiply-blending template algo for getting highlights to look
as highlighs (not solid or transparent, like now).
Makefile.am(s):
Updated to build the new library, set include paths and link it.
Here we go.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=405150
implement here.. but that looks so nice. (note: too juicy to see now,
disabled some code before committing :-).
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=404560
drawn in page.
PagePainter:
Added 2 convenience function to change the alpha component of an image
and do it while colorizing the image in a single pass.
QPainter->drawPixmap unbuffered render for AText marks, AStamp pictures
and AGeom of type InscribedSquare.
Can't wait for Arthur's painter to do the full range of painting effects
with a very simple interface, faster than my dirty implementation and
over all: not crashing! (mine does! :-)
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=404088
Warning before running out of memory and stop pixmap request.
CCMAIL: 103435@bugs.kde.org
PagePainter:
Not related to the bug: avoid scaling up slow pixmaps.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=403884
typical usage).
PagePainter:
Added 2 convenience methods for performing fast cropping and scaling
from qpixmaps to qimages. Split buffered graphic flow from the unbuffered
one reducing buffers conversions to the minimum. Avoid odd cases in
rescaling. Detection of annotations boundaries to check for enabling
buffered painting.
Sample quick dirty and broken (but not so much..) implementation for
painting AStamp annotations.
Misc:
PresentationWidged and ThumbnailWidget: adapted to PagePainter changes.
(PageView mod has already been committed).
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=400310
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