List of features to be implemented (not in any particular order) ---------------------------------------------------------------- - collaborative editing (see discussion with Erik Demaine) - porting to Win32 and MacOS; merge Nokia port - multiple-scenario undo history - collaborative: allow non-x86 endianness (for ints, for floats?) - collaborative: have an initial undo item = contents of the initial xoj file + attachments for bitmap, pdf, and ps backgrounds - cleanup of undo history (keep track of refcounts, delete old undo) save-and-clear-undo ? - RandR / recalibration awareness? (e.g. if xinput events are far away from core events, re-query geometry?) or see if removing the GTK bugfix would help? -- e.g. by recalling an internal gtk init function? DONE: fix GTK+ 2.16/2.17 XInput issues with scrollbars and menus DONE: fix bug 2826845 (shape recognizer accel doesn't work in fullscreen mode) DONE: bug affecting resize zone in statusbar DONE: page spinbutton wide enough for 3 digits; avoid "deprecated" warning DONE: edit->paste command should refresh toolbar to unselect color/thickness (so can repaint sel) DONE: cursor doesn't reset properly after selection operation if primary tool is select mode (stays with arrow cursor instead of pointer) DONE: device with "eraser" at the end of its name is of type ERASER (Edward Yang) DONE: fix_xinput_coords() replaces buggy xinput events by core pointer coordinates DONE: use poppler to render PDF backgrounds (after patches contributed by Mike Ter Louw and Bob McElrath) DONE: gettext internationalization (contributed by David Planella) DONE: Catalan translation (by David Planella); French translation DONE: fix unresponsiveness to button events in text edition box (GTK+ 2.17) and segfaults when dragging text or using Layers combobox (GTK+ 2.17) DONE: Esc leaves text box if editing; and leaves fullscreen mode DONE: package our own copy of the ttsubset library (to remove a dependency on libgnomeprint), and create TT subfonts in memory DONE: use gtk-print instead of libgnomeprint DONE: remove deprecated "antialias bg" option DONE: fix fix_xinput_coords so it works ok without ENABLE_XINPUT_BUGFIX ? DONE: disable ctrl-left/right accelerators during text edition DONE: custom color chooser button (after a patch contributed by Alex Ray) DONE: remember last used directory (after a patch contributed by Lu Zhihe) DONE: discard Alt-click and Control-click events DONE: option to have buttons *toggle* the tool rather than act as tool (ie button 2 causes button 1 to map to tool 2) [Dylan Thurston] DONE: patch to fix focus + allow up/dn in single page mode (Bob McElrath) also comment out contents of reset_focus() ? (tracker patch #2494022) DONE: patch to fix underscores in MRU filename display (Bob McElrath) DONE: patch to avoid tiny file dialogs (Bob McElrath) (go through Patches tracker and take the good stuff... now at 2009-05-09) - paper color chooser (see tracker 2083103) - prerelease: update help file (remove references to pdftoppm/libgnomeprint & update to poppler/gtkprint) - REMOVE BINARY INSTALLER (poppler breaks ABI all the time) but add a configure script (+ Makefile.in, etc ?) - document config options into manual file? - PDF bg memory usage throttling / delete oldest pdf backgrounds - replace ttsubset by something more modern? (eg. from cairo ?) - auto-hide patch from ~/prog/src/xournal-autohide/ ? (check for cpu usage; handle BOTH edges and only (un)hide stuff at the correct edge!) ** remove reset_focus() and calls to it, after enough testing. check if we should call reset_recognizer() in some of those places (e.g., undo/redo?) ** if bg pdf not found in absolute path, look in path of xoj file before prompting user. ** UI update (Bob McElrath) -- eliminating status bar, compact layout, "compact interface" by default; themes, with line in config file to load pixmaps from pixmaps/$THEME/ (see Jan 9, 2009 emails) ** autosave patch (Edward Yang) (fix: optional only, w/ menu + cfgfile entries; fix: should clean up autosave.xoj.bg* files too; config interval) - horizontal mode instead of dual-view / multicolumn ? - patch (ikim@physics.wisc.edu): multicolumn mode + LASSO SELECTION - patch: ortho/snap (revised Apr 13 2009) ** FIXME: get_pressure_multiplier() should access correct members of event struct, like xinput_coords() ** FIX RECOGNIZER BUG: for single-segment strokes (e.g. single click), I_xx and I_yy = 0, sometimes -0 -> Rad = nan (should I_xx = abs(...) ?) also Det = division by 0, should return 0 if ixx + iyy = 0. (MAYBE: fix inertia calc: integrate dm over each segment rather than dm.pt[i]) - new recognizer icon (andruk on patches tracker) - recognizer: if variable-width, associate average width - recognizer should snap to existing recognized geometric shapes - improve recognizer: two passes for polygons (low tolerance, then higher) to better detect elongated rectangles? (if low tolerance recognizer doesn't get a rectangle, then use higher tolerance for everything else, since otherwise there's too much risk of splitting a segment into 2) - snap-to-grid (also for ruler & recognizer vertices) and maybe also snap-to-vertices (option for ruler and recognizer)? - config option: config save current tool options instead of default ones - "new page before/after" on a PDF bg page should ask: same page, other page of PDF file, default paper - bug in truetype subset generation w/ Adobe 9, see if gtk-print any better? - drag-and-drop, copy-paste text & images directly into xournal - proximity detection: eraser proximity switches mapping? proximity out removes cursor until next motionnotify? - render page to bitmap: for export, preview, and copy-paste (render using libart, see how gnomecanvas does it?) NO: render using Cairo !!! then can switch to GtkPrint as well. (copy-paste: config option to render only current layer or all below?) - cut-and-paste of selection into other apps (as bitmap; as SVG?) - navigation sidebar with bitmap page previews - bitmap preview for document icon in desktop environments? - "organizer" side panel (hierarchy of notes), cf. gjots - see iRex code for generic viewer + PDF plugin including caching, throttling etc. (Marcel Hendrickx email of Sep 11 '09) - allow toolbar to go vertical - toolbar buttons should react to button 2/3 click to modify settings for that tool? - paste text directly into xournal, from xournal? (instead of starting a text item and pasting into/from it) - insert links (to URLs; within document/to other xoj? hand mode navigates) - increase width of spinPageNo to fit 3 digits - should escape '_' to '__' in MRU menu entries (else become mnemonics) - a command + keyboard shortcut to switch mappings (1<->2, 1<->3, 2<->3) (A. Rechnitzer Sept 11, 2007) - modify encoding of TrueType font subsets or provide cmap so pdf text can be extracted - smoothing of strokes (for users without tablets / with deficient drivers) - lasso tool - add config option to limit total memory usage for PDF bitmaps - ability to select entire page for copy-paste (as bitmap / reorder xournal) - copy/paste of an entire page (beware if PDF bg is not compatible!) - rewrite printing using GtkPrint + Cairo as GnomePrint replacement (keep GnomePrint option for compatibility with GTK+ <2.10) - insert images (screen capture or from file or from clipboard), not as full-page backgrounds (new ITEM type) - convert to/from Jarnal format; to/from MS Journal format??? - export as SVG, as bitmap (use Cairo for this) - improved PDF viewer features (search text, hyperlink, page borders...) (using full poppler api ?) - use system paper size as default (/etc/papersize) - autoload *.pdf.xoj if present when opening *.pdf ??? - sticky notes (anchor visually text box to a bg location) - use relative paths for bg documents (e.g. annotated PDF) - flush display queue when drawing over a slow X server? - more paper customization (in particular, 1/2 inch graph paper) (2 custom papers with settings in config file? a folder with blank PDF or xoj papers and quick-access?) (also: engineering paper; isometric paper -- Dan Ott Sep 4 '09) - option to map a button to a context menu (incl. tool selection, ...) - option to map a button to "undo" - xournal_page-shadow.diff (Martin Kiefel Feb 5 2007) - xoj2pdf on command line - 'insert blank page after' command (more useful in PDF annot !) - load images as bg if given on command-line (as with PDF on commandline) - lasso selection tool (see shoffsta patch) (http://shoffsta.afraid.org/Projects/Xournal/) - flatten (incl undo/redo...) - enabled only if nlayers>1 - color chooser (papercolor, pen color); maybe more default colors cf. ojb patch #2083103 adds paper color chooser - printing: print-options, save printer settings (throughout a session, and on disk) (maybe a separate config file .xournal/gnome-print-settings) - help index - option for highlighter to be always at bottom of its layer - more pen/highlighter shapes (chisel) - slanted tip pens (calligraphy) - toolbar buttons to access custom preset tools (e.g. text or pen with settings) - text boxes with opaque background - recalibration upon screen resize / compensation for miscalibration (use ConfigureNotify event and XInput? cf "Bugs" tracker 08/2007) - find a better behavior for vertical space tool across page boundaries ? config options? 1) when there's not enough space at bottom of page: - resize the page - move stuff to next page - move stuff to a new page 2) when moving to another page: - move everything - move only what doesn't fit (??? looks hard) option for vert space tool to also move the background?? (PDF: cut-and-crop by running PDF code twice with 2 different clipboxes?) - option to save all annotated files within the .xoj - non-antialiased version for handhelds - customize autogenerated save file names - layer dialog box to set visibility status of each layer regardless of which layer is being edited - option to link layer creation and visibility status for all pages (Eric Borghs 04/15/08) - display corruption on scroll down when bottom of window is obscured?? (probably a gnomecanvas or X bug -- expose event generated for wrong region, or not processed?) - autosave at a regular interval in a given location - keep only a few pages of a PDF file in memory at any given time; generate pages by parsing pdf info rather than generating bitmaps for all of them. - win32 port (Matteo Abrate) - snap-to-grid tool? (Matteo Abrate) - EPOS 7/24/07: Thumbnails pane - EPOS: Connect to EPOS api which sends A4 mapped points - EPOS: Cut and Paste into OpenOffice applications and the GIMP (as bitmap??) - EPOS: Export pages to pictures in the Jpg and Png formats. - EPOS: Rotate Ink in custom angle. - handwriting recognition???? (cellwriter?) unlikely. we don't have grids see galileon comment on 2008-07-29 to tracker #1925309: word recognizer - handwritten stroke search in document (see cellwriter?) (correlate inertia-normalized strokes in lift to unit cotangent bundle?) - option: export to PDF with incremental pages for successive layers (for presentations) (Daniel Brugarth 8/18/07) - Samuel Hoffstaetter: lasso, gettext localization, sidebar thumbnails, ... - YoYo Siska patch for desktop mode ?? - Vivek Ayer: rotate paper wrt screen (for environments where display rotation doesn't work): gnome_canvas_item_affine_relative(canvas->root, ...) would rotate all but text items (still need to modify scroll bbox, and adjust event coordinates by inverse rotation). - rotate PDF background pages (individually wrt each other, see #2099935) - switch to libglade, and allow customization of key shortcuts (accels)