(→DownloadManager) |
|||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | ||
{{TutorialBrowser| | {{TutorialBrowser| | ||
| Line 6: | Line 6: | ||
pre=[[Development/Tutorials/Collaboration/HotNewStuff/Introduction|Get Hot New Stuff 3 - Download]]| | pre=[[Development/Tutorials/Collaboration/HotNewStuff/Introduction|Get Hot New Stuff 3 - Download]]| | ||
next=[[Development/Tutorials/Collaboration/HotNewStuff/Upload|Get Hot New Stuff 3 - Upload]]| | next=[[Development/Tutorials/Collaboration/HotNewStuff/Upload|Get Hot New Stuff 3 - Upload]]| | ||
| + | reading=[http://api.kde.org/4.x-api/kdelibs-apidocs/knewstuff/html/classKNS3_1_1DownloadManager.html API Documentation] | ||
}} | }} | ||
| Line 17: | Line 18: | ||
Use an instance of DownloadManager in your class: | Use an instance of DownloadManager in your class: | ||
| − | < | + | <syntaxhighlight lang="cpp-qt"> |
| − | + | m_downloadManager = new KNS3::DownloadManager("plasmoids.knsrc", this); | |
| − | + | ||
| − | + | // to know when checking for updates is done | |
| − | + | connect(m_downloadManager, SIGNAL(searchResult(KNS3::Entry::List)), | |
| − | + | this, SLOT(slotUpdatesFound(KNS3::Entry::List))); | |
| − | + | ||
| − | + | // to know about finished installations | |
| − | + | connect(m_downloadManager, SIGNAL(entryStatusChanged(KNS3::Entry)), | |
| − | </ | + | this, SLOT(entryStatusChanged(KNS3::Entry))); |
| + | |||
| + | // start checking for updates | ||
| + | m_downloadManager->checkForUpdates(); | ||
| + | </syntaxhighlight> | ||
The entryStatusChanged signal informs you when you installed an entry. If you don't want to make use of that possibility, you can ignore the signal. | The entryStatusChanged signal informs you when you installed an entry. If you don't want to make use of that possibility, you can ignore the signal. | ||
| − | < | + | <syntaxhighlight lang="cpp-qt"> |
void UpdateChecker::slotUpdatesFound(const KNS3::Entry::List& updates) | void UpdateChecker::slotUpdatesFound(const KNS3::Entry::List& updates) | ||
{ | { | ||
| Line 36: | Line 41: | ||
kDebug() << entry.name(); | kDebug() << entry.name(); | ||
} | } | ||
| − | }</ | + | }</syntaxhighlight> |
| − | To install an entry you can show the download dialog or do it without the dialog by using: | + | To install an entry you can '''show the download dialog''' or do it without the dialog by using: |
| − | < | + | <syntaxhighlight lang="cpp-qt"> |
m_downloadManager->installEntry(entry); | m_downloadManager->installEntry(entry); | ||
| − | </ | + | </syntaxhighlight> |
| Tutorial Series | HotNewStuff |
| Previous | Get Hot New Stuff 3 - Download |
| What's Next | Get Hot New Stuff 3 - Upload |
| Further Reading | API Documentation |
Just like firefox informs you of updates to your addons, KNewStuff can let you check for updates since KDE SC 4.5.
There is an example in kdeexamples.
The class in question is DownloadManager.
Use an instance of DownloadManager in your class:
m_downloadManager = new KNS3::DownloadManager("plasmoids.knsrc", this); // to know when checking for updates is done connect(m_downloadManager, SIGNAL(searchResult(KNS3::Entry::List)), this, SLOT(slotUpdatesFound(KNS3::Entry::List))); // to know about finished installations connect(m_downloadManager, SIGNAL(entryStatusChanged(KNS3::Entry)), this, SLOT(entryStatusChanged(KNS3::Entry))); // start checking for updates m_downloadManager->checkForUpdates();
The entryStatusChanged signal informs you when you installed an entry. If you don't want to make use of that possibility, you can ignore the signal.
void UpdateChecker::slotUpdatesFound(const KNS3::Entry::List& updates) { m_updates = updates; foreach (const KNS3::Entry& entry, updates) { kDebug() << entry.name(); } }
To install an entry you can show the download dialog or do it without the dialog by using:
m_downloadManager->installEntry(entry);