]> git.donarmstrong.com Git - xournal.git/blobdiff - src/TODO
Image patch
[xournal.git] / src / TODO
index 4468be7ea378efd3519e0fb73443409077b5d080..01bdcd932fd14a11a55fa50930e78de0ed45b7ae 100644 (file)
--- a/src/TODO
+++ b/src/TODO
@@ -2,7 +2,7 @@ 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
+- porting to MacOS; merge Nokia port
 - multiple-scenario undo history
 
 - collaborative: allow non-x86 endianness (for ints, for floats?)
@@ -12,75 +12,140 @@ List of features to be implemented (not in any particular order)
 - cleanup of undo history (keep track of refcounts, delete old undo)
   save-and-clear-undo ?
 
-- RandR / recalibration awareness?
+- RandR / recalibration awareness? - NOT NEEDED ANYMORE?
   (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?
+  Also allow for SIGUSR1 to recalibrate (so rotate scripts could pkill
+  xournal). (cf #2944459). Recalibration probably requires talking directly 
+  to X server to query input device geometry and compensate for GTK.
+
+TODO WITH IMAGE PATCH:
+TODO: paste and selresize don't put rectangle at top
+TODO: select click in image selects it
+TODO: option for image mode to revert to previous tool
+TODO: direct paste text
+
+BUGS:
+- lingering issues with synaptics touchpads? (#2872667)
+ (todo) - set device to Absolute mode at startup? (GDK doesn't expose API,
+          cf XSetDeviceMode() in /usr/include/X11/extensions/XInput.h)
+- color picker into canvas doesn't work in GTK+ 2.16 (should disable
+   xinput first?)
+- export to PDF should see cropbox size if smaller, and map the
+   cropbox -- not the entire page -- to the page area! (2009-11-18 forum)
+
+BEHAVIOR TODO:
+- option to have "Save Prefs" save current brushes as settings, not defaults
+- method to map more general devices to specific tools or to Ignore
+  (e.g.: X220T ignore trackpoint; map touchscreen to Hand, eraser to Eraser)
+
+WIN32:
+- test further
+- write an installer
+- bug: opening files with accents in name?
+- bug: cairo-scaled-font in printing? (2009-11-18 bug tracker)
+- bug: printf() sometimes generates stroke coordinates 1.#J -1.#J  (???)
+     (filter out inf, -inf, nan, very large values when saving ???)
+
+PATCHES TO INCORPORATE:
+
+- ezyang e-mail of 11/28/2011: patches in Ubuntu to fix PDF showing up?
+http://archive.ubuntu.com/ubuntu/pool/universe/x/xournal/xournal_0.4.5-3.debian.tar.gz
+actually not necessary anymore? (ezyang 12/2/2011)
+
+- tauu e-mail of 12/1/2011: 8 small patches for win32, uploaded on tracker
+https://sourceforge.net/tracker/index.php?func=detail&aid=3447356&group_id=163434&atid=827735
+
+- patch: add Alt-Up/Dn accelerators for show/hide layer. See
+  show_hide_layer.patch
+
+* my own patch noresize_background_v1.patch  (also in xournal-working/)
+
+** patch: ortho/snap (revised Apr 13 2009)
+   xournal_ortho_snap_patch_4 (by Josef Pavlicek)
+
+** patch (Ian-Woo Kim): multicolumn mode + LASSO SELECTION
+   xournal_lasso_multipage_zoom_button_20090620.patch
+
+** autosave patch (Edward Yang) (should fix: optional only, w/ menu + cfgfile
+   entries; fix: should clean up autosave.xoj.bg* files too; config interval)
+   0001-Implement-autosave-for-documents-revised.patch (2 seconds after
+   modification, vs original 5 seconds)
+   *** NEW VERSION: #2881919 (autosave for 0.4.5, w/ some changes)
+   NB: last modif should be triggered by prepare_new_undo() and undo/redo?
+   *** NEW VERSION: with threading, by Man, e-mail 12/10/2009 10:51pm
+
+** insert images patch (Victor Saase) #2890925
+** as improved by Simon Guest April 14 2010
+** modified rev2 May 14, 2010: xournal-0.4.5-sjg-image-rev2.patch.gz 
+** rev6 by now...
+
+** customize paper ruling (Gautam Iyer e-mail Nov 30 2009 / SF tracker)
+
+** cairo export to PNG (Man = Paulo Neves, e-mail Feb 3 '10, saved as
+  cairo-png-rendering.diff.txt (refactor printing of page to cairo surface
+  with the gtk-print code).
+
+- patch by S. Guest
+  shortcut to increase/decrease text font size by 1 point (?) - acts just
+  as if one had clicked font sel box and resized (affects sel text + cur font)
+
+- make line spacing in text objects customizable: to a fixed scaling factor,
+  a fixed number of units, or the paper ruling (esp. the latter!!)
+
+- page size dialog box should have a check button to keep background size
+  the same (so rescaling creates margin around bitmap or PDF background).
+  This will need an extension to the file format, to allow a page background
+  to have a different size from the page itself.
+
+- option to map device named "touch" to hand tool? (like "Eraser tip")
+
+
+- roadmap towards SVG support: see 1/25/2010 Mark Edgington email & reply
+  (1) export to SVG (using pages and groups for pages and layers; 
+  use comment tags to make export nonlossy;
+  (2) import from this subset of SVG;
+  (3) add SVG to the file-open and save formats
+
+- roadmap towards PDF encapsulation: see 1/29/2010 forum posts
+  When exporting to PDF, don't just append our annotations as PDF code but
+  also include the .xoj file within the pdf, and ensure the initial pdf is
+  well-delimited from the rest. When opening a PDF that includes such
+  markings, discard the annotation part of the PDF and open the embedded xoj
+  instead. Later, offer such PDF as a file-open and save format (even when
+  there's no PDF background being annotated!!).
+
+*** should have Open, Save, Save As manipulate at least 3 formats:
+  - XOJ
+  - PDF with embedded xoj file in an object (opens with annot. in PDF viewer,
+    with background only + separate xoj in xournal)
+  - SVG (subset only)
+  additionally, should have "print to": printer, PDF, SVG, bitmap.
+
+- allow djvu and other backgrounds (but then can't export to PDF)
 
-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
-
-** update: include ttsubset/(Makefile.am, *.c, *.h, README) in cvs
-           also revised configure.in, src/Makefile.am
-           remove src/sft.h
-
-- prerelease: update help file (remove references to pdftoppm/libgnomeprint
-  & update to poppler/gtkprint)
-- remove "antialias bg" flag, useless... see McElrath
 - PDF bg memory usage throttling / delete oldest pdf backgrounds
 - replace ttsubset by something more modern? (eg. from cairo ?)
-- fix fix_xinput_coords so it works ok without ENABLE_XINPUT_BUGFIX ?
-   (with both old and new GTK+)
-  (need to shift by (sx,sy), + shift between canvas->window vs canvas in 2.17)
-- color chooser button (patch tracker?)
-- 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]
-** auto-hide patch from ~/prog/src/xournal-autohide/ ?
-     (check for cpu usage, add flag if need be; handle BOTH edges
+- auto-hide patch from ~/prog/src/xournal-autohide/ ?
+     (check for cpu usage; handle BOTH edges
       and only (un)hide stuff at the correct edge!)
-** if bg pdf not found in absolute path, look in path of xoj file before
-   prompting user.
-** patch to fix focus + allow up/dn in single page mode (Bob McElrath)
-   also comment out contents of reset_focus() ? (tracker patch #2494022)
-** patch to fix underscores in MRU filename display (McElrath) (tracker)
-   (fix memory leak)
 ** 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)
-** antialias BG pixmaps doesn't do anything anymore? 
-** autosave patch (Edward Yang) (fix: optional only, w/ menu + cfgfile
-   entries; fix: should clean up autosave.xoj.bg* files too; config interval)
-- 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])
+- horizontal mode instead of dual-view / multicolumn ?
+** "new page before/after" on a PDF bg page should ask: same page, other page of
+  PDF file, default paper
+** should also have in Journal -> Paper style the option "Pdf page ..."
+  which then lets us change the page number.
 - new recognizer icon (andruk on patches tracker)
 - recognizer: if variable-width, associate average width
 - recognizer should snap to existing recognized geometric shapes
+- patch to find text in PDF (dmg = Daniel German, Nov 13 2009)
+
+- search through text (xoj and PDF background) (with highlight? forwd/backwd)
+  (see evince). Also: ability to select rectangle on PDF bg and copy-paste
+  as bitmap or as text.
 
 - improve recognizer: two passes for polygons (low tolerance, then higher)
   to better detect elongated rectangles? (if low tolerance recognizer
@@ -90,30 +155,35 @@ DONE: use gtk-print instead of libgnomeprint
   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.
+    NO: render using Cairo !!!
     (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
+- maintain e-library: table of md5sums of pdfs with associations
+  to the corresponding xoj's absolute paths (cf. forum topic
+  "Use MD5..." of Dec 2009)
+
 - 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?
+  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
@@ -121,23 +191,17 @@ DONE: use gtk-print instead of libgnomeprint
 
 - smoothing of strokes (for users without tablets / with deficient drivers)
 - lasso tool
-- load PDF pages only on demand (create empty pixmaps at first if can
-   parse PDF geometry ourselves, else try pdfinfo ??)
-   (and config option to limit total memory usage for PDF bitmaps)
+- 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 ?)
+- search text: among PDF background (using poppler); among text annotations
 
 - 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?
@@ -154,8 +218,8 @@ DONE: use gtk-print instead of libgnomeprint
 - 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
+- color chooser (papercolor, pen color); have default colors and a history
+  appear as palette in there!
 - printing: print-options, save printer settings (throughout a session,
    and on disk) (maybe a separate config file .xournal/gnome-print-settings)
 - help index
@@ -210,3 +274,9 @@ DONE: use gtk-print instead of libgnomeprint
   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)
+
+- command to copy a selected shape to a keybinding that will paste it
+  (so one can define symbols to insert into typed notes)  (e.g. "be able
+  to bind Ctrl-B to draw a \beta" for class notes). (shape, binding) sets are
+  local to one session (different for different classes; but save them into
+  the xoj file maybe ?) [Felix Giannelia 09/29/2009]