* Moved all public member variables of Annotation to private
and add accessors
* Renamed RevScope and RevType to RevisionScope and RevisionType
* Add API documentation (@pino, please review)
svn path=/trunk/playground/graphics/okular/; revision=610749
* Bring QPixmap* back to make Albert happy ;)
* Store only one QPixmap per page/size and rotate it directly
* Rotate ObjectRects (boundary)
* Rotate Annotations (point coordinates)
* Don't reload pixmaps, ObjectRects and annotations on rotation
svn path=/trunk/playground/graphics/okular/; revision=606371
- 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
a bug in Annotation::Window.
PDFGenerator: added postprocessing for handle the special pdf cases on
TextAnnotations (where window geometry is embedded in annotation, not
in popup and the annotation should be represented as an icon).
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=404023
and retrieval xml test. This second rewrite seems better than the
previous one. Maybe it's not perfect bug finally it's good enought
to move ahead now.
Annotations:
Restored and verified XML loading/saving with recursive storing and
retrieval of referenced objects. 100% verified and tested. Finally
all is working as expected. The structure is clean and it's simple
to choose the way to go now: rendering. Updated AnnotationUtils, More
comments, removed leak.
Page:
Adapted to changes to AnnotationUtils and Annotation, changed context
saving.
Misc updates on TODO and PDFGenerator (fixed Ext flag).
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=403863
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
Changed loadDocumentInfo/saveDocumentInfo semantics. Document settings
are saved by Document, but page related stuff (bookmark state,
annotations, ...) are loaded/saved by the KPDFPage itself.
Annotation:
Better usage of dom entities (QDomElement(s) -> QDomNode(s)). Added const
modifier to 'saveSettings' methods.
Part:
Use setCheckedState for the show/hide left panel menu entry. Use icon
too. Bumped .rc revision.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=397236
AFAIK the kpdf team is once again the first opensource reader to get
support for a cool feature. All annotations in pdf file are read and
converted to our internal data structures. Then they'll be rendered on
screen and changed/saved to our xml file.
Annotations completely supported and parsed from PDF: [markup], popup,
text, freetext, line, polygon, polyline, highlight, underline, squiggly,
strikeout, stamp, ink. Partial support for: [base], geom.
Annotations:
Added/Changed the passive annotation data structures to contain and
generalize the attributes of annotation classes. Missing attributes
(won't be handled by kpdf): base{P,AP,AS,A,AA,StructPar,OC}, geom{RD}.
Little changes to the PDF1.6 summary in header.
PDFGenerator:
Internal parser (discussed with Albert) directly in top of xpdf. Read
object nodes of type 'Annot' and parse the whole set of attributes as
defined in the PDF1.6 spec (for supported annotations).
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=396909
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
pageviewtoolbox.cpp/.h: Removed.
PageViewToolBar (was PageViewToolbox): Moved def/impl inside the
pageviewutils.c/.h files. Uses eventfilter to get notified when the
anchorWidget changes in size. Cleaned up code.
Annotations: added empty code.
PageView: removed some code. fixed rmb popup menu hidden if no document
was opened.
Updated TODO.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=393302
implement annotations now (and create the save/load procedure).
Annotations: converging to a stable Annotation definition. Changed a bit
the paint functions. Added a first 'template' annotation, a simple
pen-like segments recorder for framework testing purposes only. This
has events filters in place and the rough paint function implemented.
PageView: removed the MouseEdit mode and using that button for toggling
the editToolBox instead. Added Annotation support. When the Annotation
is created, all pageView events flow through that new object. Repaint
of damaged/old areas is done internally and is based on the geometry
of the annotation we're creating. When an Annotation is complete, it
is reparented to the Page that adds it to its internal list.
From that point on the annotation will be rendered by pagePainter
using the pixmap-based paint function provided by the annotation
itself.
PagePainter: draws annotations stored in pages when rendering (using the
'rought paint function' till the good pixmap based one will be in
place.
Page: added preliminary support for adding Annotation(s) to the page
and deleting them all.
Document: added the pass-through call to add an Annotation to the Page
and notify observers.
PageViewToolbox: can be draged and attached to any side. Position is
remembered between runs (choose your side and that the toolbox will
always be there). Available on Right and Bottom sides too. Emits -1
when the current tool is deselected.
Misc: added Annotations to both the 'observers changed flags' and the
'pagepainter' ones and updated ui classes accordingly.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=390638
User Interface: added a toolbox for selecting an annotation tool without
polluting the toolbar (pageviewtoolbox animated widget). Icons of that
toolbar are gimped version of ones in nuvola icontheme.
Core: added annotation class. this will support all features (except for
silly ones (really there are some!)) from pdf 1.6 specs but abstracted
in the kdpf way. (api changes in progress...)
About annotations: only some incomplete interfaces are in plasefor now.
Every type of pdf annotations has tens of parameters. I think we'll render
correctly everything but provide only simple and useful tools for making
annotations over the pages, otherwise a 'Qt designer like' property view
will be required to do fine adjustment over the crappy thousands of
settings. (and we're aiming at a quick and simple viewer with lots of
coolness, not chaos).
Note: the code has been wrongly committed to HEAD before,but soon reverted.
Have fun!
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=388768