1* TODO list		-*- mode:indented-text; mode:outline-minor -*-
2
3This file documents planned future features, known bugs, and that sort
4of thing.
5
6
7* Important in short-term
8
9Add an optional confirm-on-quit dialog, to appear if any files are
10tagged (on the assumption that you might have wanted to do something
11with the tagged files). Might be best not to make this default, not
12sure. (Suggested by Brad Templeton.)
13
14Document the way thin-rows mode is always enabled when files are
15specified on the command-line. The "Invoking xzgv" node already has a
16bit about files-on-cmdline, so probably best to add it there.
17
18Renaming a file should give the current filename as a default.
19(Suggested by "Micha".)
20
21Slideshow. I've put this off for ages, and it shouldn't be *that*
22hard... right? :-) But one problem wrt zgv similiarity is that I can't
23really put it on Tab.
24
25You should be able to choose what command gets run for help, such that
26e.g. the default one would be "xterm -e info '(xzgv)%s'".
27
28Dest for copy/move should accept "-" for most-recently-entered dir, by
29analogy with `cd -'. Goto-dir dialog should probably also accept it,
30but have independent `history'.
31
32Add toolbar-ish thing (which should be disabled by default, but appear
33at top of viewer window when enabled; could use alt-t for the toggle,
34that's available) for general viewer stuff.
35
36[was going to do this for 0.6 but need to think about it a bit more]
37Look into sane ways to add shift-click behaviour for tagging multiple
38files with the mouse. The main difficulty is in where you consider the
39other end of the region to be - focus row seems bogus, selected row is
40similarly bad, and last ctrl-click should be tolerable but is still a
41bit odd. Thinking about it, I'm pretty sure it *has* to be last
42ctrl-click/shift-click to be at all usable.
43
44want an option to fit the viewer (and thus the window) to the size of
45the first image loaded if one or more images are specified on the
46cmdline. Also (this suggested by Wolfram Kleff) a
47fit-viewer-to-current-pic option; not a toggle, but a one-off `resize
48now' kind of thing like (IIRC) ^e in the Gimp.
49
50Need to *properly* block keyboard input to selector while loading an
51image - I probably need to catch key_release, but it's not too clear.
52Here's why - do mouse click in viewer to load an image, and press
53space while it's loading. Often you'll end up with one file apparently
54selected, but another file being viewed.
55
56Document the way the keyboard cursor follows last-selected dir when
57returning to a previously-visited one. (The logical place to document
58this is in the "changing dir" node.) This is important for mouse-happy
59users, who could conceivably not otherwise notice. [Perhaps not so
60important since selector focus fix, but still worth pointing out.]
61
62Some way to set the background colour in the viewer. Should make sure
63it overrides any pixmaps in the theme. [Obvious approaches didn't
64work; RTFS job on GTK+, I think...]
65
66
67* Important in long-term
68
69Have thumbnails in the selector only read/rendered/stored-as-pixmap
70*when displayed*, like zgv. I think overall this would be a win, and
71it would be much less demanding of pixmap resources in the X server.
72The only question is whether I can manage this without display
73glitches; should be possible if non-visible rows are kept pixmapless.
74
75Make help suck less. And I think viewing HTML would suck *more* in
76most cases, so this is going to be a bit tricky.
77
78Cursor left/right in selector (when filenames are longer than can fit)
79don't work that well. Should take these over and tweak the hadj
80manually, if possible (but IIRC it may not be easy :-/). Should also
81add h/l equivalents if I do this.
82
83The goto-dir dialog (and copy/move) should use a GUI directory
84chooser, in addition to the text-entry widget; but ensure you can
85always just do `G', type in the name, then enter (like you can now).
86
87
88* Wishlist features (not too important)
89
90Something to put current-file-or-tagged onto the clipboard would be
91really neat. (Just the (full) filenames, not the contents.) A bit like
92a more GUIfied version of `-T'. :-) (Good-ish name would be `copy file
93location' or similar, as used in Netscape.)
94
95`--selector-width' doesn't allow percentages. Should add that. This is
96slightly hairy as we have to leave it as a float percentage until we
97know we've got the actual window width. Also, it implies that the
98percentage should be recalculated every time we resize the window!
99(Not that we *set the selector* to the new size, just that we
100recalculate the default setting for `~'.)
101
102It might be nice if viewer shift-click changed scaling *around the
103point clicked on* (rather than always the centre of the window). This
104would be a bit hairy though, and since I tend to use the keyboard for
105scaling anyway I'm not sure I'm likely to bother. :-)
106
107Currently always uses a 48x48 icon pixmap. Should look into what hints
108are available about icon size, and should also offer overrides in case
109that's useless or whatever. :-)
110
111main() has got a bit ugly, that could do with cleaning up. Actually,
112main.c as a whole is a bit of a mess. :-)
113
114
115* Trivia
116
117When you delete a file from the viewer (ctrl-d works there too), it
118works fine, but the deleted picture stays in the viewer. It might be
119better if it auto-closed the file (though this may be somewhat
120disturbing visually, which is why I've not taken this approach
121currently). (This suggested by Wolfram Kleff.)
122
123
124* Known bugs
125
126- when you delete a file at the cursor, if it's at the end of the file
127  list the cursor disappears. Should make it move the cursor back
128  before removing the entry. [This could well be a GTK+ bug in late
129  1.2.x versions, IIRC it didn't happen with 1.2.7 or thereabouts.]
130
131- callback routines which call render_pixmap() should really be
132  protected against recursion. Ok, this is basically done now, but the
133  protections are independent - so e.g. do a mirror and flip at about
134  the same time and it can still mess up. I expect I need to have a
135  general `stop listening to the user' callback-defending thing to get
136  this stuff truly fixed.
137
138- If you change themes, the current picture isn't updated (more
139  precisely, if you expose it afterwards it's not redrawn). This
140  happens when `normal' and zoomed, but *not* when scaling up. You
141  also get a GTK+ error of some kind IIRC.
142
143- in zoom mode, it copes with resizing the window as a whole, but
144  *doesn't* when you change the size of the pane (apart from when
145  hiding/showing selector or resizing from keyboard, but that's only
146  'cos I kludged it :-)). Might be fixable by catching configure
147  events on an event box containing sw_for_pic? [Tried it on clist
148  ebox, which is resized whenever viewer win is, but it didn't seem to
149  work...]
150
151- tagged filenames only appear in red when not selected. This doesn't
152  appear to be trivial to work around, unfortunately, and I can't
153  really see any other way of showing tagging which wouldn't look
154  nasty or take up loads of room.
155
156- Thumbnails are given an accurate width/height `IMGINFO' comment, but
157  are always claimed to be "RGB", as Imlib doesn't provide any way for
158  us to find out what type they are (other Gimp-style types are
159  "Grayscale" and "Indexed", IIRC). I could possibly kludge this for
160  common file types by reading the file's header, but this would be
161  really ugly - is it worth it or not? (An xv-ish file type after the
162  width/height would be easier, but still kludgey, and I'd much rather
163  be Gimp-friendly than xv-friendly.)
164