TODO key: d = done, w = work in progress, ? = possibly fixed
          * = required before next release

GTK2 port:
==========

it's down to the not so fun stuff:

 >fix it all to compile without the depreciated widgets/functions (-DG_DISABLE_DEPRECATED)

  >clist/ctree -> listview/treeview (youch!)
  d>in filter preferences
   >file list view
   >dir list view
   >dir tree view
   >file icon view
   >collection window (collection table)
  d>open/save/copy/move dialogs

  >GTK_SIGNAL -> G_SIGNAL

  >GTK_TIMEOUT/IDLE -> G_TIMEOUT/IDLE

  >thumbnails should be stored in mem as pixbufs, not pixmaps/masks...

Major:
----------------------------------------------

 >ADD SAFE DELETE option, apparently even the developer needs this from time to time :/

 >fix utf8 warnings when reading help file to textbuffer.
 >fix filename -> utf8 ->filename mess !

 >fix overflowing integers when > 2 Gigs are listed in file lists.

 >ctrl-w and ctrl-n are both bound to two menu items (doh!).
 >fullscreen should probably shift to be f, now what about float tools
   (yeek shortcuts need a rethink - should look at an HIG or something :))

 >when showing hidden (dot files) is off, the tree view refuses expand to a dropped/user entered path
  that includes hidden files/paths. (!) - will address this _after_ move to gtk_tree_view.

d>ADD UNDO to the sort manager - keep getting myself into trouble (poor clicking accuracy -> wrong folder)...

w>EXIF:
  d>fix bugs with patch...
   >is mmap supported on every GQview supported system? (mmap appears to be part of POSIX.1b)

---- EXIF rewrite:

 >not sure, but may want to rewrite exif.c such that an ExifData * is less field specific, so that the data
  is stored in a more generic way, and lookup functions are called to pull out the correct field. all this
  so that adding support/display of the more exotic (make specific) fields would be much easier. Basically
  direct accesses into an ExifData * outside of exif.c would be discouraged.

    ExifData {
	GList *list_ubyte;
	GList *list_sbyte;
 	GList *list_ushort;
	GList *list_sshort;
	GList *list_ulong;
	GList *list_slong;
	GList *list_float;
	GList *list_double;
	GList *list_urational;
	GLisr *list_srational;
        GList *list_string;
	};

    /* u,s byte ; u, s short, (u, s long too?) */
    ExifInt { gint tag, gint value };

    ExifDbl { gint tag, gdouble value };
    ExifFlt { gint tag, gfloat value };

    ExifRat { gint tag, gint num, gint den };

    ExifStr { gint tag, gchar *text };

  As each field is identified, simply append the data to the correct exif->list_???? list, lookups simply do:

    /* these three set error to TRUE, and return 0 if the tag is not found, dont care then pass NULL error* */
    gint    exif_lookup_int(ExifData *exif, gint data_format, gint tag, gint *error);
    gdouble exif_lookup_dbl(ExifData *exif, gint tag, gint *error);
    gfloat  exif_lookup_flt(ExifData *exif, gint tag, gint *error);

    /* these two return NULL if not found */
    ExifRat *exif_lookup_rat(ExifData *exif, gint tag);
    const gchar *exif_lookup_str(ExifData *exif, gint tag);

    /* data as text retrieval, for some string will be reallocated on next call to same func, never returns NULL */

    /* return %d/%d, num, den string representation, or "" */
    const gchar *exif_text_from_rat(ExifData *exif, gint tag);
    /* return text or "" */
    const gchar *exif_text_from_str(ExifData *exif, gint tag);

  Ah, well, maybe for the next release....

----

d>allow disabling of auto-update features...

 >view window list does not work when the same image is in the list twice (use a pointer to keep list offset)

 >add preview column for batch rename dialog when auto-renaming, also use combobox to allow selection of
  past used prefix/suffix names with history.
 >overwrite dialog auto-rename should show the suggested result.

 >add animated image support

 >add mnemonics to all the right click menus (sorry, translators)

Minor:
----------------------------------------------

 >drag and drop should parse escaped (ex: %20 == space) characters to work with mozilla/konquerer.

 >img rotation [,] should also work with {,} ?? dunno maybe add <,> and ,,. keys instead ?

 >add a real CRC checksum and use in place of checksum_simple

 >there is an icon view bug causing scroll jumping after drag selection with mouse
  (looks like a GTK clist bug ?)

 >the lazy_image_sync option is read/written to the rc file and honored, but is not selectable
  from the options window. UPDATE: this is how it stays.

 >list and icon views differ in selecting next image after a delete when multiple files are selected.

d>add bookmark like list to file dialogs.

d>fix flicker when going fullscreen (still flickers when resizing window, however...)

Wishlist?:
----------------------------------------------

 >allow display of text (filename) under icons in collection window.
  (stupid CList is going to make this difficult ?, maybe impossible w/ clist)

 >move from middle button to standard button for mouse dragging (requires either our
  own selection code for the clists, or wait until GTK 2.0 port - looks like latter.)

 >full screen mode option to display filename/zoom.

 >add symlink option (in addition to the move/copy stuff.)

 >the '..' directory icon should be an icon for up one dir

 >add tree view icon state for 'have viewed this'

 >add option for delay flip till next image is loaded when in fullscreen + slideshow

 >allow slideshow transition effects (wipe/fade etc.)

 >add 2 extra zoom options (fit width and fit height).

 >support reading image data, or a list of files via stdin (cat $FILE | gqview -)

