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
A good document to test is cups/idd.pdf that has links 1, 1.1, 1.2 and 1.3 all to the same page but with different viewports
Seems to work but a review of the code is always good :-D
svn path=/trunk/kdegraphics/kpdf/; revision=396528
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
--enable-force-kpdf-drm is a configure option, it defaults to NO, if YES DRM is ALLWAYS obeyed
skip_drm is a kiosk option, it defaults to YES, if NO, means the user is not authorized to skip DRM and DRM is ALLWAYS obeyed
if previous options are no and yes, the user sees a GUI option called Obey DRM limitations that defaults to YES but the user can set to NO from the GUI
svn path=/trunk/kdegraphics/kpdf/; revision=394412
How it is going to end:
- Exists a configure option called --enable-kpdf-drm that is DISABLE by default and you can use to FORCE kpdf obeying DRM
- Exists a kiosk option called skip_drm that is true by default and the admin can set to TRUE to FORCE kdpf obeying DRM
- Exists a GUI option called Obey pdf limitations that is shown if skip_drm is true, that option is ON by default, that means DRM is obeyed but the user can disable it from the GUI
Hope that will please everyone
Please can somebody with better english than me check that the wording i used is actually correct english? Thanks
svn path=/trunk/kdegraphics/kpdf/; revision=394212
Olaf can you check that fixes your wrong paper format complaining printer too?
CCMAIL: 98837@bugs.kde.org
BUGS: 100003
svn path=/trunk/kdegraphics/kpdf/; revision=393859
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
SearchWidget). Splitted SearchType::GoogleLike in GoogleAll and GoogleAny
to mark pages if all words are present or at least one is present resp.
--TODOs;
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=391354
really nice (and well documented) API! Passwords of protected files are
stored in the 'KPdf' folder of the Network wallet.
Updated todo.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=391251
IMHO this is not a feaute but a bug-fix as if this is not implemented we let the user copy text and print from PDF that are protected against and wether we may like it or not is what the spec says and we could get in problems if someone copies text from a protected PDF using our tool.
svn path=/trunk/kdegraphics/kpdf/; revision=390866
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
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).
Have fun!
svn path=/trunk/kdegraphics/kpdf/; revision=388699
- Keep the original url on the document so we can open relative file names
- Add Enrico and my copyright
svn path=/trunk/kdegraphics/kpdf/; revision=386244
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
number, the total number of pages and a little grahical 'progress'
indicator. Moved 'next page' and 'prev page' buttons from the main toolbar
to the MiniBar. Minibar lets you edit the page number, click or wheel on
progress, go to next/prev page, show the gotoPage dialog.
Added rmb popup when clicking on thumbnails. When clicking, the
ThumbnailList only emits the same signal emitted by PageView so the same
context menu is displayed.
Misc fixes: [MEM] enabled allocated pages raising in queue when displayed
again, [ThumbnailList] enabled PageUp/PageDown.
svn path=/trunk/kdegraphics/kpdf/; revision=382597
of wasted PixmapRequests (regressions introduced by DocumentViewport).
Optimizations.
Document: Fixed oscillations in memory deallocator. Merged 'cleanupMemory'
and 'freeMemory' -> 'cleanupPixmapMemory'.
Delayed initialization of QTimers.
GeneratorPDF: Added a comment on threading and asyncronous pixmap loading.
TODO: updated adding items by Mikolaj Machowski and Grzegorz Ja?kiewicz
svn path=/trunk/kdegraphics/kpdf/; revision=380913
Fix cache deallocator. Hard avoids swapping memory or filling it up to the
limit (allocated pages are referenced in an internal add/remove FIFO).
Merged open and open_recent buttons as many users requested.
Using viewmag icon for find-as-you-type popup.
Disabled debug output. Updated todo with the roadmap to release.
- Need to audit the memory code and choose good default policies now.
svn path=/trunk/kdegraphics/kpdf/; revision=380494
Display contents faster, waste less memory. Added preloading to forward-
generate pages (if threading enabled and memory profile >= normal). Main
pages are always generated first, then thumbnails come, then preload ones,
etc.. Btw memory and cpu will be happier now.
(1 bug in memory and 1 in preloading still remains.. will be spotted soon)
For Developers:
Generator: dropped moc, api changes, better functions naming.
PDFGenerator and Document: moved requests queue to the Document.
The generator performs only a single request a time. A flag can be
queried to know if the generator is ready for starting another pixmap
generation or not (in case it's generating a pixmap in background).
PixmapRequest: added priority and backgound (async) attributes.
Document: queuing requests by priority in requestPixmaps.
Observer: added defines for priorities used in doc->requestpixmaps.
PageView: delayed find-ahead timer creation (not created if not needed).
Added preload PixmapRequests to the pixmap requests list.
ThumbnailsList: adapted to pixmapRequest changes and changed naming for
delayed thumbanils request.
svn path=/trunk/kdegraphics/kpdf/; revision=379820