From e780d83fd0e9488113a0715ee38d81f41e0d2197 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Fri, 28 Aug 2009 17:29:34 +0000 Subject: [PATCH] - Stop displaying items after they were read in "unread" news. --- src/rss_imp.cpp | 10 ++++++++++ src/rss_imp.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/rss_imp.cpp b/src/rss_imp.cpp index e19b1332a..d04a69c82 100644 --- a/src/rss_imp.cpp +++ b/src/rss_imp.cpp @@ -201,6 +201,7 @@ void RSSImp::deleteSelectedItems() { foreach(QTreeWidgetItem *item, selectedItems){ if(listStreams->currentFeed() == item){ textBrowser->clear(); + previous_news = 0; listNews->clear(); } RssFile *rss_item = listStreams->getRSSItem(item); @@ -412,6 +413,7 @@ void RSSImp::refreshNewsList(QTreeWidgetItem* item) { news = sortNewsList(rss_item->getNewsList()); // Clear the list first textBrowser->clear(); + previous_news = 0; listNews->clear(); qDebug("Got the list of news"); foreach(RssItem* article, news){ @@ -433,6 +435,14 @@ void RSSImp::refreshNewsList(QTreeWidgetItem* item) { // display a news void RSSImp::refreshTextBrowser(QTreeWidgetItem *item) { if(!item) return; + // Stop displaying previous news if necessary + if(listStreams->currentFeed() == listStreams->getUnreadItem()) { + if(previous_news) { + delete previous_news; + previous_news = 0; + } + previous_news = item; + } RssStream *stream = listStreams->getRSSItemFromUrl(item->text(1)); RssItem* article = stream->getItem(item->text(0)); QString html; diff --git a/src/rss_imp.h b/src/rss_imp.h index 0f16a4b1c..c1fb246a0 100644 --- a/src/rss_imp.h +++ b/src/rss_imp.h @@ -32,6 +32,8 @@ #define REFRESH_MAX_LATENCY 600000 +#include + #include "ui_rss.h" #include "rss.h" @@ -46,6 +48,7 @@ private: RssManager *rssmanager; bittorrent *BTSession; FeedList *listStreams; + QTreeWidgetItem* previous_news; public slots: void deleteSelectedItems();