diff --git a/src/core/feedsmodel.cpp b/src/core/feedsmodel.cpp index 6b4ee2a30..6563466d5 100755 --- a/src/core/feedsmodel.cpp +++ b/src/core/feedsmodel.cpp @@ -564,14 +564,8 @@ QList FeedsModel::feedsForScheduledUpdate(bool auto_update_now) { return feeds_for_update; } -QList FeedsModel::messagesForFeeds(const QList &feeds) { - QList messages; - - foreach (Feed *feed, feeds) { - messages.append(feed->undeletedMessages()); - } - - return messages; +QList FeedsModel::messagesForItem(RootItem *item) { + return item->undeletedMessages(); } int FeedsModel::columnCount(const QModelIndex &parent) const { diff --git a/src/core/feedsmodel.h b/src/core/feedsmodel.h index 4379ce681..73c641b6c 100755 --- a/src/core/feedsmodel.h +++ b/src/core/feedsmodel.h @@ -98,7 +98,7 @@ class FeedsModel : public QAbstractItemModel { // Returns (undeleted) messages for given feeds. // This is usually used for displaying whole feeds // in "newspaper" mode. - QList messagesForFeeds(const QList &feeds); + QList messagesForItem(RootItem *item); // Returns list of all categories contained in the model. QList allCategories(); diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 45c135a7c..f17d806a1 100755 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -271,11 +271,11 @@ void FeedMessageViewer::createConnections() { connect(form_main->m_ui->m_actionMarkAllItemsRead, SIGNAL(triggered()), m_feedsView, SLOT(markAllItemsRead())); connect(form_main->m_ui->m_actionMarkSelectedItemsAsRead, - SIGNAL(triggered()), m_feedsView, SLOT(markSelectedItemsRead())); + SIGNAL(triggered()), m_feedsView, SLOT(markSelectedItemRead())); connect(form_main->m_ui->m_actionExpandCollapseItem, SIGNAL(triggered()), m_feedsView, SLOT(expandCollapseCurrentItem())); connect(form_main->m_ui->m_actionMarkSelectedItemsAsUnread, - SIGNAL(triggered()), m_feedsView, SLOT(markSelectedItemsUnread())); + SIGNAL(triggered()), m_feedsView, SLOT(markSelectedItemUnread())); connect(form_main->m_ui->m_actionClearSelectedItems, SIGNAL(triggered()), m_feedsView, SLOT(clearSelectedFeeds())); connect(form_main->m_ui->m_actionClearAllItems, diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index fa51aee30..34652e5e5 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -249,11 +249,11 @@ void FeedsView::markSelectedItemReadStatus(RootItem::ReadStatus read) { m_sourceModel->markItemRead(selectedItem(), read); } -void FeedsView::markSelectedItemsRead() { +void FeedsView::markSelectedItemRead() { markSelectedItemReadStatus(RootItem::Read); } -void FeedsView::markSelectedItemsUnread() { +void FeedsView::markSelectedItemUnread() { markSelectedItemReadStatus(RootItem::Unread); } @@ -266,11 +266,11 @@ void FeedsView::markAllItemsRead() { } void FeedsView::openSelectedItemsInNewspaperMode() { - QList messages = m_sourceModel->messagesForFeeds(selectedFeeds()); + QList messages = m_sourceModel->messagesForItem(selectedItem()); if (!messages.isEmpty()) { emit openMessagesInNewspaperView(messages); - QTimer::singleShot(0, this, SLOT(markSelectedItemsRead())); + QTimer::singleShot(0, this, SLOT(markSelectedItemRead())); } } diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h index f80a9a250..4932fe68c 100755 --- a/src/gui/feedsview.h +++ b/src/gui/feedsview.h @@ -69,8 +69,8 @@ class FeedsView : public QTreeView { void updateSelectedItems(); // Feed read/unread manipulators. - void markSelectedItemsRead(); - void markSelectedItemsUnread(); + void markSelectedItemRead(); + void markSelectedItemUnread(); void markAllItemsRead(); // Newspaper accessors. diff --git a/src/services/abstract/feed.h b/src/services/abstract/feed.h index d17befd84..459f4e6cf 100755 --- a/src/services/abstract/feed.h +++ b/src/services/abstract/feed.h @@ -61,9 +61,6 @@ class Feed : public RootItem { // messages. virtual int update() = 0; - // Get ALL undeleted messages from this feed in one single list. - virtual QList undeletedMessages() const = 0; - ///////////////////////////////////////// // Members to override. */ ///////////////////////////////////////// diff --git a/src/services/abstract/rootitem.cpp b/src/services/abstract/rootitem.cpp index d9c4ca476..ea9962cbb 100755 --- a/src/services/abstract/rootitem.cpp +++ b/src/services/abstract/rootitem.cpp @@ -62,22 +62,20 @@ bool RootItem::deleteViaGui() { return false; } -bool RootItem::canBeMarkedAsReadUnread(ReadStatus status) { - return true; -} - bool RootItem::markAsReadUnread(ReadStatus status) { bool result = true; foreach (RootItem *child, m_childItems) { - if (child->canBeMarkedAsReadUnread(status)) { - result &= child->markAsReadUnread(status); - } + result &= child->markAsReadUnread(status); } return result; } +QList RootItem::undeletedMessages() const { + return QList(); +} + bool RootItem::cleanMessages(bool clear_only_read) { bool result = true; diff --git a/src/services/abstract/rootitem.h b/src/services/abstract/rootitem.h index 876fe1149..54b9be830 100755 --- a/src/services/abstract/rootitem.h +++ b/src/services/abstract/rootitem.h @@ -18,6 +18,8 @@ #ifndef ROOTITEM_H #define ROOTITEM_H +#include "core/message.h" + #include #include #include @@ -92,13 +94,14 @@ class RootItem : public QObject { // Returns result status. virtual bool deleteViaGui(); - // Can this item be marked read/unread? - virtual bool canBeMarkedAsReadUnread(ReadStatus status); - // Performs all needed steps (DB update, remote server update) // to mark this item as read/unread. virtual bool markAsReadUnread(ReadStatus status); + // Get ALL undeleted messages from this item in one single list. + // This is currently used for displaying items in "newspaper mode". + virtual QList undeletedMessages() const; + // This method should "clean" all messages it contains. // What "clean" means? It means delete messages -> move them to recycle bin // or eventually remove them completely if there is no recycle bin functionality.