From 74c32a0ecd9c84473c5948432f389675926823c1 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sat, 29 Jan 2011 14:10:08 +0000 Subject: [PATCH] Rss code clean up --- src/rss/rss_imp.cpp | 2 +- src/rss/rssdownloadrule.cpp | 9 ++++++--- src/rss/rssdownloadrulelist.cpp | 9 +++++---- src/rss/rssdownloadrulelist.h | 3 +-- src/rss/rssfeed.cpp | 4 ++-- src/rss/rssfeed.h | 5 +++-- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/rss/rss_imp.cpp b/src/rss/rss_imp.cpp index f11273ca9..267b7b755 100644 --- a/src/rss/rss_imp.cpp +++ b/src/rss/rss_imp.cpp @@ -648,7 +648,7 @@ RSSImp::RSSImp(QWidget *parent) : QWidget(parent) { connect(m_feedList, SIGNAL(overwriteAttempt(QString)), this, SLOT(displayOverwriteError(QString))); connect(listArticles, SIGNAL(itemSelectionChanged()), this, SLOT(refreshTextBrowser())); - connect(listArticles, SIGNAL(itemDoubleClicked(QListWidgetItem *, int)), this, SLOT(downloadTorrent())); + connect(listArticles, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(downloadTorrent())); // Refresh all feeds m_rssManager->refresh(); diff --git a/src/rss/rssdownloadrule.cpp b/src/rss/rssdownloadrule.cpp index 2895e96ec..7c1718de6 100644 --- a/src/rss/rssdownloadrule.cpp +++ b/src/rss/rssdownloadrule.cpp @@ -129,9 +129,12 @@ void RssDownloadRule::setSavePath(const QString &save_path) QStringList RssDownloadRule::findMatchingArticles(const RssFeed *feed) const { QStringList ret; - foreach(const RssArticle &art, feed->articleList()) { - if(matches(art.title())) - ret << art.title(); + const QHash& feed_articles = feed->articleListNoCopy(); + QHash::const_iterator artIt; + for(artIt = feed_articles.begin(); artIt != feed_articles.end(); artIt++) { + const QString title = artIt.value().title(); + if(matches(title)) + ret << title; } return ret; } diff --git a/src/rss/rssdownloadrulelist.cpp b/src/rss/rssdownloadrulelist.cpp index 62c05feb6..f259475fa 100644 --- a/src/rss/rssdownloadrulelist.cpp +++ b/src/rss/rssdownloadrulelist.cpp @@ -58,9 +58,9 @@ void RssDownloadRuleList::drop() RssDownloadRule RssDownloadRuleList::findMatchingRule(const QString &feed_url, const QString &article_title) const { Q_ASSERT(RssSettings().isRssDownloadingEnabled()); - QStringList rule_names = feedRules(feed_url); + const QStringList rule_names = m_feedRules.value(feed_url); foreach(const QString &rule_name, rule_names) { - RssDownloadRule rule = m_rules[rule_name]; + const RssDownloadRule &rule = m_rules[rule_name]; if(rule.isEnabled() && rule.matches(article_title)) return rule; } return RssDownloadRule(); @@ -172,9 +172,10 @@ void RssDownloadRuleList::renameRule(const QString &old_name, const QString &new saveRulesToStorage(); } -RssDownloadRule RssDownloadRuleList::getRule(const QString &name) const +const RssDownloadRule RssDownloadRuleList::getRule(const QString &name) const { - return m_rules.value(name); + Q_ASSERT(m_rules.contains(name)); + return m_rules[name]; } bool RssDownloadRuleList::serialize(const QString& path) diff --git a/src/rss/rssdownloadrulelist.h b/src/rss/rssdownloadrulelist.h index 23834e007..1be5f5265 100644 --- a/src/rss/rssdownloadrulelist.h +++ b/src/rss/rssdownloadrulelist.h @@ -54,7 +54,7 @@ public: void saveRule(const RssDownloadRule &rule); void removeRule(const QString &name); void renameRule(const QString &old_name, const QString &new_name); - RssDownloadRule getRule(const QString &name) const; + const RssDownloadRule getRule(const QString &name) const; inline QStringList ruleNames() const { return m_rules.keys(); } inline bool isEmpty() const { return m_rules.isEmpty(); } bool serialize(const QString& path); @@ -67,7 +67,6 @@ private: void loadRulesFromVariantHash(const QVariantHash& l); QVariantHash toVariantHash() const; void saveRulesToStorage(); - inline QStringList feedRules(const QString &feed_url) const { return m_feedRules[feed_url]; } private: QHash m_rules; diff --git a/src/rss/rssfeed.cpp b/src/rss/rssfeed.cpp index 28b28ef3c..18f2f5eb9 100644 --- a/src/rss/rssfeed.cpp +++ b/src/rss/rssfeed.cpp @@ -162,7 +162,7 @@ RssArticle& RssFeed::getItem(const QString &id) { return m_articles[id]; } -unsigned int RssFeed::getNbNews() const{ +uint RssFeed::count() const{ return m_articles.size(); } @@ -174,7 +174,7 @@ void RssFeed::markAsRead() { RssManager::instance()->forwardFeedInfosChanged(m_url, displayName(), 0); } -unsigned int RssFeed::unreadCount() const{ +uint RssFeed::unreadCount() const{ uint nbUnread=0; foreach(const RssArticle &item, m_articles.values()) { if(!item.isRead()) diff --git a/src/rss/rssfeed.h b/src/rss/rssfeed.h index 2ea6f071a..23b0dfebe 100644 --- a/src/rss/rssfeed.h +++ b/src/rss/rssfeed.h @@ -60,10 +60,11 @@ public: bool hasCustomIcon() const; void setIconPath(const QString &pathHierarchy); RssArticle& getItem(const QString &name); - unsigned int getNbNews() const; + uint count() const; void markAsRead(); - unsigned int unreadCount() const; + uint unreadCount() const; QList articleList() const; + const QHash& articleListNoCopy() const { return m_articles; } QList unreadArticleList() const; signals: