1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
|
UI Changes
============
* Tell the user the format of some of the preferences
fields (proxy and regular expressions)
* Rethink the properties box and remove the button from the toolbar
* Totally remove the download info page and move the information to:
+ The information of the auto download goes to a new column on
the list.
+ The buttons go to the properties box
+ The rest go to a popping double click (on a list element)
window
* Make the list less taller and less wider
* [DONE] Change the titles of the windows:
+ main window and message windows => GNOME Transfer Manager
+ other windows => title according to the content without GTM
* [DONE] Auto-scroll the list when a new download starts to make that
download visible
* [DONE] Master switch to the auto download feature on the toolbar
* [DONE] List information with (opening from the menu or something like
that):
+ Number of files on the list
+ Number of complete files
+ Number of running files
+ Number of stopped files
+ Other information people might think it is useful
* [DONE] It's annoying to have GTM open just to wait for a connection
to the network. So the applet will have an option to open GTM when
it knows the network is up.
* [DONE] Resize the applet according to the size of the panel. This is
important with GNOME 1.2 because the panel has diferent sizes
and we don't want the gtm_applet to be the one to ruin the party by
not resizing like the other applets.
Users wish list
=================
* Segmented download to accelerate the download
* Limit the number of downloads to a site
* Handle message out-of-disk-space
* Log the completed downloads (with the ability to reuse
the logged URL)
* report when it is impossible to resume (wget doesn't report this
so it is impossible to do this right now using wget)
* Scheduler for multiple time driven downloads (eg start this at 2am).
A batch mode which would not require X would also be helpful for this.
* bandwidth metering (eg don't use more than 50% of available
bandwidth)
* choose the best mirror to get a file from (have to configure the
mirrors)
* long term stats (total bytes transferred, file types, transfer
rates, etc)
* mail notification (run command when all downloads are complete
(see above) might cover this).
* Hide the "disable proxy" if the user doesn't have a proxy configured.
* Text box on the toolbar to speed up URL adding (instead of the
dialog box)
* a search function that will interface to internet search programs
such as FTPsearch thereby allowing the user to obtain multiple
locations for the same file or group of files so that, if one
connection is broken or too slow, gtm can switch to another connection
and continue the download(s)
* support recursive wget
* Ability to select a group of files and have an option to "Send To
Beginning" and "Send To End" on the menus and right click.
* Ability to move a group of files at once via DND, and even if not
contiguous.
* It would be useful to automatically separate the list into In
Progress/Waiting/Completed, in that order.
* Ability to have separate "sessions" which have different file lists
and default downloading prefs. This would mean you could run two GTMs
(as long as it didn't use the same session) or switch between sessions
in one instance (and stop downloading the previous session). This
would make file lists more manageable too, and quickly allow you to
choose which download you wanted to currently continue.
* More retry settings, like "move to end between retries", and
"minimum time between retries".
* Ability to define prioritisation categories, so for example, all
files on server x would be downloaded before server y, or all mpgs
would be downloaded before all zips.
* "Delete File" (from disk) and "Open File" actions (on double click).
* Allow changing the whole URL, including the file name if the
download has not already started. If it's partially downloaded, give
the user various options, including rename on-disk file, delete on-disk
file or cancel. If it is downloaded, give the same options plus one to
leave the old file there.
* When files selected, say somewhere how many files are selected.
Useful for determining you've got all files when there's a lot.
Possibly add "selected" column to list statistics.
* Sort by various criteria as well as priority, eg file name, URL.
* Ability to restart transfer even when already running.
* Restore one/multiple files to default download options.
* Automatic download policy selection based on URL/media-type.
Currently only does directory on URL.
* Forced reload checkbox, that will bypass caches.
* Numeric download should support drag & drop that intelligently
breaks down the URL into component parts rather than just dumping
into first field.
* Ability to remove finished files from the list
* Improve directory matching capabilities, perhaps make it similar
to the way email filter rules are typically set up. So as well as
the current wildcard matching you could have "contains", "is exactly",
"matches regular expression" etc.
* Persist download log between sessions.
* Support headers such as Referer, User-Agent, HTTP Authentication,
plus custom headers.
* Prevent GTM from downloading files with different file names if
a redirect occurs. May require not using wget.
* Support retrying a file when it turns out a "try again later"
web page was downloaded. Either require a file to be of a
minimum size, require the MIME type not be HTML, or require the
downloaded file name to the requested one.
* Ability to specify a different file name for the local file
on disk. To change it you would have a checkbox on new single
or numeric download.
* If you try to drag and drop a file with the same file name as
one that already exists you would have an option to bring up the
"New Download" box so you can override the directory and/or file
name.
* Some way to specify the size of the download log, either in
prefs or by a splitter.
* Some way to disable the log. Maybe use a toolbutton like the
download info.
* Allow the user to specify what columns appear in the file list, and
to resize them. Currently the file list uses the GTK CList widget.
To fix this, GTM would either have to change to the GAL or GTK2
version, or destroy the file list and recreate it whenever the
column list is changed.
* Extra columns: download size, downloaded, percentage graph,
download time, estimated download time remaining, estimated total
download time, average download speed, 'instantaneous' download
speed, 'running' download speed for a specified interval, local file
name, local directory, originating program (possible?), extra HTTP
headers, use proxy, use caches, use auto download, full URL,
download completed date/time, download started date/time, download
last started date/time, download last stopped date/time, scheduled
start time.
* Allow cookies to be set up that can be passed to a site.
* Expand the URL pattern matching so can or always corresponds to
an entire download policy (eg use proxy, use caches, custom headers,
etc)
* Maybe change numeric download's min and max numbers so that
breaking min <= max by clicking one number will also move the other
number in the same way so as to enforce min <= max, ie if the widgets
were 2 -> 2 and you clicked to reduce max, min would also reduce, so
as to give 1 -> 1. Then there is no need for the error message if
max < min, just an assertion.
* There are lots of different ways a URL can be refused (eg exists
already & invalid URL). Where one of these errors occur, all the
invalid URLs should appear along with the error. Where multiple
URLs have an error, maybe list the error, then all the URLs with
that error, then the next error, etc.
* Do something about downloading directories.
+ Currently says: "Multiple download not implemented yet".
"Download of directories not yet supported." would be better.
+ Dialog-add allows downloading directory indexes, but dialog-new
gives the above error. Maybe just allow them to be downloaded?
(Could require a file name to be specified?)
* Provide an option to require that all URLs match a directory
suggestion regexp. If they don't, pop up a dialog saying so and
allow the user to define a new regexp for that URL. This would be
like the normal dialog, except it would display the URL, and "OK"
would check the URL matches the regexp.
* Undo! Restore those accidentally lost URLs!
* Port to the soon to be released GTK 2.
* Either use the page info or properties box to allow you to change the
options of a lot of URLs at once. At the moment you can only do this
for auto download using the menus or toolbar.
* Allow defining multiple proxy settings and let URLs choose one.
* Applet should give a visual indication of the progress of a
number of downloads that the application is downloading.
* Do something with the status bar!
Some ideas
============
* Convert the help system to docbook (almost done).
* I'm going to change the interface to support the download of more
than one file per URL and with this I mean also the use of options
like mirror. (I'm more close to finish this goal!)
* If someone requests it we can add more functions to idl. This way
the program can be controled from an applet or another application
if necessary.
* I don't know yet how to implement upload but I must do it sometime
because programs using GTM to manage transfers through it's CORBA
interface might like it. (This is impossible with wget unless we use
another way to transfer files)
Possibly switching to libcurl might help with this.
Developer Stuff
=================
* Investigate ease of implementation and potential memory savings of
sharing download policy structure and possibly other stuff between
URLs. This may become more useful as more things are added to the
download policy (eg HTTP headers). Would need to handle the fact
that if you modify the download policy of one URL you would need to
split a new download policy off unless it had a reference count of 1.
* Download policy structure might also be useful elsewhere.
* The current way of speeding up large file list loading is very
kludgey. In particular file-list and file-data are dependent on
each other circularly. There should be no references to file-list
in file-data.
* Perhaps make list statistics updating incremental rather than
resumming every update. This should speed up large list loading a
bit more.
* Investigate source code sharing between applet and application.
At least some dialog code should be shareable, in particular the
directory suggestion stuff has been copied and pasted from applet
to application in places.
* Keep exploring possible transition to GLADE. GLADE seems too
immature. Most troublesome issue is currently the lack of the
ability to define a compound widget for the download policy widget.
* Audit for where assertions should be placed.
* Run a leak finding program and remove leaks. There are leaks.
* Define ownership rules on interfaces and do a leak audit. This
will find leaks that don't occur a lot in practice and might slip
through a leak finding program.
* Run a "lint" source code checking program.
* Remove all FIXMEs.
|