]> git.donarmstrong.com Git - xournal.git/blob - src/TODO
9536063b7fe0b1d3be1335f7001b428e901ea473
[xournal.git] / src / TODO
1 List of features to be implemented (not in any particular order)
2 ----------------------------------------------------------------
3
4 - collaborative editing (see discussion with Erik Demaine)
5 - porting to MacOS; merge Nokia port
6 - multiple-scenario undo history
7
8 - collaborative: allow non-x86 endianness (for ints, for floats?)
9 - collaborative: have an initial undo item = contents of the initial
10   xoj file + attachments for bitmap, pdf, and ps backgrounds
11
12 - cleanup of undo history (keep track of refcounts, delete old undo)
13   save-and-clear-undo ?
14
15 - RandR / recalibration awareness? - NOT NEEDED ANYMORE?
16   (e.g. if xinput events are far away from core events, re-query geometry?)
17    or see if removing the GTK bugfix would help? -- e.g. by recalling an
18    internal gtk init function?
19   Also allow for SIGUSR1 to recalibrate (so rotate scripts could pkill
20   xournal). (cf #2944459). Recalibration probably requires talking directly 
21   to X server to query input device geometry and compensate for GTK.
22
23 TODO WITH IMAGE PATCH:
24 TODO: paste and selresize don't put rectangle at top
25 TODO: option for image mode to revert to previous tool
26
27 BUGS:
28 - lingering issues with synaptics touchpads? (#2872667)
29  (todo) - set device to Absolute mode at startup? (GDK doesn't expose API,
30           cf XSetDeviceMode() in /usr/include/X11/extensions/XInput.h)
31 - color picker into canvas doesn't work in GTK+ 2.16 (should disable
32    xinput first?)
33 - export to PDF should see cropbox size if smaller, and map the
34    cropbox -- not the entire page -- to the page area! (2009-11-18 forum)
35
36 BEHAVIOR TODO:
37 - option to have "Save Prefs" save current brushes as settings, not defaults
38 - method to map more general devices to specific tools or to Ignore
39   (e.g.: X220T ignore trackpoint; map touchscreen to Hand, eraser to Eraser)
40
41 WIN32:
42 - test further
43 - write an installer
44 - bug: opening files with accents in name?
45 - bug: cairo-scaled-font in printing? (2009-11-18 bug tracker)
46 - bug: printf() sometimes generates stroke coordinates 1.#J -1.#J  (???)
47      (filter out inf, -inf, nan, very large values when saving ???)
48
49 PATCHES TO INCORPORATE:
50
51 - ezyang e-mail of 11/28/2011: patches in Ubuntu to fix PDF showing up?
52 http://archive.ubuntu.com/ubuntu/pool/universe/x/xournal/xournal_0.4.5-3.debian.tar.gz
53 actually not necessary anymore? (ezyang 12/2/2011)
54
55 - tauu e-mail of 12/1/2011: 8 small patches for win32, uploaded on tracker
56 https://sourceforge.net/tracker/index.php?func=detail&aid=3447356&group_id=163434&atid=827735
57
58 - patch: add Alt-Up/Dn accelerators for show/hide layer. See
59   show_hide_layer.patch
60
61 * my own patch noresize_background_v1.patch  (also in xournal-working/)
62
63 ** patch: ortho/snap (revised Apr 13 2009)
64    xournal_ortho_snap_patch_4 (by Josef Pavlicek)
65
66 ** patch (Ian-Woo Kim): multicolumn mode + LASSO SELECTION
67    xournal_lasso_multipage_zoom_button_20090620.patch
68
69 ** autosave patch (Edward Yang) (should fix: optional only, w/ menu + cfgfile
70    entries; fix: should clean up autosave.xoj.bg* files too; config interval)
71    0001-Implement-autosave-for-documents-revised.patch (2 seconds after
72    modification, vs original 5 seconds)
73    *** NEW VERSION: #2881919 (autosave for 0.4.5, w/ some changes)
74    NB: last modif should be triggered by prepare_new_undo() and undo/redo?
75    *** NEW VERSION: with threading, by Man, e-mail 12/10/2009 10:51pm
76
77 ** insert images patch (Victor Saase) #2890925
78 ** as improved by Simon Guest April 14 2010
79 ** modified rev2 May 14, 2010: xournal-0.4.5-sjg-image-rev2.patch.gz 
80 ** rev6 by now...
81
82 ** customize paper ruling (Gautam Iyer e-mail Nov 30 2009 / SF tracker)
83
84 ** cairo export to PNG (Man = Paulo Neves, e-mail Feb 3 '10, saved as
85   cairo-png-rendering.diff.txt (refactor printing of page to cairo surface
86   with the gtk-print code).
87
88 - patch by S. Guest
89   shortcut to increase/decrease text font size by 1 point (?) - acts just
90   as if one had clicked font sel box and resized (affects sel text + cur font)
91
92 - make line spacing in text objects customizable: to a fixed scaling factor,
93   a fixed number of units, or the paper ruling (esp. the latter!!)
94
95 - page size dialog box should have a check button to keep background size
96   the same (so rescaling creates margin around bitmap or PDF background).
97   This will need an extension to the file format, to allow a page background
98   to have a different size from the page itself.
99
100 - option to map device named "touch" to hand tool? (like "Eraser tip")
101
102
103 - roadmap towards SVG support: see 1/25/2010 Mark Edgington email & reply
104   (1) export to SVG (using pages and groups for pages and layers; 
105   use comment tags to make export nonlossy;
106   (2) import from this subset of SVG;
107   (3) add SVG to the file-open and save formats
108
109 - roadmap towards PDF encapsulation: see 1/29/2010 forum posts
110   When exporting to PDF, don't just append our annotations as PDF code but
111   also include the .xoj file within the pdf, and ensure the initial pdf is
112   well-delimited from the rest. When opening a PDF that includes such
113   markings, discard the annotation part of the PDF and open the embedded xoj
114   instead. Later, offer such PDF as a file-open and save format (even when
115   there's no PDF background being annotated!!).
116
117 *** should have Open, Save, Save As manipulate at least 3 formats:
118   - XOJ
119   - PDF with embedded xoj file in an object (opens with annot. in PDF viewer,
120     with background only + separate xoj in xournal)
121   - SVG (subset only)
122   additionally, should have "print to": printer, PDF, SVG, bitmap.
123
124 - allow djvu and other backgrounds (but then can't export to PDF)
125
126 - PDF bg memory usage throttling / delete oldest pdf backgrounds
127 - replace ttsubset by something more modern? (eg. from cairo ?)
128 - auto-hide patch from ~/prog/src/xournal-autohide/ ?
129      (check for cpu usage; handle BOTH edges
130       and only (un)hide stuff at the correct edge!)
131 ** UI update (Bob McElrath) -- eliminating status bar, compact layout,
132    "compact interface" by default; themes, with line in config file
133    to load pixmaps from pixmaps/$THEME/ (see Jan 9, 2009 emails)
134 - horizontal mode instead of dual-view / multicolumn ?
135 ** "new page before/after" on a PDF bg page should ask: same page, other page of
136   PDF file, default paper
137 ** should also have in Journal -> Paper style the option "Pdf page ..."
138   which then lets us change the page number.
139 - new recognizer icon (andruk on patches tracker)
140 - recognizer: if variable-width, associate average width
141 - recognizer should snap to existing recognized geometric shapes
142 - patch to find text in PDF (dmg = Daniel German, Nov 13 2009)
143
144 - search through text (xoj and PDF background) (with highlight? forwd/backwd)
145   (see evince). Also: ability to select rectangle on PDF bg and copy-paste
146   as bitmap or as text.
147
148 - improve recognizer: two passes for polygons (low tolerance, then higher)
149   to better detect elongated rectangles? (if low tolerance recognizer
150   doesn't get a rectangle, then use higher tolerance for everything else,
151   since otherwise there's too much risk of splitting a segment into 2)
152 - snap-to-grid (also for ruler & recognizer vertices)
153   and maybe also snap-to-vertices (option for ruler and recognizer)?
154 - config option: config save current tool options instead of default ones
155
156 - bug in truetype subset generation w/ Adobe 9, see if gtk-print any better?
157
158 - drag-and-drop, copy-paste text & images directly into xournal
159 - proximity detection: eraser proximity switches mapping? 
160   proximity out removes cursor until next motionnotify?
161
162 - render page to bitmap: for export, preview, and copy-paste
163     (render using libart, see how gnomecanvas does it?)
164     NO: render using Cairo !!!
165     (copy-paste: config option to render only current layer or all below?)
166 - cut-and-paste of selection into other apps (as bitmap; as SVG?)
167
168 - navigation sidebar with bitmap page previews
169 - bitmap preview for document icon in desktop environments?
170 - "organizer" side panel (hierarchy of notes), cf. gjots
171 - maintain e-library: table of md5sums of pdfs with associations
172   to the corresponding xoj's absolute paths (cf. forum topic
173   "Use MD5..." of Dec 2009)
174
175 - see iRex code for generic viewer + PDF plugin including caching,
176   throttling etc. (Marcel Hendrickx email of Sep 11 '09) 
177
178 - allow toolbar to go vertical
179 - toolbar buttons should react to button 2/3 click to modify settings
180   for that tool!!
181
182 - paste text directly into xournal, from xournal?
183     (instead of starting a text item and pasting into/from it)
184 - insert links (to URLs; within document/to other xoj? hand mode navigates)
185 - a command + keyboard shortcut to switch mappings (1<->2, 1<->3, 2<->3)
186      (A. Rechnitzer Sept 11, 2007)
187 - modify encoding of TrueType font subsets or provide cmap so pdf text
188   can be extracted
189
190 - smoothing of strokes (for users without tablets / with deficient drivers)
191 - lasso tool
192 - add config option to limit total memory usage for PDF bitmaps
193 - ability to select entire page for copy-paste (as bitmap / reorder xournal)
194 - copy/paste of an entire page (beware if PDF bg is not compatible!)
195
196 - convert to/from Jarnal format; to/from MS Journal format???
197 - export as SVG, as bitmap (use Cairo for this)
198 - improved PDF viewer features (search text, hyperlink, page borders...)
199    (using full poppler api ?)
200 - search text: among PDF background (using poppler); among text annotations
201
202 - use system paper size as default (/etc/papersize)
203 - sticky notes (anchor visually text box to a bg location)
204 - use relative paths for bg documents (e.g. annotated PDF)
205 - flush display queue when drawing over a slow X server?
206 - more paper customization (in particular, 1/2 inch graph paper)
207     (2 custom papers with settings in config file? 
208      a folder with blank PDF or xoj papers and quick-access?)
209     (also: engineering paper; isometric paper -- Dan Ott  Sep 4 '09)
210 - option to map a button to a context menu (incl. tool selection, ...)
211 - option to map a button to "undo"
212 - xournal_page-shadow.diff (Martin Kiefel Feb 5 2007)
213 - xoj2pdf on command line
214 - 'insert blank page after' command (more useful in PDF annot !)
215 - load images as bg if given on command-line (as with PDF on commandline)
216 - lasso selection tool (see shoffsta patch)
217      (http://shoffsta.afraid.org/Projects/Xournal/)
218 - flatten (incl undo/redo...) - enabled only if nlayers>1
219 - color chooser (papercolor, pen color); have default colors and a history
220   appear as palette in there!
221 - printing: print-options, save printer settings (throughout a session,
222    and on disk) (maybe a separate config file .xournal/gnome-print-settings)
223 - help index
224 - option for highlighter to be always at bottom of its layer
225 - more pen/highlighter shapes (chisel)
226 - slanted tip pens (calligraphy)
227 - toolbar buttons to access custom preset tools (e.g. text or pen with settings)
228 - text boxes with opaque background
229 - recalibration upon screen resize / compensation for miscalibration
230     (use ConfigureNotify event and XInput? cf "Bugs" tracker 08/2007)
231 - find a better behavior for vertical space tool across page boundaries ?
232    config options? 1) when there's not enough space at bottom of page:
233                        - resize the page
234                        - move stuff to next page
235                        - move stuff to a new page
236                    2) when moving to another page:
237                        - move everything
238                        - move only what doesn't fit (??? looks hard)
239    option for vert space tool to also move the background??
240    (PDF: cut-and-crop by running PDF code twice with 2 different clipboxes?)
241 - option to save all annotated files within the .xoj
242 - non-antialiased version for handhelds
243 - customize autogenerated save file names 
244 - layer dialog box to set visibility status of each layer regardless of
245   which layer is being edited
246 - option to link layer creation and visibility status for all pages
247   (Eric Borghs 04/15/08)
248 - display corruption on scroll down when bottom of window is obscured??
249   (probably a gnomecanvas or X bug -- expose event generated for wrong
250   region, or not processed?)
251 - autosave at a regular interval in a given location
252 - keep only a few pages of a PDF file in memory at any given time; generate
253   pages by parsing pdf info rather than generating bitmaps for all of them.
254 - win32 port (Matteo Abrate)
255 - snap-to-grid tool? (Matteo Abrate)
256 - EPOS 7/24/07: Thumbnails pane
257 - EPOS: Connect to EPOS api which sends A4 mapped points
258 - EPOS: Cut and Paste into OpenOffice applications and the GIMP (as bitmap??)
259 - EPOS: Export pages to pictures in the Jpg and Png formats.
260 - EPOS: Rotate Ink in custom angle.
261 - handwriting recognition???? (cellwriter?) unlikely. we don't have grids
262   see galileon comment on 2008-07-29 to tracker #1925309: word recognizer
263 - handwritten stroke search in document (see cellwriter?)
264   (correlate inertia-normalized strokes in lift to unit cotangent bundle?)
265 - option: export to PDF with incremental pages for successive layers
266     (for presentations) (Daniel Brugarth 8/18/07)
267 - Samuel Hoffstaetter: lasso, gettext localization, sidebar thumbnails, ...
268 - YoYo Siska patch for desktop mode ??
269 - Vivek Ayer: rotate paper wrt screen (for environments where display
270   rotation doesn't work): gnome_canvas_item_affine_relative(canvas->root, ...)
271   would rotate all but text items (still need to modify scroll bbox, and
272   adjust event coordinates by inverse rotation).
273 - rotate PDF background pages (individually wrt each other, see #2099935)
274 - switch to libglade, and allow customization of key shortcuts (accels)
275
276 - command to copy a selected shape to a keybinding that will paste it
277   (so one can define symbols to insert into typed notes)  (e.g. "be able
278   to bind Ctrl-B to draw a \beta" for class notes). (shape, binding) sets are
279   local to one session (different for different classes; but save them into
280   the xoj file maybe ?) [Felix Giannelia 09/29/2009]