Development/Tutorials/Collaboration/HotNewStuff/Updates: Difference between revisions

    From KDE TechBase
    (Created page with '{{Template:I18n/Language Navigation Bar|Development/Tutorials/Collaboration/HotNewStuff/Updates}} {{TutorialBrowser| series=HotNewStuff| name=Get Hot New Stuff 3 Introd...')
     
    No edit summary
    (8 intermediate revisions by 2 users not shown)
    Line 1: Line 1:
    {{Template:I18n/Language Navigation Bar|Development/Tutorials/Collaboration/HotNewStuff/Updates}}
     


    {{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]
    }}  
    }}  


    == Overview  ==
    == Overview  ==
    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 [http://websvn.kde.org/trunk/KDE/kdeexamples/knewstuff/updatechecker/ kdeexamples].
    == DownloadManager ==
    The class in question is DownloadManager.
    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.
    <syntaxhighlight lang="cpp-qt">
    void UpdateChecker::slotUpdatesFound(const KNS3::Entry::List& updates)
    {
        m_updates = updates;
        foreach (const KNS3::Entry& entry, updates) {
            kDebug() << entry.name();
        }
    }</syntaxhighlight>
    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);
    </syntaxhighlight>

    Revision as of 15:45, 19 July 2012


    Get Hot New Stuff 3 Introduction
    Tutorial Series   HotNewStuff
    Previous   Get Hot New Stuff 3 - Download
    What's Next   Get Hot New Stuff 3 - Upload
    Further Reading   API Documentation

    Overview

    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.

    DownloadManager

    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);