< Development‎ | Tutorials
Revision as of 17:07, 30 March 2008 by Jpwhiting (talk | contribs) (added desciption of install location configs)

The page that used to be here was all KDE3 specific information, so I figured it was about time to start a new one.


First some basic terminology just to get us all on the same page. KHotNewStuff2 is the new library that implements the GHNS freedesktop.org specification for downloading and uploading user data. It will also support DXS (Desktop Exchange Service)

Use it in your application

There are a many good examples for how to use khotnewstuff2 in the KDE-Edu module. Look at their source code for examples if needed, but it's basically a 2-part process to get download into your app.

1. First write a .knsrc file. A .knsrc file is just a file telling the library which options to use for a given application. It also lists where providers can be found, where uploads should be sent, etc. Anyway, the format of the file is an ini file with one group:

[KNewStuff2] ProvidersUrl= InstallationCommand= Uncompress=

NOTE: InstallationCommand is optional, and if included will be invoked after each item is downloaded.
NOTE: Uncompress is optional, and if included will try to uncompress all downloads into the target folder according to the mime-type of the file.

One of the following to tell where downloads should go: TargetDir= InstallPath= StandardResource=

  • TargetDir installs to KStandardDirs::locateLocal("data") + TargetDir + "/"
  • StandardResource installs to KStandardDirs::locateLocal(StandardResource)
  • InstallPath installs to QDir::home().path() + "/" + InstallPath

And the following values are currently read, though not used yet: CustomName= CachePolicy= ChecksumPolicy= SignaturePolicy= Scope=

install the file using CMake install macro like this

install( FILES yourdata.knsrc DESTINATION ${CONFIG_INSTALL_DIR} )

at this point, you can test your knsrc file with khotnewstuff4 like so:

khotnewstuff4 yourdata.knsrc

it should show you a download dialog of the data available on your provider(s).

2. Make your application launch the KNS ui with your knsrc file.

Content is available under Creative Commons License SA 4.0 unless otherwise noted.