Projects/KGet: Difference between revisions

    From KDE TechBase
    No edit summary
    No edit summary
    (8 intermediate revisions by 5 users not shown)
    Line 1: Line 1:
    ==Introduction==
    ==Introduction==


    ==Design==
    ==Design==


    ==Development==
    ==Roadmap==
    ===KGet 2.5 (in KDE 4.5)===
    * Implement transfersRemoved/Added signals with a QList as parameter (unhack r1064328)
    * Better error-handling for transfers, using a setError() method -> discuss this with the whole team
    * Something like a filesizechecker, which informs/warns the user if there's no space free on the disk
     
    ==General ToDo==
    ===Core===
    ===Core===
    * MultiSource Downloading
    * MultiSource Downloading
    Line 26: Line 33:
    ====Plasmoid====
    ====Plasmoid====
    ===Usability===
    ===Usability===
    * Add option to show newtransferdialog on top, using Qt::WStyle_StaysOnTop.
    * Ask the user if he/she wants to delete the transfer (or probably if he/she wants to delete the tmp-file)?
    * Ask the user if he/she wants to delete the transfer (or probably if he/she wants to delete the tmp-file)?
    * Let the user add new download-sources to a multithreaded transfer manually
    * Let the user add new download-sources to a multithreaded transfer manually
    Line 35: Line 41:
    * Proxy-support, not global, only for kget (we need to wait for kdelibs)
    * Proxy-support, not global, only for kget (we need to wait for kdelibs)
    * Right-click menu to change transfer properties (filename, destination directory, url)
    * Right-click menu to change transfer properties (filename, destination directory, url)
    * Add option to show newtransferdialog on top, using activiateWindow(). (DONE)
    ===Optimization===
    ===Optimization===
    * Move deleting of big tmp-files to a new thread.
    * Profile kget and look for possible optimizations, done for:
    * Profile kget and look for possible optimizations.
    ** Removing multiple/single transfers
    ** adding (== loading) many transfers
    ** starting/stopping many transfers
    ** ... further improvements there most likely still possible
    * Make KGets handling of many downloads smarter, (maximum number of open connections per server).
    * Make KGets handling of many downloads smarter, (maximum number of open connections per server).
    * Recursion and other wget features.
    * Recursion and other wget features.
    Line 44: Line 54:
    * Save referer page for downloads.
    * Save referer page for downloads.
    * Preserve timestamp of downloaded files (as option)
    * Preserve timestamp of downloaded files (as option)
    ====MultiSegment====
    ====MirrorSearch====
    ====BitTorrent====
    ====BitTorrent====
    * Fix crashes in Advanced-Details
    ====ContentFetch====
    ====ContentFetch====
    * Fix thread related issues.
    * Fix thread related issues.
    Line 52: Line 61:
    * Prepare to write megaupload/rapidshare downloader.
    * Prepare to write megaupload/rapidshare downloader.
    * Write the baidu mp3 downloader (long term).
    * Write the baidu mp3 downloader (long term).
    ====MetaLink====
    * GUI to create Metalinks
    ====mms====
    ====MLDonkey====
    ====MLDonkey====
    * Write a ML-Donkey-plugin, based on libkmldonkey.
    * Write a ML-Donkey-plugin, based on libkmldonkey.

    Revision as of 15:45, 15 July 2012

    Introduction

    Design

    Roadmap

    KGet 2.5 (in KDE 4.5)

    • Implement transfersRemoved/Added signals with a QList as parameter (unhack r1064328)
    • Better error-handling for transfers, using a setError() method -> discuss this with the whole team
    • Something like a filesizechecker, which informs/warns the user if there's no space free on the disk

    General ToDo

    Core

    • MultiSource Downloading
    • Add Advanced Details support

    User Interface

    Main View

    • Add advanced details area (show chunk view, peer view, file view, statistics view etc...). Use tabview to display multiple views.
    • Add a coloured band over the mainview displaying the currently display items. For example if I select "Downloads" from the sidebar it should display "Downloads". If instead I select a specific group <groupname> it should display "Downloads - <groupname>"
    • Add valid download time frame, global or individual.
    • Show average transfer speed when finished

    SideBar

    • Re-import the sidebar. Might be a tree-view.
    • Add a "Finished" item. This will point to the downloaded files.
    • Add a popupmenu to add or delete groups by right-clicking on them.
    • Implement the selection of a specific group. In this way selecting a group from the sidebar should display only its transfers.
    • Make the sidebar capable of several sizes for its items (16, 22, 32, ...)

    DragBasket

    • Show downloading progress, if multiple downloads are going, show each for 1 or 2 senconds.

    SysTray

    • Implement progressive filling of the icon in the system tray.
    • Use KPassivePopups to notify when all the transfers have been downloaded.

    Plasmoid

    Usability

    • Ask the user if he/she wants to delete the transfer (or probably if he/she wants to delete the tmp-file)?
    • Let the user add new download-sources to a multithreaded transfer manually
    • Handle the situation when we remove a group which has transfers.
    • If user resume a download and find the disk space is not enough, implement a option which can move and continue the transfer to another user-specified place.
    • Add a wizard on the first app execution, where the user can set his download folders and other "vital" settings like the integration with Konqueror. Perhaps we could provide a good default like ~/downloads/.
    • Check there is enough space left before downloading file
    • Proxy-support, not global, only for kget (we need to wait for kdelibs)
    • Right-click menu to change transfer properties (filename, destination directory, url)
    • Add option to show newtransferdialog on top, using activiateWindow(). (DONE)

    Optimization

    • Profile kget and look for possible optimizations, done for:
      • Removing multiple/single transfers
      • adding (== loading) many transfers
      • starting/stopping many transfers
      • ... further improvements there most likely still possible
    • Make KGets handling of many downloads smarter, (maximum number of open connections per server).
    • Recursion and other wget features.

    Plugins

    KIO

    • Save referer page for downloads.
    • Preserve timestamp of downloaded files (as option)

    BitTorrent

    • Fix crashes in Advanced-Details

    ContentFetch

    • Fix thread related issues.
    • Polish youtube downloader.
    • Prepare to write megaupload/rapidshare downloader.
    • Write the baidu mp3 downloader (long term).

    MLDonkey

    • Write a ML-Donkey-plugin, based on libkmldonkey.