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