From 3762c375175bd05ecf568b4cb27c83ec589af1fc Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 15 Nov 2009 08:53:33 +0000 Subject: [PATCH] - Take "RSS refresh interval" into consideration without restarting qBT --- src/GUI.cpp | 1 + src/preferences.h | 4 ++-- src/rss.cpp | 9 ++++++++- src/rss.h | 1 + src/rss_imp.cpp | 4 ++++ src/rss_imp.h | 1 + 6 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/GUI.cpp b/src/GUI.cpp index a3f71111a..d31e5bd18 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -825,6 +825,7 @@ void GUI::loadPreferences(bool configure_session) { // RSS if(Preferences::isRSSEnabled()) { displayRSSTab(true); + rssWidget->updateRefreshInterval(Preferences::getRefreshInterval()); } else { displayRSSTab(false); } diff --git a/src/preferences.h b/src/preferences.h index 4ea15634d..201717dcb 100644 --- a/src/preferences.h +++ b/src/preferences.h @@ -351,9 +351,9 @@ public: return settings.value(QString::fromUtf8("Preferences/RSS/RSSEnabled"), false).toBool(); } - static int getRSSRefreshInterval() { + static unsigned int getRSSRefreshInterval() { QSettings settings("qBittorrent", "qBittorrent"); - return settings.value(QString::fromUtf8("Preferences/RSS/RSSRefresh"), 5).toInt(); + return settings.value(QString::fromUtf8("Preferences/RSS/RSSRefresh"), 5).toUInt(); } static int getRSSMaxArticlesPerFeed() { diff --git a/src/rss.cpp b/src/rss.cpp index 3d52fa46d..235451955 100644 --- a/src/rss.cpp +++ b/src/rss.cpp @@ -291,6 +291,13 @@ RssManager::~RssManager(){ qDebug("RSSManager deleted"); } +void RssManager::updateRefreshInterval(unsigned int val){ + if(refreshInterval != val) { + refreshInterval = val; + newsRefresher.start(refreshInterval*60000); + } +} + void RssManager::loadStreamList(){ QSettings settings("qBittorrent", "qBittorrent"); QStringList streamsUrl = settings.value("Rss/streamList").toStringList(); @@ -611,7 +618,7 @@ short RssStream::readDoc(const QDomDocument& doc) { void RssStream::resizeList() { QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent")); - unsigned int max_articles = settings.value(QString::fromUtf8("Preferences/RSS/RSSMaxArticlesPerFeed"), 100).toInt(); + unsigned int max_articles = settings.value(QString::fromUtf8("Preferences/RSS/RSSMaxArticlesPerFeed"), 50).toInt(); unsigned int nb_articles = this->size(); if(nb_articles > max_articles) { QList listItem = RssManager::sortNewsList(this->values()); diff --git a/src/rss.h b/src/rss.h index 91300850f..199503645 100644 --- a/src/rss.h +++ b/src/rss.h @@ -488,6 +488,7 @@ public slots: void forwardFeedInfosChanged(QString url, QString aliasOrUrl, unsigned int nbUnread); void forwardFeedIconChanged(QString url, QString icon_path); void moveFile(RssFile* file, RssFolder* dest_folder); + void updateRefreshInterval(unsigned int val); public: RssManager(bittorrent *BTSession); diff --git a/src/rss_imp.cpp b/src/rss_imp.cpp index 1c633b6a7..1bbf0058f 100644 --- a/src/rss_imp.cpp +++ b/src/rss_imp.cpp @@ -561,6 +561,10 @@ void RSSImp::updateFeedInfos(QString url, QString aliasOrUrl, unsigned int nbUnr } } +void RSSImp::updateRefreshInterval(unsigned int val) { + rssmanager->updateRefreshInterval(val); +} + RSSImp::RSSImp(bittorrent *BTSession) : QWidget(), BTSession(BTSession){ setupUi(this); diff --git a/src/rss_imp.h b/src/rss_imp.h index f128e7350..ee5a830a7 100644 --- a/src/rss_imp.h +++ b/src/rss_imp.h @@ -52,6 +52,7 @@ private: public slots: void deleteSelectedItems(); + void updateRefreshInterval(unsigned int val); protected slots: void on_newFeedButton_clicked();