Projects/KNS2

    From KDE TechBase
    The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

    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