Some refactoring.

This commit is contained in:
Martin Rotter 2015-12-11 10:13:42 +01:00
parent fe9efa6202
commit 562ea97ffa
8 changed files with 22 additions and 30 deletions

View File

@ -564,14 +564,8 @@ QList<Feed*> FeedsModel::feedsForScheduledUpdate(bool auto_update_now) {
return feeds_for_update; return feeds_for_update;
} }
QList<Message> FeedsModel::messagesForFeeds(const QList<Feed*> &feeds) { QList<Message> FeedsModel::messagesForItem(RootItem *item) {
QList<Message> messages; return item->undeletedMessages();
foreach (Feed *feed, feeds) {
messages.append(feed->undeletedMessages());
}
return messages;
} }
int FeedsModel::columnCount(const QModelIndex &parent) const { int FeedsModel::columnCount(const QModelIndex &parent) const {

View File

@ -98,7 +98,7 @@ class FeedsModel : public QAbstractItemModel {
// Returns (undeleted) messages for given feeds. // Returns (undeleted) messages for given feeds.
// This is usually used for displaying whole feeds // This is usually used for displaying whole feeds
// in "newspaper" mode. // in "newspaper" mode.
QList<Message> messagesForFeeds(const QList<Feed*> &feeds); QList<Message> messagesForItem(RootItem *item);
// Returns list of all categories contained in the model. // Returns list of all categories contained in the model.
QList<Category*> allCategories(); QList<Category*> allCategories();

View File

@ -271,11 +271,11 @@ void FeedMessageViewer::createConnections() {
connect(form_main->m_ui->m_actionMarkAllItemsRead, connect(form_main->m_ui->m_actionMarkAllItemsRead,
SIGNAL(triggered()), m_feedsView, SLOT(markAllItemsRead())); SIGNAL(triggered()), m_feedsView, SLOT(markAllItemsRead()));
connect(form_main->m_ui->m_actionMarkSelectedItemsAsRead, 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, connect(form_main->m_ui->m_actionExpandCollapseItem,
SIGNAL(triggered()), m_feedsView, SLOT(expandCollapseCurrentItem())); SIGNAL(triggered()), m_feedsView, SLOT(expandCollapseCurrentItem()));
connect(form_main->m_ui->m_actionMarkSelectedItemsAsUnread, 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, connect(form_main->m_ui->m_actionClearSelectedItems,
SIGNAL(triggered()), m_feedsView, SLOT(clearSelectedFeeds())); SIGNAL(triggered()), m_feedsView, SLOT(clearSelectedFeeds()));
connect(form_main->m_ui->m_actionClearAllItems, connect(form_main->m_ui->m_actionClearAllItems,

View File

@ -249,11 +249,11 @@ void FeedsView::markSelectedItemReadStatus(RootItem::ReadStatus read) {
m_sourceModel->markItemRead(selectedItem(), read); m_sourceModel->markItemRead(selectedItem(), read);
} }
void FeedsView::markSelectedItemsRead() { void FeedsView::markSelectedItemRead() {
markSelectedItemReadStatus(RootItem::Read); markSelectedItemReadStatus(RootItem::Read);
} }
void FeedsView::markSelectedItemsUnread() { void FeedsView::markSelectedItemUnread() {
markSelectedItemReadStatus(RootItem::Unread); markSelectedItemReadStatus(RootItem::Unread);
} }
@ -266,11 +266,11 @@ void FeedsView::markAllItemsRead() {
} }
void FeedsView::openSelectedItemsInNewspaperMode() { void FeedsView::openSelectedItemsInNewspaperMode() {
QList<Message> messages = m_sourceModel->messagesForFeeds(selectedFeeds()); QList<Message> messages = m_sourceModel->messagesForItem(selectedItem());
if (!messages.isEmpty()) { if (!messages.isEmpty()) {
emit openMessagesInNewspaperView(messages); emit openMessagesInNewspaperView(messages);
QTimer::singleShot(0, this, SLOT(markSelectedItemsRead())); QTimer::singleShot(0, this, SLOT(markSelectedItemRead()));
} }
} }

View File

@ -69,8 +69,8 @@ class FeedsView : public QTreeView {
void updateSelectedItems(); void updateSelectedItems();
// Feed read/unread manipulators. // Feed read/unread manipulators.
void markSelectedItemsRead(); void markSelectedItemRead();
void markSelectedItemsUnread(); void markSelectedItemUnread();
void markAllItemsRead(); void markAllItemsRead();
// Newspaper accessors. // Newspaper accessors.

View File

@ -61,9 +61,6 @@ class Feed : public RootItem {
// messages. // messages.
virtual int update() = 0; virtual int update() = 0;
// Get ALL undeleted messages from this feed in one single list.
virtual QList<Message> undeletedMessages() const = 0;
///////////////////////////////////////// /////////////////////////////////////////
// Members to override. */ // Members to override. */
///////////////////////////////////////// /////////////////////////////////////////

View File

@ -62,22 +62,20 @@ bool RootItem::deleteViaGui() {
return false; return false;
} }
bool RootItem::canBeMarkedAsReadUnread(ReadStatus status) {
return true;
}
bool RootItem::markAsReadUnread(ReadStatus status) { bool RootItem::markAsReadUnread(ReadStatus status) {
bool result = true; bool result = true;
foreach (RootItem *child, m_childItems) { foreach (RootItem *child, m_childItems) {
if (child->canBeMarkedAsReadUnread(status)) { result &= child->markAsReadUnread(status);
result &= child->markAsReadUnread(status);
}
} }
return result; return result;
} }
QList<Message> RootItem::undeletedMessages() const {
return QList<Message>();
}
bool RootItem::cleanMessages(bool clear_only_read) { bool RootItem::cleanMessages(bool clear_only_read) {
bool result = true; bool result = true;

View File

@ -18,6 +18,8 @@
#ifndef ROOTITEM_H #ifndef ROOTITEM_H
#define ROOTITEM_H #define ROOTITEM_H
#include "core/message.h"
#include <QIcon> #include <QIcon>
#include <QDateTime> #include <QDateTime>
#include <QFont> #include <QFont>
@ -92,13 +94,14 @@ class RootItem : public QObject {
// Returns result status. // Returns result status.
virtual bool deleteViaGui(); virtual bool deleteViaGui();
// Can this item be marked read/unread?
virtual bool canBeMarkedAsReadUnread(ReadStatus status);
// Performs all needed steps (DB update, remote server update) // Performs all needed steps (DB update, remote server update)
// to mark this item as read/unread. // to mark this item as read/unread.
virtual bool markAsReadUnread(ReadStatus status); 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<Message> undeletedMessages() const;
// This method should "clean" all messages it contains. // This method should "clean" all messages it contains.
// What "clean" means? It means delete messages -> move them to recycle bin // What "clean" means? It means delete messages -> move them to recycle bin
// or eventually remove them completely if there is no recycle bin functionality. // or eventually remove them completely if there is no recycle bin functionality.