Commit graph

63 commits

Author SHA1 Message Date
Jake Linder 172d78c6b3 Add "Trim To Selection" feature
Changes

C1. Added submenu, moved "Trim margins" (TM mode) to it and added  "Trim To Selection" (TS mode).
C2. Activating "Trim To selection" enters a new mousemode, similar to RectSelect for defining a viewport.
C3. Once a viewport has been defined, it serves as a viewport for all pages in the document.
C4. Left/Right pages are not treated differently.

Manual Testing

T1. Switching between modes enforces at most one active.
T2. Can deactivate a mode by selecting it again from the menu.
T3. When draggin bbox selection, clicking outside page does not crash.
T4. When in "Facing Pages" mode, mouse release must be over any page (or is ignored).
T5. Normalized bbox coords are computed relative to page indicated by point of mouse release.
T6. Behave as expected when switching between any pair of No Trim/Trim Margins/Trim To Selection.
T7. TM mode persisted across app restarts (existing behavior).
T8. TS mode forgotten across app restarts (as desired).
T9. Exiting and reselectin "Trim To Selection" prompts for new bbox.
T10. Choosing a small Trim bbox enforces minimium dimensions size (As percentag of total), as
it does in TM mode, because of the "scale big and crop down" implementation, to avoid huge pixmaps.
TS mode minimum set at 20% (vs. TM mode's 50%).

REVIEW: 124716
BUGS: 351156
2015-08-27 22:09:02 +02:00
Michal Humpula f22d9d2897 Add Magnifier
REVIEW: 113973
GUI
2014-02-24 23:42:10 +01:00
Albert Astals Cid 6a0d8c3c1e Make sure we set the correct group merge here 2014-02-04 00:30:30 +01:00
Thomas Fischer e4aa8317b5 Auto-fit zoom
BUGS: 249364
REVIEW: 110003
2013-08-18 17:19:20 +02:00
Jon Mease 78faf1e68f Add undo/redo support for annotations
REVIEW: 107442
2013-04-06 00:22:48 +02:00
Fabio D'Urso 7db0647128 Removed zoom_fit_rect action from part.rc and part-viewermode.rc
Because it's not used by Okular.
Corresponding KPDF pageview code was removed in 2004 by commit
89cd5a2fa6
2012-09-08 19:47:28 +02:00
Albert Astals Cid 880dae2e19 Add a way to rename the current page bookmark from the menu
Comes with some api additions to bookmarkmanager
2011-10-25 22:21:22 +02:00
Albert Astals Cid e88f9c2915 Need to increase version number 2011-10-12 15:55:17 +02:00
Jiri Baum f81a49fafa table selection tool
BUGS: 279859
REVIEW: 102358
FIXED-IN: 4.8.0
2011-10-12 15:52:24 +02:00
Albert Astals Cid 0071c788ff Make 53 users happy by allowing to show or hide the bottom page bar
Based on a patch by kde2eran@tromer.org
BUGS: 157284
FIXED-IN: 4.6

svn path=/trunk/KDE/kdegraphics/okular/; revision=1191188
2010-10-29 21:47:17 +00:00
Pino Toscano d89eb2ae9f Add a "Find Previous" action.
BUG: 184230

svn path=/trunk/KDE/kdegraphics/okular/; revision=926106
2009-02-14 17:11:29 +00:00
Sebastian Trueg 00f069f873 Reverted part of my patches based on pinotree's wishes. :)
svn path=/trunk/KDE/kdegraphics/okular/; revision=887165
2008-11-21 11:45:00 +00:00
Sebastian Trueg b787abb5d8 Nobody reacted on my email to the devel mailing list, so I suspect that noone has any objections to my patches.
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
2008-11-21 10:50:16 +00:00
Pino Toscano f75e92de5f borders -> margins, except in UI (todo added for kde 4.2)
svn path=/trunk/KDE/kdegraphics/okular/; revision=813364
2008-05-27 14:00:59 +00:00
Pino Toscano 2b971b07b2 Make it possible to draw just sections (crops within bounding boxes) of pages.
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
2008-05-19 00:37:14 +00:00
Pino Toscano c9089f3160 Add the possibility to save a copy of the document with the changes to it (only for form fields at the moment).
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
2008-03-11 23:40:59 +00:00
Pino Toscano f65c9225a9 Add an action to stop all the text speechs.
svn path=/trunk/KDE/kdegraphics/okular/; revision=782505
2008-03-05 12:05:48 +00:00
Pino Toscano 69179e2505 More interaction between Okular and the KDE Text To Speech system:
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
2008-03-05 11:06:55 +00:00
Pino Toscano cad5fe4806 use the new document{Back|Forward}() standard actions
svn path=/trunk/KDE/kdegraphics/okular/; revision=752443
2007-12-24 13:11:19 +00:00
Pino Toscano 3140a1ee05 fix the name of Tools menu
svn path=/trunk/KDE/kdegraphics/okular/; revision=751039
2007-12-20 23:17:45 +00:00
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