Commit graph

43 commits

Author SHA1 Message Date
Pino Toscano
8ff3d1d705 more use of standard actions
svn path=/trunk/KDE/kdegraphics/okular/; revision=722702
2007-10-07 23:09:08 +00:00
Pino Toscano
0b26a91f1f use the standard action names
svn path=/trunk/KDE/kdegraphics/okular/; revision=722687
2007-10-07 22:21:13 +00:00
Albert Astals Cid
1b3945bfb4 generator_prefs shall not be the last settings option
svn path=/trunk/KDE/kdegraphics/okular/; revision=715686
2007-09-22 22:01:00 +00:00
Pino Toscano
7eb8659d4f Add a tool button in the toolbar with the "select" actions.
Preparing a bit for separating rectangular text selection and rectangular image selection.

svn path=/trunk/KDE/kdegraphics/okular/; revision=712381
2007-09-14 10:02:33 +00:00
Pino Toscano
969bc7b908 Ctrl+A to select all the text in the document.
Implements KPDF bug #109346.

svn path=/trunk/KDE/kdegraphics/okular/; revision=708124
2007-09-03 21:35:05 +00:00
Pino Toscano
7e4b15542d Usability work on the toolbar:
- 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
2007-08-20 20:25:22 +00:00
Pino Toscano
1e13204e92 Few changes in the toolbar: remove the Fit to actions, and make room for the Text selection mode
svn path=/trunk/KDE/kdegraphics/okular/; revision=685293
2007-07-08 15:14:03 +00:00
Pino Toscano
7c8cc68a8c Add a Reload menu item to manually reload a document.
Useful for example when not using the watching file features.
Implements KPDF bug #136820.

svn path=/trunk/KDE/kdegraphics/okular/; revision=661681
2007-05-06 11:23:26 +00:00
Pino Toscano
8eca279375 Add an Add/Remove Bookmark to add/remove a bookmark for the current page.
svn path=/trunk/KDE/kdegraphics/okular/; revision=660097
2007-05-01 14:43:30 +00:00
Pino Toscano
fd7434c95a Add support for custom generator about data (and potentially for custom configuration).
svn path=/trunk/playground/graphics/okular/; revision=640348
2007-03-07 18:15:00 +00:00
Pino Toscano
db8a10dc2c Preliminary supports for text and choice form fields.
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
2007-02-25 00:07:59 +00:00
Pino Toscano
1b172366ae move the prev/next bookmark menu items to the bookmarks menu
svn path=/trunk/playground/graphics/okular/; revision=627758
2007-01-28 00:15:13 +00:00
Pino Toscano
e6cc48a009 Of course Florian is right, first Left and then Right
svn path=/trunk/playground/graphics/okular/; revision=625298
2007-01-19 21:51:54 +00:00
Pino Toscano
1041866493 Improve the Orientation menu, as suggested by our usability export Florian:
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
2007-01-19 21:43:53 +00:00
Pino Toscano
8a7c2ad654 As requested by our usability expert Florian, add a Bookmarks menu with the bookmarks in the current document, if any.
svn path=/trunk/playground/graphics/okular/; revision=622995
2007-01-13 17:28:54 +00:00
Pino Toscano
18fab3d130 Improve the way we deal with generators that give the possibility to change the size of the pages: instead of let them destroy and recreate the pages (bad), ask them the sizes they support, then do the work ourselves and notify the generator when the work is done.
While I was at it, I changed from "paper size" to "page size", it should be better.

svn path=/trunk/playground/graphics/okular/; revision=620411
2007-01-05 23:12:06 +00:00
Pino Toscano
5ce4b0674e Make okular able to copy the text selection to the clipboard (finally!).
svn path=/trunk/playground/graphics/okular/; revision=607496
2006-11-24 21:02:38 +00:00
Pino Toscano
4c35d1fcc7 every one at openusability.org agrees about [ zoom combo ] [ zoom out ] [ zoom in ], so let's follow the precious usability suggestion.
svn path=/trunk/playground/graphics/okular/; revision=602838
2006-11-06 23:18:58 +00:00
Pino Toscano
5f28d1163f make a pair of actions name and label more close to the others
remove unused (duplicated) action

svn path=/trunk/playground/graphics/okular/; revision=598165
2006-10-22 18:19:17 +00:00
Pino Toscano
42310e184c Restructuring a bit how the text-editor-like selection works:
* 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
2006-09-26 22:22:01 +00:00
Pino Toscano
b3a4b27956 New skeleton for giving the generators the possibility to export the document they open in some format they support.
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
2006-07-01 22:17:53 +00:00
Pino Toscano
598280790b New actions Prev/Next Bookmark for navigating back and forth in the bookmarked pages.
svn path=/trunk/playground/graphics/okular/; revision=554556
2006-06-24 10:56:06 +00:00
Albert Astals Cid
13dde4096f use the nice code brad wrote for poppler that allows you to extract embedded files from a pdf document.
svn path=/branches/work/kde4/playground/graphics/okular/; revision=545966
2006-05-28 16:54:54 +00:00
Piotr Szymanski
4387e1489e - GIGANTIC 2700 line diff with LOTS OF FEATURES!
- 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
2006-02-15 18:54:49 +00:00
Albert Astals Cid
671091cc02 renaming++
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=471470
2005-10-17 19:20:32 +00:00
Piotr Szymanski
34b8e28322 - Page/Link: tooltips for links backported
- 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
2005-08-10 16:14:39 +00:00
Piotr Szymanski
81bb03b454 - added suport for changing rotation of the current document, looked at ghostview code, on how to do it
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
2005-07-20 22:28:23 +00:00
Piotr Szymanski
36ab5c8965 - make generators plugins by:
* 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
2005-07-15 18:20:57 +00:00
Albert Astals Cid
daf99824ee Change "Get new stuff" to something more meaningfull
svn path=/branches/kpdf/annotations/kdegraphics/kpdf/; revision=427164
2005-06-19 21:01:28 +00:00
Enrico Ros
0612a60233 merging patch_111
svn path=/branches/kpdf/annotations/kdegraphics/kpdf/; revision=425048
2005-06-13 18:06:32 +00:00
Enrico Ros
7b6b7a359d KPDF HotNewStuff Browser!
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
2005-04-16 00:25:26 +00:00
Enrico Ros
9023b05e16 Document, Page:
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
2005-03-13 13:14:44 +00:00
Jakub Stachowski
664d441534 Added action for showing/hiding left panel and removed it from settings.
"Watch file" moved to settings dialog.
BUG: 99316

svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=396976
2005-03-12 15:39:04 +00:00
Albert Astals Cid
99a10e1841 All fixes done in HEAD come to annotations branch
svn path=/branches/kpdf_annotations/kdegraphics/kpdf/; revision=395067
2005-03-05 15:59:15 +00:00
Enrico Ros
fbc7d45083 Adding support for annotations in framework. Only need to add and
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
2005-02-18 18:24:45 +00:00
Enrico Ros
451a3091cc Opening kdpf_annotations branch. Code changes:
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
2005-02-12 17:42:54 +00:00
Albert Astals Cid
8fbf5a5fcd Honour KDE User Interface Guidelines - Menu section http://developer.kde.org/documentation/standards/kde/style/menus/index.html, Application specific menus go after Go and before Settings, thanks Pino for noticing
svn path=/trunk/kdegraphics/kpdf/; revision=384680
2005-01-31 19:57:46 +00:00
Enrico Ros
93c1d3845d Implemented history (implementation is inside Document. actions (2) are in
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
2005-01-27 17:31:07 +00:00
Enrico Ros
e65c7058c3 Added the MiniBar class, a layouted widget that displays current page
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
2005-01-26 10:42:07 +00:00
Stephan Binner
e5d68bf181 CVS_SILENT i18n style guide fixes
svn path=/trunk/kdegraphics/kpdf/; revision=380114
2005-01-19 15:33:27 +00:00
Albert Astals Cid
0ff32c4da9 Add a slotRequestVisiblePixmaps() that fixes the problem of pixmap not updating when going/returning from full screen mode with fit to page and non continuos mode. Enrico please check is not a VERY BAD THING to do it there
Add some accelerators
Plug the actions that change the mouse behaviour into a menu as everything should be menu accesible
Put the F9 in the KACtion creator

svn path=/trunk/kdegraphics/kpdf/; revision=377533
2005-01-11 17:35:07 +00:00
Tobias Koenig
49fc18686b Euqalize the order of the zoom actions, kdvi/kghostview/kview/ksvgview do it the same
svn path=/trunk/kdegraphics/kpdf/; revision=375457
2005-01-04 14:22:46 +00:00
Enrico Ros
ffe8ddaf9d Copying kpdf_experiments into branch and reordering directories. Look there
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
2005-01-02 14:19:33 +00:00