diff --git a/src/base/rss/rss_folder.cpp b/src/base/rss/rss_folder.cpp index c4259fe70..2d05f3573 100644 --- a/src/base/rss/rss_folder.cpp +++ b/src/base/rss/rss_folder.cpp @@ -121,13 +121,23 @@ void Folder::addItem(Item *item) connect(item, &Item::articleRead, this, &Item::articleRead); connect(item, &Item::articleAboutToBeRemoved, this, &Item::articleAboutToBeRemoved); connect(item, &Item::unreadCountChanged, this, &Folder::handleItemUnreadCountChanged); - emit unreadCountChanged(this); + + for (auto article: item->articles()) + emit newArticle(article); + + if (item->unreadCount() > 0) + emit unreadCountChanged(this); } void Folder::removeItem(Item *item) { Q_ASSERT(m_items.contains(item)); + + for (auto article: item->articles()) + emit articleAboutToBeRemoved(article); + item->disconnect(this); m_items.removeOne(item); - emit unreadCountChanged(this); + if (item->unreadCount() > 0) + emit unreadCountChanged(this); }