// 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()); }
// 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()); }