TODO 15.4 KB
Newer Older
TODO - KPdf branch: "kpdf_annotations"
3 4 5 6
    ADD - ADDed (new feature)
    CHG - CHanGed (existing behavior)
    FIX - FIXed (bug or regression)
    MRG - MeRGed (code from a branch or a patch)

Enrico Ros's avatar
Enrico Ros committed
In progress [working on]:
Enrico Ros's avatar
Enrico Ros committed
-> annotations: renderers in PagePainter (for the 6 annots)
-> annotations: handlers in PageView for WindowAnnots and others..
Enrico Ros's avatar
Enrico Ros committed
-> annotations: creators in PageViewAnnotator (40% done)
-> annotations: framework (BR67300,BR62793) and tools (BR67300,BR91251)
Enrico Ros's avatar
Enrico Ros committed
-> annotations: add the annot pane (cool plz!)
-> (done: 100%) refactor, pdf parser, xml storage
Enrico Ros's avatar
Enrico Ros committed
-> check mouse wrapping not screH / 2
Enrico Ros's avatar
Enrico Ros committed
-> check if fix was applied in head only (pageview.cpp 1676)
Enrico Ros's avatar
Enrico Ros committed
-> pageview: update layout when toggling the 'ebook atyle alignment'

More items (first items will enter 'In progress list' first):
Enrico Ros's avatar
Enrico Ros committed
20 21
-> merge with head: core/ has no qwidgets around. the head fonts can't make exception!
   use getMetaData for getting the font list instead of 'passing a klistview to the generator'!
-> pageview: add vp damaging queue and flush function. add coolfx to smoothmove using damaging
23 24
-> annotations: add config option for default name change
-> annotations: toolbar: display tooltip only the first time
-> annotations: provide nice wizards. Make it easy to deliver/copy/move the xml files (by Uga)
-> GHNS: get hot new ebooks on the supported formats (pdf for now) (enrico)
-> popup context menu when using right button in selection mode (BR99315)
-> pageview: add scrollbar marks for bookmarks (like kate)
29 30
-> evaluate changing KPDFLink to KPDFAction
-> evaluate completely handling links internally instead of asking xpdf structs
31 32
-> pageview: change document viewport after mouse scrolling ended (not every scroll frame)
   this will give better mvc consistancy
-> other info on pdfs properties: number of accessed times, time spent on pdf, ...
-> part: collapsing the left panel will hide it (activate hiding action)
Enrico Ros's avatar
Enrico Ros committed
-> preload: add a delay when forward loading pages
36 37
-> toc: add search bar (a 'prune on type' lineedit like in thumbnails widget) (BR99349)
-> bookmarks: fastmarks (new bookmark concept with tab-like signs, shortcuts, etc) (BR
-> bookmarks: go to next/previous actions (showing in thumbnailslist rmb popup too)
Enrico Ros's avatar
Enrico Ros committed
-> viewport restoring: sometimes it seems to restore the viewport a bit under where it was
-> viewport restoring: save the zoom/viewCols/continous setting between runs (BR97307+patch)
-> search: use shortcut for 'find next' action (not the default one) in find-ahead
42 43 44
-> core: Delay TOC (DocumentSynapsis) generation (and move it on thread)
-> core: add a way to handle "named xpdf links" in KPDFLink instead of resolving all
   dests when displaying a page (speedups a lot generation of page with many links)
-> toolbar: move the toolbar to the top of pageview (left panel is really at the left of the toolbar)
Enrico Ros's avatar
Enrico Ros committed
-> toc: higlight the row of the current page
47 48
-> thumbnailslist: show Viewport in(blended/contour)
-> thumbnailslist: refactor to do internal rendering as pageview does (way faster
-> thumbnailslist: clinking on higlighted rect should bring the viewport to that search result (BR98334)
   than using QScrollView + inserted Widgets and saves 8% on document loading)
51 52
-> core: abstract TextPage generation (the last xpdf dependant class!). then go dancing
   in the streets. make it new and easy to use for wp-style selections.
-> Dom framework to cache document metadata. It should archive those types of data:
Enrico Ros's avatar
Enrico Ros committed
54 55
   (NOTE: already Dom'ed object is marked with 'X')
   - <X> Synopsis will go there after 1st generation (so we can edit it too)
Enrico Ros's avatar
Enrico Ros committed
   - <X> Document info (after the 1st gen)
   - <X> Bookmarked pages
   - <X> Current Viewport and 10 history steps
59 60
   - Edited pages (rotated/with_data for example)
   - Overlay editing (hilighting/notations/etc..)
   - Presentation related overrides (FS mode, individual / global transitions)
62 63 64 65
   - ..more stuff.. but this isn't a problem, since a QDom is flexible by design
   The Object will reside into the Document and must not be accessible by Oservers in
   a direct way. Dom format, relations to other classes and accessing must be specified
   in a separated diagram or text file.
66 67
   - Plus think at storing xml data to an external shared server.. somthing that
   has to do with versioning data.. (shared annotations, bookmarks & co.)
Enrico Ros's avatar
Enrico Ros committed
68 69
-> add kpdf manual in PDF format loaded on the first startup or on menu->help->manual
   this visually explains basic usage, mouse buttons functions & more..
-> ADD: click over image allows "save image" [60% done (activerect of type image)]
-> text selection in wordprocessor style (very hard, not impossible)
Enrico Ros's avatar
Enrico Ros committed
-> zoom: fit text (with configurable margin)
-> bookview: 3d opengl widget for viewing the document as a real book (turning pages, etc..)
-> wallet: use asynchronous interface (to prevent ui-blocking)
-> open gzipped (.pdf.gz?) files
-> restore a location from a given url (like http:/someurl?stringForViewport) (BR99240)
-> kspeech TTS interface. speech {document(missing) / page(missing) / selection(done)}
-> automatic online dictionaries / translators (BR80338)
-> core: pdf forms support (BR91809)
Enrico Ros's avatar
Enrico Ros committed
-> open dialog: switch to directory where the already opened (local) file is
81 82
-> evaluate wether to add find icon to the toolbar. poll/usab? (BR92620)
-> sidebar: evaluate wether to make the left toolbox auto-hiding (kicker like) (BR94495)
-> add OCR for building TextPages out of pure graphical (aka scanned) pages
-> rotate the whole document / individual pages (on screen/print?) (BR99352)
Enrico Ros's avatar
Enrico Ros committed
   Have a look at the fifth parameter of displayPage, it is the rotation, so it should not be THAT hard to implement
-> presentation: add page counter and a widget to manually set pages on the top bar
-> presentation: provide a pageX/totalPages indicator in addition to the circle one
-> presentation: implement missing transitions (6/11 done)
-> presentation: add a red pencil that creates ink annotations (author: i18n(author-presentation)))
-> presentation: save a flag (to the xml) to open a pdf in presentation mode
-> presentation: link following (now possible with uniform links) (BR98388)
-> presentation: wheel not visible on black. gradient appreciated on lighter backgrounds.
-> splash(xpdf): check lack of smoothness at low resolutions and antialiasing (BR94231)
-> kfile-plugins/pdf: provide internal support and rewrite that plugin (drops xpdf dependancy from kdegraphics) (by ktech)
Enrico Ros's avatar
Enrico Ros committed
-> goto 'logical' page (usually differs from pdf's page) (req. by Luca Burrelli)
-> use shortcuts for next and prev page even in presenatation mode (by Tobias Koenig)
-> move some document related features from part to the document (see find, goto dialog, ...)
-> Albert: Read pdf specification and see if paths with length = 1 are allowed, in case they are allowed see how to fix 97131 without skipping paths with length = 1
-> tools: ruler, measure: distance, perimeter, ?area?, color picker
-> export: all text in plain_text(fast)/html(hard) (BR91146)
101 102
-> export: export to other formats keeping formatting (PS is easy, we just have PSOutputDev that does it :-D. PNG is easy too)
-> export: extract images (have a look at and from xpdf (not in our xpdf sources))
-> history as a toolbox child (collecting Doc's viewport changes notifications)
104 105
-> take care of TODOs in code
-> cleanup code and update README.png

Enrico Ros's avatar
Enrico Ros committed
107 108 109 110 111 112
Icons needed:
- KPDF (ToolBAR): 1 continuous, 2 tied-pages, 3 Normal (not scroll only, it
    performs other ops), 4 Zoom, 5 Select, 6 Annotation/Review
- KPDF (Edit Tools): highlighter( transp base, we colorize it)
- COMMON (here in ToolBox): Toc, Annotations

Enrico Ros's avatar
Enrico Ros committed
Done (newest features come first):
Enrico Ros's avatar
Enrico Ros committed
-> ADD: add ebook-friendly alignment option, better layouting (BR100341)
115 116
-> FIX: random crash when closing kpdf with kapp->quit() (don't use Settings:: in destructors)
-> FIX: implement links for starting end exiting from presentation mode (pdf FullScreen, Close actions)
Enrico Ros's avatar
Enrico Ros committed
117 118
-> CHG: cursor wraps on screen for dragging the page/dynZooming
-> FIX: raised scaling performance by 10x times for typ usage, removed odd cases, speedups to viewScroll and dynZoom
119 120
-> ADD: annotations: complete xml storage/retrieval of internal annotations
-> CHG: page properties (bookmarks, annotations, ...) storage moved to Page class
-> ADD: sidebar: add shortcut for showing/hiding it (BR99316)
-> ADD: annotations: PDF1.6 reader (PDF's annotations -> our data structures)
-> ADD: Internal data structures for annotations handling.
-> FIX: rmb when no doc displayed to restore menu
-> ADD: Put fonts used by the document on the properties dialog
Enrico Ros's avatar
Enrico Ros committed
-> ADD: partial implementation of XYZ links
-> ADD: google-like search on thumbnails
-> ADD: use kde wallet for storing passwords of protected files
Enrico Ros's avatar
Enrico Ros committed
*> The branch 'kpdf_annotations' was created at this point. [2005-Feb-12]
-> FIX: trigger redraw on 'filter text' on current page (need new highligh engine first)
-> ADD: Obey DRM is now a configuration option
-> FIX: fixed viewport saving/restoring (+performance fix) on presentation mode
133 134 135 136 137
-> FIX: leakfix when closing document while thread was running (no more leaks now)
-> FIX: direct hi-performance pixels manipulation for highlighting (instead of the obsoleted setRasterOp)
-> CHG: new search api. supports multiple searches at once, multiple highlighs per page
-> ADD: pageView moves smoothly when searching / moving in history
-> ADD: better bookmark rendering in thumbnailslist (show 'clip overlay')
138 139
-> CHG: changes and cleanups in pageView's mouse handling functions
-> ADD: KTTSD simple support: speech selection using kspeech api via pure dcop (don't break compatibiltiy)
-> CHG: right click and drag while in 'normal' mode changes to 'selection' mode and selects
-> FIX: complete valgrind check and leakfix (2 leaks were present) [27-Jan-04]
-> ADD: history, forward/back history actions, history links and xml storage (10 steps)
143 144
-> ADD: rmb popup on thumbnailslist (the popup shared with pageView: same behavior)
-> ADD: display 'current page' / 'total pages' with analog indicator, active labels, etc
-> CHG: Presentation mode is now Ctrl+Shift+p instead of F9 because it was colliding with Konqueror's toggle sidebar
146 147
-> FIX: various in memory unallocator, preload with single pages, pageview
-> FIX: optimized pageView (removed 1 waster req on start, lowered reqs)
148 149 150
-> FIX: memory unloading order and hard swap avoiding
-> CHG: open and open-recent buttons unified in Shell
-> CHG: lens icon for the find-ahead messages
Enrico Ros's avatar
Enrico Ros committed
151 152 153
-> ADD: page preloading
-> FIX: smarter memory management / prioritize queries
-> ADD: type ahead search in pageview (type '/' then the word to search..) (JakubS)
154 155
-> FIX: scroll page if the the searched string is not visible
-> FIX: use a global Viewport over the document (linked views, real link following, location restoring, etc)
Tobias Koenig's avatar
Tobias Koenig committed
-> FIX: wrong zoom buttons order (BR74248) (check consistancy with kdvi/kviewshell/kghostview/.. (not konq))
157 158 159 160
-> ADD: presentation: cursor modes: hidden, visible, hidden with delay (Tobias)
-> ADD: presentation: default transition which is used when no transition is defined in document (Tobias)
-> ADD: presentation: support for automatic advance and loop on last page (Tobias)
-> ADD: presentation: add additional presentation page to settings dialog (Tobias)
161 162 163
-> CHG: presentation: the round wheel indicator can be clicked to change page
-> FIX: layout margins on pageView
-> ADD: restore the last active page when a file is opened again
-> ADD: Save bookmarks into a file so you they get recovered when opening the same file again (Albert)
Enrico Ros's avatar
Enrico Ros committed
165 166
-> FIX: searchline back to work
-> CHG: DocumentInfo is now a DomTree and the properties dialog is dynamically generated (Tobias)
-> ADD: Presentation transitions are loaded from the pdf files as well as fullscreen state (Tobias)
Enrico Ros's avatar
Enrico Ros committed
*> Merged on HEAD on 2005-01-02 (The branch is frozen, development continues here)
-> FIX: Fix my update cursor FIX :-D
170 171
-> ADD: Make kpdf aware of Find and GoToPage actions
-> FIX: Update cursor correctly when a link moves to a page and the cursor is over a link on that page
-> ADD: Asyncronous PDF Generator implementation (for the user: faster UI, preloading, etc..)
Enrico Ros's avatar
Enrico Ros committed
-> FIX: Memory manager (free cache if needed, avoid disk swap and oom)
-> ADD: Presentation View (only the 'glitter' transition implemented for now)
-> FIX: FixPack1 [dyn_zoom repaints, initial panel width, zoom_lineedit focus proxy, searchwidget refactor{thumbs restoring on clear, buttons size, less code}, hilight bookmarked thumbnails]
Albert Astals Cid's avatar
Albert Astals Cid committed
-> FIX: Some fullScreen loving, if we are on fullscreen put an action on RMB menu ti get out of it, if we were on fullScreen mode on exit bring back correctly if we were also seeing toolbar or menubar
Enrico Ros's avatar
Enrico Ros committed
-> FIX: When in non continuous mode and scrolling up a page, set the viewport at the bottom of the page (Albert)
-> ADD: Show the window maximized when the user opens the program for the very first time (Albert)
-> ADD: Use 'Generators' as providers for contents generation
Albert Astals Cid's avatar
Albert Astals Cid committed
-> ADD: Add properties dialog (Albert)
-> ADD: Support for show/hide menubar in rmb menu, different from HEAD so that supports Konqueror too (Albert)
Albert Astals Cid's avatar
Albert Astals Cid committed
-> ADD: Watch File option (Albert)
Albert Astals Cid's avatar
Albert Astals Cid committed
-> ADD: import Marco Martin's "another kpdf icon" (kde-look: 16146) (Albert)
184 185
-> ADD: dynamic zoom with mid mouse button (click and drag up-down to zoom in-out)
-> FIX: merge select text & select gfx, two sections on the same pop-up menu
Enrico Ros's avatar
Enrico Ros committed
-> ADD: reading aids (inverted display, recolor, black/white, draw link border, draw image border)
-> FIX: zoom preserved when switching modes and flickerless drawing
Albert Astals Cid's avatar
Albert Astals Cid committed
188 189
-> ADD: Printing as PS instead of as image (Albert)
-> ADD: Remember page on session logout and put the document in it on session restore (Albert)
190 191 192
-> ADD: gfx capturing tool
-> ADD: composited renderer framework (in addition to a fast light one)
-> FIX: pageview repaint done internally (speed boost and reduced memory consumption)
-> ADD: KConfigXT settings framework and Accessibility config (acc. code mostly not done)
-> FIX: workaround for scrollview bug 1/2 (painting hidden widgets under certain circumstances)
Enrico Ros's avatar
Enrico Ros committed
-> ADD: zoom into a rect defined by mouse (aka zoom to window)
-> FIX: sheet rotation in landscape case
-> ADD: Some dcop functions (goToPage, openDocument and give # of pages) (Albert)
-> MRG: link following ('actionMovie' kind is missing)
199 200 201 202
-> ADD: text selection (rectangular blocks) in selection mode
-> ADD: autoscroll page with Shift+Up/Dn keys (exact konqueror's behavior)
-> CHG: remake single page mode
-> FIX: zoom buttons in sync with text
Enrico Ros's avatar
Enrico Ros committed
-> ADD: continuous mode
204 205
-> ADD: multiple pages per view (gui selects 1 or 2 ppv)
-> MRG: the option to open password protected files (from head)
-> MRG: the Table Of Contents (from head)
207 208 209 210 211 212 213 214 215 216 217 218 219 220
-> ADD: a 'search bar' with prune-as-you-type feature
-> MRG: Albert's search ported and implemented case sensitive
-> CHG: smart handling of pixmap using an Observer ID (thumbnails are gone, only pixmaps now)
-> FIX: some toolbar/menu changes
-> ADD: outline bottom and right edges (of pages)
-> FIX: centering pages in the view
-> FIX: kpdf output at 100% has exactly the same size as acroread now
-> CHG: qsplitter layouting
-> FIX: zooming works as expected (and added 'fit to page' too)
-> ADD: new go to page dialog
-> GHG: previews sorted by visible areas (prioritize items where the scrollbar is)
-> FIX: previews speedup: 50-100%
-> CHG: use local instead of X memory for thumbnails (..)
-> MRG: merge lots of kpdf_part and part (centralview) code (to simplify/clenup)
Enrico Ros's avatar
Enrico Ros committed
*> The branch 'kpdf_experiments' was created at this point. Code refactoring started.
222 223
-> ADD: Completely use xpdf code for rendering that solves most font problems (Albert)
-> MRG: Replace xpdf version with lastest one (3.00) that supports PDF 1.5 (Albert)
-> newest added features are at the top of the list