opened. More stuff for getting async generator to work. Leakfix.
Note: memory management coolness Vol.1 : now kpdf has memory profiles that
allow using up to xx% of the total memory and clip maximum usable memory to
a half of the free one. Example: an istance of kpdf is using all the
memory (as regular cache). You open some memory hungry app or another kpdf
and you'll see the first istance dropping cached pages (freeing memory!)
to leave room for the other app! It's dynamic, fast, avoids swap and
something cool from my programmer's viewpoint.
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=373123
PixmapRequest class. When requesting pixmaps, one or multiple requests are
sent to the Document that (frees memory as in current policy) and send each
PixmapRequest to the current Generator. Added a signal in generators to
notify the Document when a pixmap generation has finished.
PageView, ThumbnailsList, PreviewWidget have been unbroken after the memory
management commit. (mem management seems in pretty good shape..it's smart.)
Added 'visible widgets' list to those classes to speed up searching and
processing on visible widgets only.
Note: asyncronous pixmap requests can now be queued and we're getting very
close to the threaded generator.
Note2: Leakfixes and memory improvements.
Final NOTE: head merging is possible now, as all remaining work can be
considered bugfixes.. API is getting final. It will only change in xpdf
dep stuff, the already undefined Viewport object and some bits in
Generators.
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=372787
Enrico feel free to add your description on the main.cpp file and/or change your mail addreesses
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=372585
up nice and solid when viewing large PDFs, even on fast machines. instead
search after the user has paused typing
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=372580
not on screen starting from the oldest generated one. Rules (aka memory
profiles) are simple by now, but they work as expected.
Plus: added functions for getting Linux total memory and free memory by
querying the /proc filesystem. Generator creation by mimetype. -Fixes.
BROKEN: thumbnail, presentation (need to reimpl a virtual method)
TODO1: notify generators when cancelling jobs.
TODO2: add forward caching.
TODO3: rationalize code, clean it up and update README.png
TODO4: periodically check for free memory and unload pixmaps if needed.
TODO5: wisely choose default values for memory profiles.
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=372514
effects are implemented for now. TODO: detect Transitions from the PDF
(maybe xpdf don't tell us).
Adding this (another DocumentObserver) is helping me to better focus the
'memory manager' concept. But still there are some clouds..
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=371429
feels better. Updated TODO with interesting things.
Note: I feel performance loss. Need to check carefully all zoom functions,
relayouts and wasted paints. I'll love to do that after merging to HEAD.
Note to all: HEAD merge only after API will be final (the only 2 variables
are MemManager, ThreadedGen and maybe a DocumentDom (if I can make it next
weekend, but I think not)).
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=370404
Abstracted xpdf's Outline to a Dom Tree. Fixed MERGE tags through the code.
Added comments (documentation) to KPDFDocument class and other classes in
document.h. Changed a little Generator interface.
Moved code from toc.h/.cpp to GeneratorPDF and shrinked a lot.
TODO (now): Convert TOC (widget) to use the Dom tree as data source.
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=369914
GeneratorPDF class. Adapted the whole KPDFLink class to a hieracy of
classes and added a Viewport description associated to 'Goto' links.
Link hasn't got geometry properties. A PageRect class has born to describe
all 'active rects' on a page (hand pointed on mouse over). PageRect can
contain many type of objects such as Links or other active items (images,
...). The Page class now stores PageRects only (no more geometric Links,
as already said).
Added a DocumentInfo class filled in by generators and used by the
PropertiesDialog.
Outline hasn't been abstracted while now, but a DocumentSynopsis class
is in place and work needs to be done to make GeneratorPDF fill in a
DocumentSynopsis instance and pass it to the Toc widget.
Note1: Document has nothing more to do with xpdf, it only commands its
generator.
Note2: 2 remaining classes to be abstracted: Outline, TextPage. But
waning..
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=369651
Enrico, i've added it in the menu, do you prefer it to be in the configuration dialog?
CCMAIL: rosenric@dei.unipd.it
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=367732
Added 'continous zooming' using mid mouse button. Clipped selections to
viewport. Fixed a bad rounded float-to-int conversion (gives more pixel
precision in zooming).
CCMAIL: burellil@dei.unipd.it
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=363468
Added a disabled field for setting number of columns. Having dozens of
pages displayed on screen looks somewhat cool!
svn path=/branches/kpdf_experiments/kdegraphics/kpdf/; revision=363465