fix remaining krazy issues
[kdenetwork.git] / kget / TODO
blobde8efedf0baaa665c3d911f9d3b4095cc53df95f
1 TODO-list for KGet
2 ======================
4 <nick>  == reported by
5 Legend:
6     ADD - ADDed
7     CHG - CHanGed
8     FIX - FIXed
11     IN PROGRESS
12 ---------------------
14         TODO
15 ---------------------
17 SHORT-TERM (URGENT):
19   -- MAINWINDOW --
21   -- SCHEDULER --
23   -- SIDEBAR --
24   ADD <dario> re-import the sidebar (and think about a better one).
25   ADD <dario> add a "Finished" (is this the best name?) item. This will point
26       to the downloaded files.
27   ADD <dario> add a popupmenu to add or delete groups by right-clicking on them.
29   -- MAINVIEW --
30   ADD <dario> make it possible to drag a transfer in a group inside the
31       mainview or in the groups visible in the groupspanel.
32   ADD <dario> Implement the selection of a specific group. In this way 
33       selecting a group from the sidebar should display only its transfers.
34   ADD <dario> add a coloured band over the mainview displaying the currently
35       display items. For example if I select "Downloads" from the sidebar it
36       should display "Downloads". If instead I select a specific group <groupname>
37       it should display "Downloads - <groupname>"
38   ADD <dario> handle the situation when we remove a group which has transfers.
40   -- BITTORRENT PLUGIN --
41   FIX <dario> when stopping a transfer immediately after having started it, the
42       plugin crashes.
43   FIX <dario> sometimes, the bittorrent plugin blocks all the kget gui for
44       some seconds.
45   FIX <dario> if we have a torrent file and we make some copies of it with
46       different names, and then we add all the torrents to kget, kget crashes
47   FIX <dario> the transfer should switch its status to finished when we start
48       an already downloaded file.
50   -- MISCELLANEOUS --
51   ADD <dario> implement the GlobalStatus object and make the
52       systray to update using the ViewInterface slots instead of the actual hack.
53       To make this happen we need to create also a special group containing all
54       the ungrouped Transfers. Then we just need to sum the progress of each group
55       to know the global download percentage.
56   ADD <dario> implement progressive filling of the icon in the system tray
57   CHG <pino> verify that all the settings are respected
58   ADD <pino> implement the grouping functionalities
59   ADD <dario> in order to have all the necessary informations to calculate a
60       global progress percentage, we need to know the size of each transfer
61       in the list. This is currently not the case. Now we have this information
62       only for the already started transfers. Maybe we should add a stat() virtual 
63       function to the transfer that makes the transfer retrieve all the necessary
64       informations. Then we should also create a Job, returned by the Transfer 
65       factory, to be added to the scheduler ( that's the new scheduler power ;-) ).
67 MID-TERM:
69   ADD <dario> change the actual way we use the priority for each transfer.
70       In the future it will describe the precise order the transfers will be 
71       downloaded.
72   ADD <dario> use KPassivePopups to notify when all the transfers have been
73       downloaded.
74   CHG <dario> profile kget and look for possible optimizations.
75   ADD <kget> bitTorrent support
76   CHG <kget> setup a decent gui with a decent toolbars.
77   CHG <kget> sync the configuration options with what has currently been 
78       implemented.
79   ADD <dario> make it possible to associate a default folder to each group.
80   ADD <pino> tooltips and what's this for settings
81   ADD <pino> implement the notifications
82   ADD <dario> add a wizard on the first app execution, where the user can set
83       his download folders and other "vital" settings like the integration with
84       Konqueror. Perhaps we could provide a good default like ~/downloads/.
85   ADD <pino> make the sidebar capable of several sizes for its items (16, 22,
86       32, ...)
88 LONG-TERM:
90   ADD <kget> make the TestView able to make intensive tests on kget by
91       giving commands to the Scheduler and looking if what happens is what should
92       happen.
93   CHG <dario> usability enhancements as in #79519, #89379, #111407
94   ADD <dario> sidebar for transfer statistics and more (bandwidth
95       graph, alternative urls, connection status/type, virtual folders,
96       ...)
97   ADD <kget> add bandwidth limiting (#87600)
98   ADD <kget> splits download in N segments (#62371)
99   ADD <kget> support for mirrors (#62371)
100   ADD <dario> 'low priority downloads' as in br #50776.
101   ADD <kget> add Help & Guide
102   ADD <uwolfer> show average transfer speed when finished (#49219)
103   ADD <uwolfer> resume option when there is a file with the same name (#51450)
104   ADD <uwolfer> preserve timestamp of downloaded files (as option) (#55511)
105   ADD <uwolfer> recursion and other wget features (#57105)
106   ADD <uwolfer> make KGets handling of many downloads smarter 
107       (maximum number of open connections per server) (#57248)
108   ADD <uwolfer> check there is enough space left before downloading file (#57373)
109   ADD <uwolfer> save referer page for downloads (#60946)
110   ADD <uwolfer> built-in signature verification support (#61397)
111   ADD <uwolfer> right-click menu to change file properties 
112       (filename, destination directory, url) (#72534, 82923)
113   ADD <uwolfer> add support for mms:// protocol (#96386)
114   ADD <uwolfer> add valid download time frame, global or individual (#109377)
117         DONE
118 ---------------------
121   Things done until 21/01/2005
123   CHG <dario, eros> decoupling between gui and transfer operations.
124   ADD <dario> Implement the MainView class that should become the kget main view.
125   CHG <dario> Transfer object rewrite to make it easily inherited from 
126       new kind of transfers.
127   ADD <dario> TransferKio. The first transfer realized using kioSlaves
128   CHG <dario> Scheduler logic enhancement (there are still lots of things to do)
129   ADD <dario> groups support and notifies to the views.
130   ADD <dario> systray icon with blinking overlay.
131   CHG <eros> Move all the configuration framework to KConfigXT
132   CHG <dario> implement delayedInitialization of the kget app. This should speed up
133       the startup a lot with big lists of transfers.
134   FIX <dario> the konqueror plugin doesn't allow the download of links if 
135       the relative web page has been closed
136   FIX <pino> make more fluid the drop target movement
137   FIX <dario> handle SideBar resizing correctly
138   CHG <dario> finish to implement transferKio adding, for example, setDelay.
139   FIX <dario> (JJ) fix crash when resuming an already running transfer. The 
140       solution should be to check for this case in Scheduler::slotSetCommand
141       by calling the info() function on the transfer and checking if its status
142       is St_Trying or St_Running. In this case we should do nothing.
143   FIX <dario> (JJ) fixed Sidebar crash.
144   FIX <dario> fixed 'stop on transfer' crash
145   FIX <enrico> Optimized color scheme change (rebuilds pixmaps, droptarget,
146       etc) and pixmap deletion (leakfix)
147   CHG <enrico> disabled internal segv hander to show backtraces on crash
148   ADD <dario> make it possible to move transfers to a specific group using
149       the popup menu.
151   Things done after the big architecture rewrite
153   CHG <dario> rename the KMainWidget class (that IMHO is a rather confusing name)
154       to MainWindow (KGet? KGetWindow?)
155   ADD <dario> add the possibility to select "open destination folder" in 
156       the transfer's popup menu.
158 IDEAS:
159    * Use the single transfer dialog to display transfer property, progress and
160      to set up advanced options of a transfer, like its splitting into chuncks.
163 DISCUSSING:
164    * Remember to move downloaded Transfers in a black-list that will be
165      deleted when program exits. So old pointers to downloaded items are
166      still valid when the transfer ends.