Do some refactoring.
This commit is contained in:
parent
22eebcdef7
commit
b873dbcf33
8 changed files with 51 additions and 64 deletions
|
@ -18,6 +18,11 @@
|
|||
#include "services/abstract/feed.h"
|
||||
|
||||
#include "definitions/definitions.h"
|
||||
#include "miscellaneous/application.h"
|
||||
#include "miscellaneous/databasefactory.h"
|
||||
#include "services/abstract/serviceroot.h"
|
||||
|
||||
#include <QSqlQuery>
|
||||
|
||||
|
||||
Feed::Feed(RootItem *parent)
|
||||
|
@ -30,6 +35,36 @@ Feed::Feed(RootItem *parent)
|
|||
Feed::~Feed() {
|
||||
}
|
||||
|
||||
QList<Message> Feed::undeletedMessages() const {
|
||||
QList<Message> messages;
|
||||
int account_id = getParentServiceRoot()->accountId();
|
||||
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
|
||||
QSqlQuery query_read_msg(database);
|
||||
|
||||
query_read_msg.setForwardOnly(true);
|
||||
query_read_msg.prepare("SELECT * "
|
||||
"FROM Messages "
|
||||
"WHERE is_deleted = 0 AND is_pdeleted = 0 AND feed = :feed AND account_id = :account_id;");
|
||||
|
||||
query_read_msg.bindValue(QSL(":feed"), messageForeignKeyId());
|
||||
query_read_msg.bindValue(QSL(":account_id"), account_id);
|
||||
|
||||
if (query_read_msg.exec()) {
|
||||
while (query_read_msg.next()) {
|
||||
bool decoded;
|
||||
Message message = Message::fromSqlRecord(query_read_msg.record(), &decoded);
|
||||
|
||||
if (decoded) {
|
||||
messages.append(message);
|
||||
}
|
||||
|
||||
messages.append(message);
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
QVariant Feed::data(int column, int role) const {
|
||||
switch (role) {
|
||||
case Qt::ForegroundRole:
|
||||
|
|
|
@ -52,6 +52,8 @@ class Feed : public RootItem {
|
|||
explicit Feed(RootItem *parent = NULL);
|
||||
virtual ~Feed();
|
||||
|
||||
QList<Message> undeletedMessages() const;
|
||||
|
||||
int countOfAllMessages() const;
|
||||
int countOfUnreadMessages() const;
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ OwnCloudServiceRoot *OwnCloudFeed::serviceRoot() const {
|
|||
}
|
||||
|
||||
int OwnCloudFeed::update() {
|
||||
OwnCloudGetMessagesResponse headlines = serviceRoot()->network()->getMessages(customId());
|
||||
OwnCloudGetMessagesResponse messages = serviceRoot()->network()->getMessages(customId());
|
||||
|
||||
if (serviceRoot()->network()->lastError() != QNetworkReply::NoError) {
|
||||
setStatus(Feed::Error);
|
||||
|
|
|
@ -55,8 +55,20 @@ bool OwnCloudServiceRoot::editViaGui() {
|
|||
}
|
||||
|
||||
bool OwnCloudServiceRoot::deleteViaGui() {
|
||||
QSqlDatabase connection = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
|
||||
QSqlQuery query(connection);
|
||||
|
||||
query.setForwardOnly(true);
|
||||
query.prepare(QSL("DELETE FROM OwnCloudAccounts WHERE id = :id;"));
|
||||
query.bindValue(QSL(":id"), accountId());
|
||||
|
||||
if (query.exec()) {
|
||||
return ServiceRoot::deleteViaGui();
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool OwnCloudServiceRoot::supportsFeedAdding() const {
|
||||
return false;
|
||||
|
|
|
@ -120,35 +120,6 @@ bool StandardFeed::cleanMessages(bool clean_read_only) {
|
|||
return serviceRoot()->cleanFeeds(QList<Feed*>() << this, clean_read_only);
|
||||
}
|
||||
|
||||
QList<Message> StandardFeed::undeletedMessages() const {
|
||||
QList<Message> messages;
|
||||
|
||||
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
|
||||
QSqlQuery query_read_msg(database);
|
||||
query_read_msg.setForwardOnly(true);
|
||||
query_read_msg.prepare("SELECT * "
|
||||
"FROM Messages "
|
||||
"WHERE is_deleted = 0 AND feed = :feed AND account_id = :account_id;");
|
||||
|
||||
query_read_msg.bindValue(QSL(":feed"), id());
|
||||
query_read_msg.bindValue(QSL(":account_id"), serviceRoot()->accountId());
|
||||
|
||||
if (query_read_msg.exec()) {
|
||||
while (query_read_msg.next()) {
|
||||
bool decoded;
|
||||
Message message = Message::fromSqlRecord(query_read_msg.record(), &decoded);
|
||||
|
||||
if (decoded) {
|
||||
messages.append(message);
|
||||
}
|
||||
|
||||
messages.append(message);
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
QVariant StandardFeed::data(int column, int role) const {
|
||||
switch (role) {
|
||||
case Qt::ToolTipRole:
|
||||
|
|
|
@ -70,8 +70,6 @@ class StandardFeed : public Feed {
|
|||
bool markAsReadUnread(ReadStatus status);
|
||||
bool cleanMessages(bool clean_read_only);
|
||||
|
||||
QList<Message> undeletedMessages() const;
|
||||
|
||||
QVariant data(int column, int role) const;
|
||||
|
||||
// Obtains data related to this feed.
|
||||
|
|
|
@ -189,36 +189,6 @@ int TtRssFeed::update() {
|
|||
return updateMessages(messages);
|
||||
}
|
||||
|
||||
QList<Message> TtRssFeed::undeletedMessages() const {
|
||||
QList<Message> messages;
|
||||
int account_id = serviceRoot()->accountId();
|
||||
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
|
||||
QSqlQuery query_read_msg(database);
|
||||
|
||||
query_read_msg.setForwardOnly(true);
|
||||
query_read_msg.prepare("SELECT * "
|
||||
"FROM Messages "
|
||||
"WHERE is_deleted = 0 AND is_pdeleted = 0 AND feed = :feed AND account_id = :account_id;");
|
||||
|
||||
query_read_msg.bindValue(QSL(":feed"), customId());
|
||||
query_read_msg.bindValue(QSL(":account_id"), account_id);
|
||||
|
||||
if (query_read_msg.exec()) {
|
||||
while (query_read_msg.next()) {
|
||||
bool decoded;
|
||||
Message message = Message::fromSqlRecord(query_read_msg.record(), &decoded);
|
||||
|
||||
if (decoded) {
|
||||
messages.append(message);
|
||||
}
|
||||
|
||||
messages.append(message);
|
||||
}
|
||||
}
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
bool TtRssFeed::markAsReadUnread(RootItem::ReadStatus status) {
|
||||
QStringList ids = serviceRoot()->customIDSOfMessagesForItem(this);
|
||||
TtRssUpdateArticleResponse response = serviceRoot()->network()->updateArticles(ids, UpdateArticle::Unread,
|
||||
|
|
|
@ -43,7 +43,6 @@ class TtRssFeed : public Feed {
|
|||
bool deleteViaGui();
|
||||
|
||||
int update();
|
||||
QList<Message> undeletedMessages() const;
|
||||
bool markAsReadUnread(ReadStatus status);
|
||||
bool cleanMessages(bool clear_only_read);
|
||||
bool editItself(TtRssFeed *new_feed_data);
|
||||
|
|
Loading…
Add table
Reference in a new issue