]> git.donarmstrong.com Git - xournal.git/blob - src/TODO
Release 0.4.5
[xournal.git] / src / TODO
1 List of features to be implemented (not in any particular order)
2 ----------------------------------------------------------------
3
4 THINGS DONE IN THIS RELEASE:
5
6 DONE: fix GTK+ 2.16/2.17 XInput issues with scrollbars and menus
7 DONE: fix bug 2826845 (shape recognizer accel doesn't work in fullscreen mode)
8 DONE: bug affecting resize zone in statusbar
9 DONE: page spinbutton wide enough for 3 digits; avoid "deprecated" warning
10 DONE: edit->paste command should refresh toolbar to unselect color/thickness
11       (so can repaint sel)
12 DONE: cursor doesn't reset properly after selection operation if primary
13       tool is select mode (stays with arrow cursor instead of pointer)
14 DONE: device with "eraser" at the end of its name is of type ERASER
15       (Edward Yang)
16 DONE: fix_xinput_coords() replaces buggy xinput events by core pointer 
17       coordinates
18 DONE: use poppler to render PDF backgrounds (after patches contributed
19       by Mike Ter Louw and Bob McElrath)
20 DONE: gettext internationalization (contributed by David Planella)
21 DONE: Catalan translation (by David Planella); French translation
22 DONE: fix unresponsiveness to button events in text edition box (GTK+ 2.17)
23       and segfaults when dragging text or using Layers combobox (GTK+ 2.17)
24 DONE: Esc leaves text box if editing; and leaves fullscreen mode
25 DONE: package our own copy of the ttsubset library (to remove a dependency
26       on libgnomeprint), and create TT subfonts in memory
27 DONE: use gtk-print instead of libgnomeprint
28 DONE: remove deprecated "antialias bg" option
29 DONE: fix fix_xinput_coords so it works ok without ENABLE_XINPUT_BUGFIX ?
30 DONE: disable ctrl-left/right accelerators during text edition
31 DONE: custom color chooser button (after a patch contributed by Alex Ray)
32 DONE: remember last used directory (after a patch contributed by Lu Zhihe)
33 DONE: discard Alt-click and Control-click events
34 DONE: option to have buttons *toggle* the tool rather than act as tool
35        (ie button 2 causes button 1 to map to tool 2) [Dylan Thurston]
36 DONE: patch to fix focus + allow up/dn in single page mode (Bob McElrath)
37 DONE: patch to fix underscores in MRU filename display (Bob McElrath)
38 DONE: patch to avoid tiny file dialogs (Bob McElrath)
39 DONE: further fixes for focus; can Esc out of page selection box
40 DONE: further fixes for xinput under GTK+ 2.17
41 DONE: option to auto-load *.pdf.xoj instead of *.pdf (Bob McElrath)
42 DONE: look for PDF backgrounds in path of xoj file before prompting user
43 DONE: paper color chooser (after a patch by ojb)
44 DONE: remove "Discard core events" from options menu
45 DONE: get_pressure_multiplier() accesses correct members of event union
46 DONE: address recognizer bug on single-segment strokes (division by 0)
47 DONE: remove binary installer (poppler is binary incompatible across versions)
48       but provide configure script
49
50 REMAINING THINGS TO DO:
51
52 - collaborative editing (see discussion with Erik Demaine)
53 - porting to Win32 and MacOS; merge Nokia port
54 - multiple-scenario undo history
55
56 - collaborative: allow non-x86 endianness (for ints, for floats?)
57 - collaborative: have an initial undo item = contents of the initial
58   xoj file + attachments for bitmap, pdf, and ps backgrounds
59
60 - cleanup of undo history (keep track of refcounts, delete old undo)
61   save-and-clear-undo ?
62
63 - RandR / recalibration awareness?
64   (e.g. if xinput events are far away from core events, re-query geometry?)
65    or see if removing the GTK bugfix would help? -- e.g. by recalling an
66    internal gtk init function?
67
68
69 ** patch: ortho/snap (revised Apr 13 2009)
70    xournal_ortho_snap_patch_4 (by Josef Pavlicek)
71
72 ** patch (Ian-Woo Kim): multicolumn mode + LASSO SELECTION
73    xournal_lasso_multipage_zoom_button_20090620.patch
74
75 ** autosave patch (Edward Yang) (fix: optional only, w/ menu + cfgfile
76    entries; fix: should clean up autosave.xoj.bg* files too; config interval)
77    0001-Implement-autosave-for-documents-revised.patch (2 seconds after
78    modification, vs original 5 seconds)
79
80 - PDF bg memory usage throttling / delete oldest pdf backgrounds
81 - replace ttsubset by something more modern? (eg. from cairo ?)
82 - auto-hide patch from ~/prog/src/xournal-autohide/ ?
83      (check for cpu usage; handle BOTH edges
84       and only (un)hide stuff at the correct edge!)
85 ** UI update (Bob McElrath) -- eliminating status bar, compact layout,
86    "compact interface" by default; themes, with line in config file
87    to load pixmaps from pixmaps/$THEME/ (see Jan 9, 2009 emails)
88 - horizontal mode instead of dual-view / multicolumn ?
89 ** "new page before/after" on a PDF bg page should ask: same page, other page of
90   PDF file, default paper
91 - new recognizer icon (andruk on patches tracker)
92 - recognizer: if variable-width, associate average width
93 - recognizer should snap to existing recognized geometric shapes
94
95 - improve recognizer: two passes for polygons (low tolerance, then higher)
96   to better detect elongated rectangles? (if low tolerance recognizer
97   doesn't get a rectangle, then use higher tolerance for everything else,
98   since otherwise there's too much risk of splitting a segment into 2)
99 - snap-to-grid (also for ruler & recognizer vertices)
100   and maybe also snap-to-vertices (option for ruler and recognizer)?
101 - config option: config save current tool options instead of default ones
102
103 - bug in truetype subset generation w/ Adobe 9, see if gtk-print any better?
104
105 - drag-and-drop, copy-paste text & images directly into xournal
106 - proximity detection: eraser proximity switches mapping? 
107   proximity out removes cursor until next motionnotify?
108
109 - render page to bitmap: for export, preview, and copy-paste
110     (render using libart, see how gnomecanvas does it?)
111     NO: render using Cairo !!! then can switch to GtkPrint as well.
112     (copy-paste: config option to render only current layer or all below?)
113 - cut-and-paste of selection into other apps (as bitmap; as SVG?)
114 - navigation sidebar with bitmap page previews
115 - bitmap preview for document icon in desktop environments?
116 - "organizer" side panel (hierarchy of notes), cf. gjots
117 - see iRex code for generic viewer + PDF plugin including caching,
118   throttling etc. (Marcel Hendrickx email of Sep 11 '09) 
119
120 - allow toolbar to go vertical
121 - toolbar buttons should react to button 2/3 click to modify settings
122   for that tool?
123
124 - paste text directly into xournal, from xournal?
125     (instead of starting a text item and pasting into/from it)
126 - insert links (to URLs; within document/to other xoj? hand mode navigates)
127 - increase width of spinPageNo to fit 3 digits
128 - should escape '_' to '__' in MRU menu entries (else become mnemonics)
129 - a command + keyboard shortcut to switch mappings (1<->2, 1<->3, 2<->3)
130      (A. Rechnitzer Sept 11, 2007)
131 - modify encoding of TrueType font subsets or provide cmap so pdf text
132   can be extracted
133
134 - smoothing of strokes (for users without tablets / with deficient drivers)
135 - lasso tool
136 - add config option to limit total memory usage for PDF bitmaps
137 - ability to select entire page for copy-paste (as bitmap / reorder xournal)
138 - copy/paste of an entire page (beware if PDF bg is not compatible!)
139 - rewrite printing using GtkPrint + Cairo as GnomePrint replacement
140    (keep GnomePrint option for compatibility with GTK+ <2.10)
141 - insert images (screen capture or from file or from clipboard), 
142   not as full-page backgrounds (new ITEM type)
143
144 - convert to/from Jarnal format; to/from MS Journal format???
145 - export as SVG, as bitmap (use Cairo for this)
146 - improved PDF viewer features (search text, hyperlink, page borders...)
147    (using full poppler api ?)
148
149 - use system paper size as default (/etc/papersize)
150 - autoload *.pdf.xoj if present when opening *.pdf ???
151 - sticky notes (anchor visually text box to a bg location)
152 - use relative paths for bg documents (e.g. annotated PDF)
153 - flush display queue when drawing over a slow X server?
154 - more paper customization (in particular, 1/2 inch graph paper)
155     (2 custom papers with settings in config file? 
156      a folder with blank PDF or xoj papers and quick-access?)
157     (also: engineering paper; isometric paper -- Dan Ott  Sep 4 '09)
158 - option to map a button to a context menu (incl. tool selection, ...)
159 - option to map a button to "undo"
160 - xournal_page-shadow.diff (Martin Kiefel Feb 5 2007)
161 - xoj2pdf on command line
162 - 'insert blank page after' command (more useful in PDF annot !)
163 - load images as bg if given on command-line (as with PDF on commandline)
164 - lasso selection tool (see shoffsta patch)
165      (http://shoffsta.afraid.org/Projects/Xournal/)
166 - flatten (incl undo/redo...) - enabled only if nlayers>1
167 - color chooser (papercolor, pen color); maybe more default colors
168   cf. ojb patch #2083103 adds paper color chooser
169 - printing: print-options, save printer settings (throughout a session,
170    and on disk) (maybe a separate config file .xournal/gnome-print-settings)
171 - help index
172 - option for highlighter to be always at bottom of its layer
173 - more pen/highlighter shapes (chisel)
174 - slanted tip pens (calligraphy)
175 - toolbar buttons to access custom preset tools (e.g. text or pen with settings)
176 - text boxes with opaque background
177 - recalibration upon screen resize / compensation for miscalibration
178     (use ConfigureNotify event and XInput? cf "Bugs" tracker 08/2007)
179 - find a better behavior for vertical space tool across page boundaries ?
180    config options? 1) when there's not enough space at bottom of page:
181                        - resize the page
182                        - move stuff to next page
183                        - move stuff to a new page
184                    2) when moving to another page:
185                        - move everything
186                        - move only what doesn't fit (??? looks hard)
187    option for vert space tool to also move the background??
188    (PDF: cut-and-crop by running PDF code twice with 2 different clipboxes?)
189 - option to save all annotated files within the .xoj
190 - non-antialiased version for handhelds
191 - customize autogenerated save file names 
192 - layer dialog box to set visibility status of each layer regardless of
193   which layer is being edited
194 - option to link layer creation and visibility status for all pages
195   (Eric Borghs 04/15/08)
196 - display corruption on scroll down when bottom of window is obscured??
197   (probably a gnomecanvas or X bug -- expose event generated for wrong
198   region, or not processed?)
199 - autosave at a regular interval in a given location
200 - keep only a few pages of a PDF file in memory at any given time; generate
201   pages by parsing pdf info rather than generating bitmaps for all of them.
202 - win32 port (Matteo Abrate)
203 - snap-to-grid tool? (Matteo Abrate)
204 - EPOS 7/24/07: Thumbnails pane
205 - EPOS: Connect to EPOS api which sends A4 mapped points
206 - EPOS: Cut and Paste into OpenOffice applications and the GIMP (as bitmap??)
207 - EPOS: Export pages to pictures in the Jpg and Png formats.
208 - EPOS: Rotate Ink in custom angle.
209 - handwriting recognition???? (cellwriter?) unlikely. we don't have grids
210   see galileon comment on 2008-07-29 to tracker #1925309: word recognizer
211 - handwritten stroke search in document (see cellwriter?)
212   (correlate inertia-normalized strokes in lift to unit cotangent bundle?)
213 - option: export to PDF with incremental pages for successive layers
214     (for presentations) (Daniel Brugarth 8/18/07)
215 - Samuel Hoffstaetter: lasso, gettext localization, sidebar thumbnails, ...
216 - YoYo Siska patch for desktop mode ??
217 - Vivek Ayer: rotate paper wrt screen (for environments where display
218   rotation doesn't work): gnome_canvas_item_affine_relative(canvas->root, ...)
219   would rotate all but text items (still need to modify scroll bbox, and
220   adjust event coordinates by inverse rotation).
221 - rotate PDF background pages (individually wrt each other, see #2099935)
222 - switch to libglade, and allow customization of key shortcuts (accels)
223
224 - command to copy a selected shape to a keybinding that will paste it
225   (so one can define symbols to insert into typed notes)  (e.g. "be able
226   to bind Ctrl-B to draw a \beta" for class notes). (shape, binding) sets are
227   local to one session (different for different classes; but save them into
228   the xoj file maybe ?) [Felix Giannelia 09/29/2009]