1. GSGenerator (generator ghostview, need renaming)
Implements the Generator class, handles PixmapRequest transmission and starts other objects.
2. InternalDocument
Holds information stored in document's DSC and the information set by the user:
Page Format, BoundingBoxes, etc, some code taken from kghostview
3. GSInterpreterLib, the synchronous pixmap generator
4. GSInterpreterCMD, asynchronous pixmap generator that communciates with the kpdflibgsasynchelper application
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445276
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
- add an option to allow selecting a generator by the user if more than one generator found for given mimetype
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445154
GS says it cant open the initial device, does it mean the pximap or the widget? does the widget need to be shown
before it can receive communication from X11?
Asking Luis, he might know. I wanted to use the library version of the interpreter but it
somehow fails to create instance... Will investigate it later.
CCMAIL: luis@luispedro.org
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=439247
still i implemented all of this myself, damn ghostview is making me lose all the joy i had in working
on okular, working with such a badlyu document API like libgs has i just killing me...
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=437094
* 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
based on what generators provide via ktrader, includes caching the mimetype list
- handling of compressed files added too
- both fucntions basedo kviewshell's version that Wilfried Huss suggested, although with
significant remodelling by myself, still i see no problem on adding relevant copyrights
to this file for the original functions' author just tell me how he/she is
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=434859
- add several functions to xpdf's TextWord:
* int getRotation() - returns the rotation of the word
* double getEdge(int x) - returns the edge of char nr. x
* double getBaseline() - returns the baseline of the word
* GBool hasSpaceAfter() - returns the spaceafter property (is the word followed a space)
* TextWord* nextWord() - returns the pointer to the next word in the current textline
- undefine HAVE_MKSTEMPS, my libkdefakes doesnt seem to have it
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=434858
- mark one function to remove later
- add one more category to desktop file to be more vfolders compliant
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=431970