Ejemplo n.º 1
0
// delete a stream by a button
void RSSImp::deleteSelectedItems()
{
    QList<QTreeWidgetItem*> selectedItems = m_feedList->selectedItems();
    if (selectedItems.isEmpty())
        return;
    if ((selectedItems.size() == 1) && (selectedItems.first() == m_feedList->stickyUnreadItem()))
        return;

    QMessageBox::StandardButton answer = QMessageBox::question(this, tr("Deletion confirmation"),
        tr("Are you sure you want to delete the selected RSS feeds?"),
        QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
    if (answer == QMessageBox::No)
        return;

    foreach (QTreeWidgetItem* item, selectedItems) {
        if (m_feedList->currentFeed() == item) {
            textBrowser->clear();
            m_currentArticle = 0;
            listArticles->clear();
        }
        if (item == m_feedList->stickyUnreadItem())
            continue;
        RssFilePtr rss_item = m_feedList->getRSSItem(item);
        QTreeWidgetItem* parent = item->parent();
        // Notify TreeWidget
        m_feedList->itemAboutToBeRemoved(item);
        // Actually delete the item
        rss_item->parent()->removeChild(rss_item->id());
        delete item;
        // Update parents count
        while (parent && parent != m_feedList->invisibleRootItem()) {
            updateItemInfos (parent);
            parent = parent->parent();
        }
        // Clear feed data from RSS parser (possible caching).
        RssFeed* rssFeed = dynamic_cast<RssFeed*>(rss_item.data());
        if (rssFeed)
            m_rssManager->rssParser()->clearFeedData(rssFeed->url());
    }
    m_rssManager->saveStreamList();
    // Update Unread items
    updateItemInfos(m_feedList->stickyUnreadItem());
}
Ejemplo n.º 2
0
// delete a stream by a button
void RSSImp::deleteSelectedItems()
{
    QList<QTreeWidgetItem*> selectedItems = m_feedList->selectedItems();
    if (selectedItems.isEmpty())
        return;
    if ((selectedItems.size() == 1) && (selectedItems.first() == m_feedList->stickyUnreadItem()))
        return;

    QMessageBox::StandardButton answer = QMessageBox::question(this, tr("Deletion confirmation"),
        tr("Are you sure you want to delete the selected RSS feeds?"),
        QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
    if (answer == QMessageBox::No)
        return;

    foreach (QTreeWidgetItem* item, selectedItems) {
        if (item == m_feedList->stickyUnreadItem())
            continue;
        Rss::FilePtr rss_item = m_feedList->getRSSItem(item);
        QTreeWidgetItem* parent = item->parent();
        // Notify TreeWidget
        m_feedList->itemAboutToBeRemoved(item);
        // Actually delete the item
        rss_item->parentFolder()->removeChild(rss_item->id());
        delete item;
        // Update parents count
        while (parent && (parent != m_feedList->invisibleRootItem())) {
            updateItemInfos(parent);
            parent = parent->parent();
        }
    }
    m_rssManager->saveStreamList();
    // Update Unread items
    updateItemInfos(m_feedList->stickyUnreadItem());
    if (m_feedList->currentItem() == m_feedList->stickyUnreadItem())
        populateArticleList(m_feedList->stickyUnreadItem());

}