Anyway, this is what happens:
* I replaced the zoom combobox in the toolbar with the fit to width/page buttons. For one they look much cleaner and
also most users would never use the freezooming anyway.
* Removed the frame from the sidebar, making for a cleaner overall look. After all, nothing else has a frame.
* Let the statusbar stretch over the full width of the window. This again makes the app look cleaner.
* Used the same trick as in Gwenview: let the background shine through -> clean++
* Use QToolButton instead of QPushButton for the minibar buttons to fit the other buttons in all apps.
svn path=/trunk/KDE/kdegraphics/okular/; revision=887160
Separated normal & cropped geometries in page items;
made the page painter able to draw based on a crop section;
add a config + menu option for turning the white borders removal.
Based on a patch by the Mr. anonymous kde2eran@tromer.org, thanks.
BUG: 161599
svn path=/trunk/KDE/kdegraphics/okular/; revision=809496
On the Document/Generator side, introduce a proper interface for the purpouse.
On the GUI side, add a new "Save As" function that save the changed document to a location.
The action is enabled only if the current backend can provide the functionality.
svn path=/trunk/KDE/kdegraphics/okular/; revision=784661
a) "Speak While Document" action to speak the content of the whole document
b) "Speak Current Page" to just speak the content of the currently shown page
c) "Speak Text" action in the right click menu of the editor-like text selection
(a) also implements KPDF's bug #118872.
svn path=/trunk/KDE/kdegraphics/okular/; revision=782497
- shorten the toolbar labels of the Previous/Next Page actions, and put them into the toolbar by default instead of the Back/Forward [history control]
- shorten the toolbar labels of the tool buttons
- remove the Open/Open recent button from the shell toolbar
svn path=/trunk/KDE/kdegraphics/okular/; revision=702549
This includes:
- the interfaces for the generators
- the basic widgets for editing their value
- a top bar for show/hide the forms of a document
- the implementation of the forms for the PDF backend
still nothing that can be done with them, nor the value of the forms can be saved...
... but it's a start! :-)
svn path=/trunk/playground/graphics/okular/; revision=637001
instead of choosing the orientation degrees (eg 0, 90, etc), use two Rotate Left/Right actions to rotate the whole document 90 degrees resp. on the left or on the right.
Also add an 'Original orientation' action to restore to the orientation of the document.
svn path=/trunk/playground/graphics/okular/; revision=625297
* 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
The text exporting option is detached from that other options and always visible (disabled if not supported), so it could be easier for the user to find it out.
svn path=/trunk/playground/graphics/okular/; revision=556922
- 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
- 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
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
It's not yet complete (file dowload and internal notifies are missing) but
the new stuff browser is running. The ui is modeled on an Aaron's mockup.
NewStuff:
Fetches the providers list (kpdf.kde.org/newstuff/providers.xml), lets
the user select a provider and displays provider's contents in a KHMTL
part (for flexibility and eye candy).
Internally we use KNS' Entry and Provider structures only, doing all the
transfer operations by hand via KIO::get jobs. Download will be done
internally too (to give better consistancy in the interface).
Network timeouts, problems or info messages are notified in a statusbar-
like widget and we try to keep all information in the dialog, without
using messageBoxes
Part:
Added the action and the dialog invocation
Makefiles:
Link the KNEWSTUFF and KHTML libraries.
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=405828
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
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
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