From 46c6c4fc9a9c67662cef33de7f31d3a30572db95 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 23 Aug 2009 13:20:26 +0000 Subject: [PATCH] - UpdateSelectedItems() now sets loading.png icon for all feeds included in selected folders --- src/feedList.h | 14 ++++++++++++++ src/rss_imp.cpp | 20 +++++++++++++------- src/rss_imp.h | 2 +- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/feedList.h b/src/feedList.h index a7a9b9a32..a0cbb3ef2 100644 --- a/src/feedList.h +++ b/src/feedList.h @@ -50,6 +50,20 @@ public: return feeds_items.values(); } + QList getAllFeedItems(QTreeWidgetItem* folder) { + QList feeds; + int nbChildren = folder->childCount(); + for(int i=0; ichild(i); + if(getItemType(item) == RssFile::STREAM) { + feeds << item; + } else { + feeds.append(getAllFeedItems(item)); + } + } + return feeds; + } + RssFile* getRSSItem(QTreeWidgetItem *item) { return mapping[item]; } diff --git a/src/rss_imp.cpp b/src/rss_imp.cpp index 6221b2dce..e7e6fb2b5 100644 --- a/src/rss_imp.cpp +++ b/src/rss_imp.cpp @@ -252,15 +252,21 @@ void RSSImp::renameFiles() { } //right-click on stream : refresh it -void RSSImp::refreshSelectedStreams() { +void RSSImp::refreshSelectedItems() { QList selectedItems = listStreams->selectedItems(); - QTreeWidgetItem* item; - foreach(item, selectedItems){ + foreach(QTreeWidgetItem* item, selectedItems){ RssFile* file = listStreams->getRSSItem(item); - file->refresh(); - // FIXME: Should recursively set icons for feeds in a folder - if(file->getType() == RssFile::STREAM) + // Update icons + if(file->getType() == RssFile::STREAM) { item->setData(0,Qt::DecorationRole, QVariant(QIcon(":/Icons/loading.png"))); + } else { + // Update feeds in the folder + foreach(QTreeWidgetItem *feed, listStreams->getAllFeedItems(item)) { + feed->setData(0,Qt::DecorationRole, QVariant(QIcon(":/Icons/loading.png"))); + } + } + // Actually refresh + file->refresh(); } } @@ -452,7 +458,7 @@ RSSImp::RSSImp(bittorrent *BTSession) : QWidget(), BTSession(BTSession){ // Feeds list actions connect(actionDelete, SIGNAL(triggered()), this, SLOT(deleteSelectedItems())); connect(actionRename, SIGNAL(triggered()), this, SLOT(renameFiles())); - connect(actionUpdate, SIGNAL(triggered()), this, SLOT(refreshSelectedStreams())); + connect(actionUpdate, SIGNAL(triggered()), this, SLOT(refreshSelectedItems())); connect(actionNew_folder, SIGNAL(triggered()), this, SLOT(askNewFolder())); connect(actionNew_subscription, SIGNAL(triggered()), this, SLOT(on_newFeedButton_clicked())); connect(actionUpdate_all_feeds, SIGNAL(triggered()), this, SLOT(on_updateAllButton_clicked())); diff --git a/src/rss_imp.h b/src/rss_imp.h index 87b44e80d..b81cd1a69 100644 --- a/src/rss_imp.h +++ b/src/rss_imp.h @@ -57,7 +57,7 @@ protected slots: void displayRSSListMenu(const QPoint&); void displayItemsListMenu(const QPoint&); void renameFiles(); - void refreshSelectedStreams(); + void refreshSelectedItems(); void copySelectedFeedsURL(); void refreshNewsList(QTreeWidgetItem* item); void refreshTextBrowser(QListWidgetItem *);