small fixes and updates
[kdenetwork.git] / kget / TODO
blob20e6ea81cadf4221989faae8a8311fae2ea2aaa2
1 TODO-list for KGet
2 ======================
4 <nick>  == reported by
5 Legend:
6     ADD - ADDed
7     CHG - CHanGed
8     FIX - FIXed
11     USABILITY REVIEW
12 ---------------------
13 Main Window
14     1.1 - List title bar
15     1.2 - No text in toolbar
16     1.3 - Menu item File → Open unclear             DONE (renamed to "Import Transfers")
17     1.4 - Missing keyboard shortcuts
18     1.5 - Downloads don’t start immediately        DONE
19     2.1 - Default group not necessary?              Renamed to "My Downloads". Is it enough?
20     3.1 - Visual alignment                          DONE (all centered)
21     3.2 - File details view not always visible
22     3.3 - File details view switching
27     IN PROGRESS
28 ---------------------
29   ADD <kget> bitTorrent support
30   ADD <boom1992> Multi-Source downloading
32         TODO
33 ---------------------
35 SHORT-TERM (URGENT):
37   -- MAINWINDOW --
39   -- SCHEDULER --
41   -- SIDEBAR --
42   ADD <dario> re-import the sidebar (and think about a better one).
43   ADD <dario> add a "Finished" (is this the best name?) item. This will point
44       to the downloaded files.
45   ADD <dario> add a popupmenu to add or delete groups by right-clicking on them.
47   -- MAINVIEW --
48   ADD <dario> make it possible to drag a transfer in a group inside the
49       mainview or in the groups visible in the groupspanel.
50   ADD <dario> Implement the selection of a specific group. In this way 
51       selecting a group from the sidebar should display only its transfers.
52   ADD <dario> add a coloured band over the mainview displaying the currently
53       display items. For example if I select "Downloads" from the sidebar it
54       should display "Downloads". If instead I select a specific group <groupname>
55       it should display "Downloads - <groupname>"
56   ADD <dario> handle the situation when we remove a group which has transfers.
58   -- MISCELLANEOUS --
59   ADD <dario> implement the GlobalStatus object and make the
60       systray to update using the ViewInterface slots instead of the actual hack.
61       To make this happen we need to create also a special group containing all
62       the ungrouped Transfers. Then we just need to sum the progress of each group
63       to know the global download percentage.
64   ADD <dario> implement progressive filling of the icon in the system tray
65   CHG <pino> verify that all the settings are respected
66   ADD <pino> implement the grouping functionalities
67   ADD <dario> in order to have all the necessary informations to calculate a
68       global progress percentage, we need to know the size of each transfer
69       in the list. This is currently not the case. Now we have this information
70       only for the already started transfers. Maybe we should add a stat() virtual 
71       function to the transfer that makes the transfer retrieve all the necessary
72       informations. Then we should also create a Job, returned by the Transfer 
73       factory, to be added to the scheduler ( that's the new scheduler power ;-) ).
74   ADD <boom1992> let the user add new download-sources to a multithreaded transfer manually
76 MID-TERM:
78   ADD <dario> change the actual way we use the priority for each transfer.
79       In the future it will describe the precise order the transfers will be 
80       downloaded.
81   ADD <dario> use KPassivePopups to notify when all the transfers have been
82       downloaded.
83   CHG <dario> profile kget and look for possible optimizations.
84   CHG <kget> setup a decent gui with a decent toolbars.
85   CHG <kget> sync the configuration options with what has currently been 
86       implemented.
87   ADD <dario> make it possible to associate a default folder to each group.
88   ADD <pino> tooltips and what's this for settings
89   ADD <pino> implement the notifications
90   ADD <dario> add a wizard on the first app execution, where the user can set
91       his download folders and other "vital" settings like the integration with
92       Konqueror. Perhaps we could provide a good default like ~/downloads/.
93   ADD <pino> make the sidebar capable of several sizes for its items (16, 22,
94       32, ...)
95   ADD <boom1992> TransferHistory: perhaps switch to a model based sollution, which makes it hopefully faster for more files
97 LONG-TERM:
99   ADD <kget> make the TestView able to make intensive tests on kget by
100       giving commands to the Scheduler and looking if what happens is what should
101       happen.
102   CHG <dario> usability enhancements as in #79519, #89379, #111407
103   ADD <dario> sidebar for transfer statistics and more (bandwidth
104       graph, alternative urls, connection status/type, virtual folders,
105       ...)
106   ADD <kget> add bandwidth limiting (#87600)
107   ADD <dario> 'low priority downloads' as in br #50776.
108   ADD <kget> add Help & Guide
109   ADD <uwolfer> show average transfer speed when finished (#49219)
110   ADD <uwolfer> resume option when there is a file with the same name (#51450)
111   ADD <uwolfer> preserve timestamp of downloaded files (as option) (#55511)
112   ADD <uwolfer> recursion and other wget features (#57105)
113   ADD <uwolfer> make KGets handling of many downloads smarter 
114       (maximum number of open connections per server) (#57248)
115   ADD <uwolfer> check there is enough space left before downloading file (#57373)
116   ADD <uwolfer> save referer page for downloads (#60946)
117   ADD <uwolfer> built-in signature verification support (#61397)
118   ADD <uwolfer> right-click menu to change file properties 
119       (filename, destination directory, url) (#72534, 82923)
120   ADD <uwolfer> add support for mms:// protocol (#96386)
121   ADD <uwolfer> add valid download time frame, global or individual (#109377)
122   ADD <boom1992> write a ML-Donkey-plugin
123   ADD <boom1992> Proxy-support, not global, only for kget (we need to wait for kdelibs)
124   ADD <boom1992> Various small improvements: #134456, #81219, #150391, #150447, #121318(we should add it to transfer-history), searchbar for mainwindow, Nepomuk integration??, strigi integration (with transfer-history)??
125   ADD <boom1992> DC++-Plugin
126   ADD <boom1992> GUI to create Metalinks 
128         DONE
129 ---------------------
132   Things done until 21/01/2005
134   CHG <dario, eros> decoupling between gui and transfer operations.
135   ADD <dario> Implement the MainView class that should become the kget main view.
136   CHG <dario> Transfer object rewrite to make it easily inherited from 
137       new kind of transfers.
138   ADD <dario> TransferKio. The first transfer realized using kioSlaves
139   CHG <dario> Scheduler logic enhancement (there are still lots of things to do)
140   ADD <dario> groups support and notifies to the views.
141   ADD <dario> systray icon with blinking overlay.
142   CHG <eros> Move all the configuration framework to KConfigXT
143   CHG <dario> implement delayedInitialization of the kget app. This should speed up
144       the startup a lot with big lists of transfers.
145   FIX <dario> the konqueror plugin doesn't allow the download of links if 
146       the relative web page has been closed
147   FIX <pino> make more fluid the drop target movement
148   FIX <dario> handle SideBar resizing correctly
149   CHG <dario> finish to implement transferKio adding, for example, setDelay.
150   FIX <dario> (JJ) fix crash when resuming an already running transfer. The 
151       solution should be to check for this case in Scheduler::slotSetCommand
152       by calling the info() function on the transfer and checking if its status
153       is St_Trying or St_Running. In this case we should do nothing.
154   FIX <dario> (JJ) fixed Sidebar crash.
155   FIX <dario> fixed 'stop on transfer' crash
156   FIX <enrico> Optimized color scheme change (rebuilds pixmaps, droptarget,
157       etc) and pixmap deletion (leakfix)
158   CHG <enrico> disabled internal segv hander to show backtraces on crash
159   ADD <dario> make it possible to move transfers to a specific group using
160       the popup menu.
162   Things done after the big architecture rewrite
164   CHG <dario> rename the KMainWidget class (that IMHO is a rather confusing name)
165       to MainWindow (KGet? KGetWindow?)
166   ADD <dario> add the possibility to select "open destination folder" in 
167       the transfer's popup menu.
169 IDEAS:
170    * Use the single transfer dialog to display transfer property, progress and
171      to set up advanced options of a transfer, like its splitting into chuncks.
174 DISCUSSING:
175    * Remember to move downloaded Transfers in a black-list that will be
176      deleted when program exits. So old pointers to downloaded items are
177      still valid when the transfer ends.