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;
}
QList<Message> FeedsModel::messagesForFeeds(const QList<Feed*> &feeds) {
QList<Message> messages;
foreach (Feed *feed, feeds) {
messages.append(feed->undeletedMessages());
}
return messages;
QList<Message> FeedsModel::messagesForItem(RootItem *item) {
return item->undeletedMessages();
}
int FeedsModel::columnCount(const QModelIndex &parent) const {

View File

@ -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<Message> messagesForFeeds(const QList<Feed*> &feeds);
QList<Message> messagesForItem(RootItem *item);
// Returns list of all categories contained in the model.
QList<Category*> allCategories();

View File

@ -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,

View File

@ -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<Message> messages = m_sourceModel->messagesForFeeds(selectedFeeds());
QList<Message> messages = m_sourceModel->messagesForItem(selectedItem());
if (!messages.isEmpty()) {
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();
// Feed read/unread manipulators.
void markSelectedItemsRead();
void markSelectedItemsUnread();
void markSelectedItemRead();
void markSelectedItemUnread();
void markAllItemsRead();
// Newspaper accessors.

View File

@ -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<Message> undeletedMessages() const = 0;
/////////////////////////////////////////
// Members to override. */
/////////////////////////////////////////

View File

@ -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<Message> RootItem::undeletedMessages() const {
return QList<Message>();
}
bool RootItem::cleanMessages(bool clear_only_read) {
bool result = true;

View File

@ -18,6 +18,8 @@
#ifndef ROOTITEM_H
#define ROOTITEM_H
#include "core/message.h"
#include <QIcon>
#include <QDateTime>
#include <QFont>
@ -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<Message> 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.