Commit graph

51 commits

Author SHA1 Message Date
Pino Toscano
805b0f3386 Introduce a selective merging strategy for text areas, so we merge only all the areas of a text "line" together, not also with the areas above (if the lines overlap).
Adapt the text selection to merge correctly depending on the current rotation.
Drawback: darker overlap zones if two lines overlap.

svn path=/trunk/KDE/kdegraphics/okular/; revision=708745
2007-09-05 14:57:15 +00:00
Pino Toscano
24c387a84b first (and i hope last) attempt to exclude the internal area functions from the apidox
svn path=/trunk/KDE/kdegraphics/okular/; revision=705433
2007-08-27 23:02:48 +00:00
Pino Toscano
5150419e81 adapt the debug stuff to the new kdebug way:
- make the output looking more or less like before (using nospace() or removing the spaces)
- remove endl and '\n' at the end of debug outputs
- fixing the QDebug operator<<'s around
- isolate the debug area number of the core into a separate header, and apply it instead of the numbers found in textpage.cpp

svn path=/trunk/KDE/kdegraphics/okular/; revision=694667
2007-07-31 10:19:48 +00:00
Thiago Macieira
000dc825e3 Use QDebug instead of kdbgstream
svn path=/trunk/KDE/kdegraphics/okular/; revision=694533
2007-07-30 23:58:04 +00:00
Christian Ehrlicher
a913ceb5fd win32 compile++
svn path=/trunk/KDE/kdegraphics/okular/; revision=688260
2007-07-15 15:57:10 +00:00
Pino Toscano
88474e3e46 manually iterate in RegularArea instead of using Q_FOREACH, it seems msvc does not like it in template classes
remove the return value in a void function

svn path=/trunk/KDE/kdegraphics/okular/; revision=688259
2007-07-15 15:52:17 +00:00
Pino Toscano
b861878436 RegularAreaRect needs to be exported
svn path=/trunk/KDE/kdegraphics/okular/; revision=686286
2007-07-10 23:22:45 +00:00
Pino Toscano
fbe8dbf108 promote RegularAreaRect from a typedef to a class, a bit more easy to eventually expand in the future
svn path=/trunk/KDE/kdegraphics/okular/; revision=686281
2007-07-10 23:15:14 +00:00
Pino Toscano
1eb435cddb remove the kdebug.h inclusion in area.h
svn path=/trunk/KDE/kdegraphics/okular/; revision=661410
2007-05-05 13:50:44 +00:00
Pino Toscano
8a216058f3 clean the headers
svn path=/trunk/KDE/kdegraphics/okular/; revision=656768
2007-04-22 10:39:31 +00:00
Pino Toscano
656736c1af Link -> Action renaming.
Step #4a: more apidox fixes.

svn path=/trunk/KDE/kdegraphics/okular/; revision=656149
2007-04-20 13:02:45 +00:00
Pino Toscano
5f21b15d99 Link -> Action renaming.
Step #2: Link -> Action for the action hierarchy, and for the ObjectRect type.

svn path=/trunk/KDE/kdegraphics/okular/; revision=656140
2007-04-20 12:37:12 +00:00
Christian Ehrlicher
c5c2da7c89 fix win32 compilation
warnings--

svn path=/trunk/playground/graphics/okular/; revision=643874
2007-03-18 17:14:36 +00:00
Pino Toscano
37b5d0f3cc handy method
svn path=/trunk/playground/graphics/okular/; revision=629174
2007-02-01 18:31:45 +00:00
Tobias Koenig
ea51ee18f5 Do a lot of include cleanups... we install all important
header files now

svn path=/trunk/playground/graphics/okular/; revision=619492
2007-01-03 14:30:48 +00:00
Tobias Koenig
14ea3ab2ef Further documentation and API cleanups
svn path=/trunk/playground/graphics/okular/; revision=619054
2007-01-02 17:05:49 +00:00
Pino Toscano
d5f99995dd add handy debug operators for NormalizedPoint and NormalizedRect
svn path=/trunk/playground/graphics/okular/; revision=618237
2006-12-31 17:52:24 +00:00
Tobias Koenig
4fe8bdce53 Fixed free text selection for rotated pages
svn path=/trunk/playground/graphics/okular/; revision=617621
2006-12-29 18:18:07 +00:00
Pino Toscano
bbb55280d5 Simplify the auxiliary functions used within RegularArea<>, patch by André Wöbbeking.
Make the return value of RegularArea::geometry a simple list instead of a pointer, as suggested by André.

CCMAIL: Woebbeking@kde.org

svn path=/trunk/playground/graphics/okular/; revision=616994
2006-12-27 17:10:06 +00:00
Pino Toscano
dff36b98f8 simplify RegularAreaRect by avoiding the usage of pointers, as they don't give benefits anyway.
Fixing also the text extraction when using the rectangular selection across two or more pages.

svn path=/trunk/playground/graphics/okular/; revision=616264
2006-12-24 18:19:18 +00:00
Pino Toscano
6db5e75a00 this should be better
svn path=/trunk/playground/graphics/okular/; revision=616243
2006-12-24 14:40:49 +00:00
Pino Toscano
52266d71b6 apidox fixes
svn path=/trunk/playground/graphics/okular/; revision=616096
2006-12-23 16:31:56 +00:00
Pino Toscano
7d275a6390 Improved the text selection by using and ad-hoc function that takes care of adding or merging a new shape to the area, so the simply() at the end is no more needed.
This gives another speedup when using the text selection.
(And, rename okularDeleter to okularPtrUtils.)

svn path=/trunk/playground/graphics/okular/; revision=616089
2006-12-23 16:18:54 +00:00
Pino Toscano
0fa0609e1f properly delete the regular areas of a RegularArea<> when it stores pointers to areas. no more memory leaks for RegularArea<>, yay!
svn path=/trunk/playground/graphics/okular/; revision=616069
2006-12-23 15:39:26 +00:00
Tobias Koenig
fc13c09b3e Added documentation and some code cleanup
svn path=/trunk/playground/graphics/okular/; revision=608231
2006-11-27 08:05:56 +00:00
Tobias Koenig
a490cc0cd7 Add the following functionality:
* Bring QPixmap* back to make Albert happy ;)
 * Store only one QPixmap per page/size and rotate it directly
 * Rotate ObjectRects (boundary)
 * Rotate Annotations (point coordinates)
 * Don't reload pixmaps, ObjectRects and annotations on rotation

svn path=/trunk/playground/graphics/okular/; revision=606371
2006-11-20 07:53:32 +00:00
Pino Toscano
c57405db8c slightly improve the performances of RegularArea::simplify()
svn path=/trunk/playground/graphics/okular/; revision=605935
2006-11-18 17:07:15 +00:00
Pino Toscano
274469dae8 Almost complete support for inverse search within okular.
THe system generally works; what is missing is a good activating strategy (added in TODO - our usability expert is working on that), and a GUI to configure the editor.
The DVI backend was adapted to use this new feature.
(The PDF backend will use it soon.)

svn path=/trunk/playground/graphics/okular/; revision=605708
2006-11-17 22:15:15 +00:00
Pino Toscano
d6fd44e1ed forward declaration
svn path=/trunk/playground/graphics/okular/; revision=599828
2006-10-28 18:03:33 +00:00
Pino Toscano
08877db01b const&
svn path=/trunk/playground/graphics/okular/; revision=594961
2006-10-12 22:04:26 +00:00
Pino Toscano
c42348edaa improve the HighlightAreaRect ctor
svn path=/trunk/playground/graphics/okular/; revision=594957
2006-10-12 21:55:32 +00:00
Pino Toscano
5d139f7480 some const'ness more
svn path=/trunk/playground/graphics/okular/; revision=594950
2006-10-12 21:31:08 +00:00
Pino Toscano
c566e65326 less verbose, please
svn path=/trunk/playground/graphics/okular/; revision=594659
2006-10-11 22:20:11 +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
Tobias Koenig
df7d144c10 Moved all classes in core/ into the 'Okular' namespace and removed
nearly all references to kpdf (knewstuff still missing).

svn path=/trunk/playground/graphics/okular/; revision=586993
2006-09-21 08:45:36 +00:00
Pino Toscano
45615e5289 Reworked a bit the ObjectRect API, by allowing subclassing for easiness wrt Annotation's. The brand new AnnotationObjectRect is responsible for providing the annotation bounding rect (that may vary for the various annotation types).
Adapted also to receive the X and Y scale, so the bounding rect for every kind of ObjectRect can depend on a specific page size.
As a consequence, we can add also the annotations among the rects of a Page, and use the standard getObjectRect to find them.

svn path=/trunk/playground/graphics/okular/; revision=586457
2006-09-19 17:17:29 +00:00
Pino Toscano
1ba01ac6f1 Refactor a bit how ObjectRect works: now it's an independent class, that keeps the shape of the "kept" object using a QPainterPath [the qreal version to QRegion].
Modified the constructors to specify if a rect represents a rectangular region or an elliptic one; added a new one to create a region defined using a polygon.
Adapted to the new API the generators that support links (all but the DjVu one - will be adapted and improved soon).

svn path=/trunk/playground/graphics/okular/; revision=561890
2006-07-13 15:03:18 +00:00
Pino Toscano
bfc6133c9c update a thumbnail only if its visible area rect is changed
svn path=/trunk/playground/graphics/okular/; revision=561676
2006-07-12 22:00:46 +00:00
Pino Toscano
cd81b54d63 Show the current viewport in the thumbnail view, with a read contour.
svn path=/trunk/playground/graphics/okular/; revision=554363
2006-06-23 21:11:52 +00:00
Pino Toscano
b1973c5078 some kpdf -> okular (mostly in comments)
svn path=/trunk/playground/graphics/okular/; revision=551881
2006-06-15 21:24:00 +00:00
Pino Toscano
aca01f331f Support for visibility in oKular; oKular compiles and links, but it seems no plugins are found.
At the moment, the exported classes are only the one needed to make oKular and its actual plugins link, nothing more. Probably some other classes could be made visibile, but I'm not an expert about that.

svn path=/branches/work/kde4/playground/graphics/okular/; revision=538771
2006-05-08 20:12:04 +00:00
Pino Toscano
55bc51a6d0 less qt3_support
svn path=/branches/work/kde4/playground/graphics/okular/; revision=525131
2006-03-31 21:51:45 +00:00
Pino Toscano
25e194b435 less qt3_support
svn path=/branches/work/kde4/playground/graphics/okular/; revision=524069
2006-03-29 16:46:09 +00:00
Albert Astals Cid
cbb8e80154 some more compile changes, now let's see basketball
svn path=/branches/work/kde4/playground/graphics/okular/; revision=521882
2006-03-23 19:02:55 +00:00
Albert Astals Cid
178bab06cb core builds
svn path=/branches/work/kde4/playground/graphics/okular/; revision=521179
2006-03-21 20:00:24 +00:00
Albert Astals Cid
c0a2772c9a more porting, area.h is begining to loose but i need sleep
svn path=/branches/work/kde4/playground/graphics/okular/; revision=520838
2006-03-20 23:14:05 +00:00
Albert Astals Cid
6987b83b6a a bit of porting area.h is giving me lots of problems
svn path=/branches/work/kde4/playground/graphics/okular/; revision=520829
2006-03-20 22:40:11 +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
Piotr Szymanski
402ec73285 - add one moreconstructor for objectrect
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=455042
2005-08-30 13:24:29 +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