Projects/KNS2: Difference between revisions

    From KDE TechBase
    mNo edit summary
    (use abs paths)
     
    (41 intermediate revisions by 7 users not shown)
    Line 1: Line 1:
    == KNewStuff ==
    == KNewStuff 2 ==
    {{note|Things you see here are incomplete and '''completely''' working in progress}}
     
    [[Projects/KNS2/Users|Who uses KNewStuff2]]


    == API Discussion ==
    == API Discussion ==
    I sorted out that needed classes will (mostly) be:
    Classes will (mostly) be:
    * [[/Packager|A packager/uploader]] (Plasmagik)
    * [[Projects/KNS2/Packager|A packager/uploader]] (Plasmagik)
    * [[/Bundler|A bundler]] (Facility class created for other applications, to easily map a file into the package)
    * [[Projects/KNS2/Handler|A Handler]] (Facility class created to manage files locally)
    * [[/Downloader|A download GUI]] (Like the exixting one)
    * [[Projects/KNS2/Downloader|A download GUI]] (Like the exixting one)
    * [[/Manager|A package manager]] (Like SK package manager)
    * [[Projects/KNS2/Manager|A package manager]] (Like SK package manager)
    * [[Projects/KNS2/CompleteEntry|A class used to retrive *all* the information from a single entry]] (KNS::CompleteEntry)
    * [[Projects/KNS2/Model|A model class to allow knewstuff integration into apps]] (It will contain all the informations availeable with the download dialog)
     
    == PolishingWeek-end ==
    ===Bugs and regressions from 3.5===
    * Unsorted is not needed as there's no other option
    * No feedback when something is downloaded, the user does not know when it is finished. => kmail-style progress bars
    **In ''CoreEngine::slotInstallationVerification(int result)'' signalInstallationFinished() and signalInstallationFailed() are emitted but not connected anywhere.
    * No feedback in the dialog that some items are already present (was done in 3.5 in the app by writing in config stuff entries then KNS picked that and displayed a green tick in the list)
    ** In KDE 3.5 this code is in ''void DownloadDialog::install(Entry *e)'' in ''downloaddialog.cpp''
    * The display of the list is slow, way slower than in KDE 3.5
     
    ===To implement===
    * Upload
    * Engine Interface
    * fix blocking / simple API
     
    ===Programs using KNS for KDE 4.0===
    * Edu progs: KAnagram, KHangMan, KLettres, KStars, Parley, KWordQuiz
    * Kate
    * System Settings: used it for background in KDE 3, there's no background module now because plasma came. Plasma's wallpaper configuration dialog integrates KNS2.
    * Kopete is looking into a tight integration for KDE 4.1, KNS is disabled for 4.0 however.
     
    == Generic TODO ==
    * Rename KNS::Entry, and, consequentially, KNS::CompleteEntry
     
    === What still needs to be done (getting rid of the above section) ===
    * Merge DXS and GHNS download dialogs. Also check with usability guys.
    * Add networking capabilities to Plasmagik.
    * Finish the code for the metadata generation.
    * The Handler, to '''locally''' manage packages.
    * Write a cache removal strategy, that should be the last bit of the networking stuff.
    * The CompleteEntry class, used also by the Handler, used to retrive all the availeable informations from an already downloaded package (needs to be written in a more detailed fashion)
    * Anything else?
     
    == Other ==
     
    KNewStuff2 will store all the files in a specific dir. The layout of this dir, and all the related information can be found [[Projects/KNS2/Layout|here]].
     
    == Results of the IRC meeting / Tasklist ==
     
    === TODO ===
     
    * NN: link classes directly to tests to prevent unnecessary KNEWSTUFF_EXPORTs
    * NN: use multi-threading in the download dialogue to speed up the display
    * NN: explore KNS::Engine::cleanup() and why it isn't present
    * Josef: indicate entry's status (e.g. installed) in the entry list
     
    === DONE ===
     
    * Josef: [http://websvn.kde.org/branches/work/knewstuff2/knewstuff-polishing branches/work/knewstuff2/knewstuff-polishing]
    * Josef: re-enable test apps using cmake TEST parameter
    * Josef: move KDXSView class from the library to the tests
    * Dennis: Improve argument parsing for InstallCommand directive in .knsrc files (don't break whitespaces) and quote filename arguments (%f)
    * Josef: add kmail-style progress bars for async download indication
    ** mostly finished (http://new.kstuff.org/~josef/kns-progress2.png) except for cancellation
    * Jeremy: hardcode m_localregistrydir as configuring it through *.knsrc is not needed
     
    [[Category:KDE4]]

    Latest revision as of 22:23, 17 September 2008

    KNewStuff 2

    Who uses KNewStuff2

    API Discussion

    Classes will (mostly) be:

    PolishingWeek-end

    Bugs and regressions from 3.5

    • Unsorted is not needed as there's no other option
    • No feedback when something is downloaded, the user does not know when it is finished. => kmail-style progress bars
      • In CoreEngine::slotInstallationVerification(int result) signalInstallationFinished() and signalInstallationFailed() are emitted but not connected anywhere.
    • No feedback in the dialog that some items are already present (was done in 3.5 in the app by writing in config stuff entries then KNS picked that and displayed a green tick in the list)
      • In KDE 3.5 this code is in void DownloadDialog::install(Entry *e) in downloaddialog.cpp
    • The display of the list is slow, way slower than in KDE 3.5

    To implement

    • Upload
    • Engine Interface
    • fix blocking / simple API

    Programs using KNS for KDE 4.0

    • Edu progs: KAnagram, KHangMan, KLettres, KStars, Parley, KWordQuiz
    • Kate
    • System Settings: used it for background in KDE 3, there's no background module now because plasma came. Plasma's wallpaper configuration dialog integrates KNS2.
    • Kopete is looking into a tight integration for KDE 4.1, KNS is disabled for 4.0 however.

    Generic TODO

    • Rename KNS::Entry, and, consequentially, KNS::CompleteEntry

    What still needs to be done (getting rid of the above section)

    • Merge DXS and GHNS download dialogs. Also check with usability guys.
    • Add networking capabilities to Plasmagik.
    • Finish the code for the metadata generation.
    • The Handler, to locally manage packages.
    • Write a cache removal strategy, that should be the last bit of the networking stuff.
    • The CompleteEntry class, used also by the Handler, used to retrive all the availeable informations from an already downloaded package (needs to be written in a more detailed fashion)
    • Anything else?

    Other

    KNewStuff2 will store all the files in a specific dir. The layout of this dir, and all the related information can be found here.

    Results of the IRC meeting / Tasklist

    TODO

    • NN: link classes directly to tests to prevent unnecessary KNEWSTUFF_EXPORTs
    • NN: use multi-threading in the download dialogue to speed up the display
    • NN: explore KNS::Engine::cleanup() and why it isn't present
    • Josef: indicate entry's status (e.g. installed) in the entry list

    DONE

    • Josef: branches/work/knewstuff2/knewstuff-polishing
    • Josef: re-enable test apps using cmake TEST parameter
    • Josef: move KDXSView class from the library to the tests
    • Dennis: Improve argument parsing for InstallCommand directive in .knsrc files (don't break whitespaces) and quote filename arguments (%f)
    • Josef: add kmail-style progress bars for async download indication
    • Jeremy: hardcode m_localregistrydir as configuring it through *.knsrc is not needed