From cf6e721b00a1dc0f1b5b64007d2dc3cf9c1bb1fd Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sat, 14 Sep 2019 11:33:03 +0300 Subject: [PATCH] Allow to retry fetching RSS feeds --- src/base/rss/rss_feed.cpp | 6 ++++-- src/base/rss/rss_feed.h | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/base/rss/rss_feed.cpp b/src/base/rss/rss_feed.cpp index 0a9abf728..117c8e24e 100644 --- a/src/base/rss/rss_feed.cpp +++ b/src/base/rss/rss_feed.cpp @@ -125,11 +125,13 @@ void Feed::markAsRead() void Feed::refresh() { - if (isLoading()) return; + if (isLoading()) + m_downloadHandler->cancel(); // NOTE: Should we allow manually refreshing for disabled session? - Net::DownloadManager::instance()->download(m_url, this, &Feed::handleDownloadFinished); + m_downloadHandler = Net::DownloadManager::instance()->download(m_url); + connect(m_downloadHandler, &Net::DownloadHandler::finished, this, &Feed::handleDownloadFinished); m_isLoading = true; emit stateChanged(this); diff --git a/src/base/rss/rss_feed.h b/src/base/rss/rss_feed.h index 140d3aa92..5731f6ea1 100644 --- a/src/base/rss/rss_feed.h +++ b/src/base/rss/rss_feed.h @@ -41,6 +41,7 @@ class AsyncFileStorage; namespace Net { + class DownloadHandler; struct DownloadResult; } @@ -125,5 +126,6 @@ namespace RSS QString m_dataFileName; QBasicTimer m_savingTimer; bool m_dirty = false; + Net::DownloadHandler *m_downloadHandler = nullptr; }; }