* add full API docs
* renamed getMetaData -> metaData
* removed supportsRotation in Document and Generator
* moved Permission and SearchDirection enums into separated header core/global.h
svn path=/trunk/playground/graphics/okular/; revision=619183
Adding a BookmarkManager class that takes care of handling them in a proper way.
Adding a new tab in the sidebar to manage them:
- shows all the bookmarks in all the documents, or just in the current document
- cliking on a bookmark will bring to that bookmark, loading the document if necessary
- editing a bookmark title is possible either using F2 or right click -> Rename
- right click -> Remove to remove a bookmark
The only way to add new bookmark for the moment is the "old" way, ie right click -> Add bookmark, and it's not possible add more than one bookmark per page (but the system does not limit that).
The whole system should not be too difficult to understand, I will check with our usability master Florian next days.
svn path=/trunk/playground/graphics/okular/; revision=616979
* getAnnotations() -> annotations()
* setBookmark()/hasBookmark() -> setBookmarked()/isBookmarked()
* moved as much private API of Page as possible to private class
svn path=/trunk/playground/graphics/okular/; revision=607233
abbreviations for its items.
Replaced the 'bool strictCase' parameter of Page::findText
with 'Qt::CaseSensitivity caseSensitivity' for better readable code.
svn path=/trunk/playground/graphics/okular/; revision=607203
Page::setSearchPage( TextPage* );
Page::hasSearchPage();
with
Page::setTextPage( TextPage* );
Page::hasTextPage();
to make the API clearer. The TextPage is not only used for
searching but also for extracting selected text, so the term
'search' is confusing...
svn path=/trunk/playground/graphics/okular/; revision=607195
* 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
THe system generally works; what is missing is a good activating strategy (added in TODO - our usability expert is working on that), and a GUI to configure the editor.
The DVI backend was adapted to use this new feature.
(The PDF backend will use it soon.)
svn path=/trunk/playground/graphics/okular/; revision=605708
* Hide as much private API as possible in Generator, PixmapRequest and ExportEntry/Format
* Renamed ExportEntry to ExportFormat and made it value based
* Removed canExportToText() and exportToText() from Generator API and implemented this
functionality in exportFormats()/exportTo() in the generators
* Removed the orientation parameter from PixmapRequest and let the Document handle the rotation
of the page (pixmap) instead
CCMAIL:okular-devel@kde.org
svn path=/trunk/playground/graphics/okular/; revision=599058
Instead of telling the generators to do the work themselves (that was usually destraoying the ld pages and creating the new ones), now we just rotate the page objects deleting only their "mutable" contents.
This way, generators can just return true in their supportRotation() to make okular rotate the pages for them for free. Of course they still have to generate the page pixmaps according to the given page rotation.
Now, there's a new rotationChanged() function in the Generator API so generator that needs it can be norified about the document rotation changing.
CCMAIL: developers@okular.org
svn path=/trunk/playground/graphics/okular/; revision=593632
* 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
document has a rotation to apply over the page's own orientation
text search really works now when rotating (at least all my tests here worked)
svn path=/branches/work/kde4/playground/graphics/okular/; revision=547644
Also, the structure for backward search is there, (just...) need to add a findTextInternalBackward and do the job there.
svn path=/branches/work/kde4/playground/graphics/okular/; revision=545298
At the moment, the exported classes are only the one needed to make oKular and its actual plugins link, nothing more. Probably some other classes could be made visibile, but I'm not an expert about that.
svn path=/branches/work/kde4/playground/graphics/okular/; revision=538771
- 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
* 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
all the reviews on the document (pretty unuseful now, but that will
change ;-). Another step to good kpdf annotations.
Part:
Added Reviews toolbox pane. Added (commented out while doing it right)
searchline for toc; just works.
Misc:
Observer: added id for Reviews pane (as document observer it monitors
document/annotations changes). Page: added 2 temporary accessors for
annotations (will change soon). Makefile: added side_reviews.cpp to
compilation. Searchwidget: slight better spacing to look consistant with
the review panel.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=400307
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
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
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
Removed old code, reworked bad code.
I have no more reported crashes now.
No plans for additions or code changes till 3.4 release.
Thank you all kpdf users, Have Fun!
svn path=/trunk/kdegraphics/kpdf/; revision=385897
Part). Implemented 'history (xpdf's LinkAction) links'. History depth is
100 steps by default (this is enough for sure, clicking 100 times on a
button is not an easy task :-).
Minor issues (removed half TODOs in code, all FIXMEs are already removed):
Invoke mailer on 'mailto:' links inst instead of konqueror.
Actions cleanup: disable actions like 'print', 'preview', 'save to..', etc
when there isn't an active document. Added history actions to the toolbar
in place of the 'prev_page' and 'next_page' ones. Fixed open+open_recent
action tooltip and behavior.
Move definition and implementation of PagePainter class to ui/pagepainter
from core/page.
Valgrinded and leakchecked (2 memory leaks spotted and fixed (missing
contents deletion in KPDFGeneratorThread and missing deletion of
PixmapRequests on cancel in Document::requestPixmaps())).
svn path=/trunk/kdegraphics/kpdf/; revision=382960
bodies. Optimized fit width and a saved a couple of pixmap requests. Busy
cursor on load and searches.
svn path=/trunk/kdegraphics/kpdf/; revision=377152
for the file naming map and file versioning. Please wait until the commit
storm ends to report any bug. Albert and Enrico
svn path=/trunk/kdegraphics/kpdf/; revision=374920