From 9b121fd5d04dc77dfb15f4203461cdb034e02642 Mon Sep 17 00:00:00 2001 From: Nick Tiskov Date: Mon, 28 Jan 2013 14:53:04 +0400 Subject: [PATCH] Save article 'read' state on exit --- src/rss/rssarticle.cpp | 1 + src/rss/rssfeed.cpp | 9 +++++++-- src/rss/rssfeed.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/rss/rssarticle.cpp b/src/rss/rssarticle.cpp index 5267bd991..4b825a7c7 100644 --- a/src/rss/rssarticle.cpp +++ b/src/rss/rssarticle.cpp @@ -108,6 +108,7 @@ void RssArticle::markAsRead() { m_read = true; m_parent->decrementUnreadCount(); + m_parent->markAsDirty(); } const QString& RssArticle::guid() const diff --git a/src/rss/rssfeed.cpp b/src/rss/rssfeed.cpp index 21aca08c9..f39939702 100644 --- a/src/rss/rssfeed.cpp +++ b/src/rss/rssfeed.cpp @@ -83,7 +83,7 @@ void RssFeed::saveItemsToDisk() qDebug() << Q_FUNC_INFO << m_url; if (!m_dirty) return; - m_dirty = false; + markAsDirty(false); QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); QVariantList old_items; @@ -248,6 +248,11 @@ void RssFeed::markAsRead() m_manager->forwardFeedInfosChanged(m_url, displayName(), 0); } +void RssFeed::markAsDirty(bool dirty) +{ + m_dirty = dirty; +} + uint RssFeed::unreadCount() const { return m_unreadCount; @@ -356,7 +361,7 @@ void RssFeed::handleNewArticle(const QString& feedUrl, const QVariantHash& artic if (m_articles.contains(guid)) return; - m_dirty = true; + markAsDirty(); RssArticlePtr article = hashToRssArticle(this, articleData); Q_ASSERT(article); diff --git a/src/rss/rssfeed.h b/src/rss/rssfeed.h index ff82697a3..c8bd956b3 100644 --- a/src/rss/rssfeed.h +++ b/src/rss/rssfeed.h @@ -72,6 +72,7 @@ public: RssArticlePtr getItem(const QString &guid) const; uint count() const; virtual void markAsRead(); + void markAsDirty(bool dirty = true); virtual uint unreadCount() const; virtual RssArticleList articleListByDateDesc() const; const RssArticleHash& articleHash() const { return m_articles; }