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 "services/abstract/feed.h"
|
||||||
|
|
||||||
#include "definitions/definitions.h"
|
#include "definitions/definitions.h"
|
||||||
|
#include "miscellaneous/application.h"
|
||||||
|
#include "miscellaneous/databasefactory.h"
|
||||||
|
#include "services/abstract/serviceroot.h"
|
||||||
|
|
||||||
|
#include <QSqlQuery>
|
||||||
|
|
||||||
|
|
||||||
Feed::Feed(RootItem *parent)
|
Feed::Feed(RootItem *parent)
|
||||||
|
@ -30,6 +35,36 @@ Feed::Feed(RootItem *parent)
|
||||||
Feed::~Feed() {
|
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 {
|
QVariant Feed::data(int column, int role) const {
|
||||||
switch (role) {
|
switch (role) {
|
||||||
case Qt::ForegroundRole:
|
case Qt::ForegroundRole:
|
||||||
|
|
|
@ -52,6 +52,8 @@ class Feed : public RootItem {
|
||||||
explicit Feed(RootItem *parent = NULL);
|
explicit Feed(RootItem *parent = NULL);
|
||||||
virtual ~Feed();
|
virtual ~Feed();
|
||||||
|
|
||||||
|
QList<Message> undeletedMessages() const;
|
||||||
|
|
||||||
int countOfAllMessages() const;
|
int countOfAllMessages() const;
|
||||||
int countOfUnreadMessages() const;
|
int countOfUnreadMessages() const;
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ OwnCloudServiceRoot *OwnCloudFeed::serviceRoot() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
int OwnCloudFeed::update() {
|
int OwnCloudFeed::update() {
|
||||||
OwnCloudGetMessagesResponse headlines = serviceRoot()->network()->getMessages(customId());
|
OwnCloudGetMessagesResponse messages = serviceRoot()->network()->getMessages(customId());
|
||||||
|
|
||||||
if (serviceRoot()->network()->lastError() != QNetworkReply::NoError) {
|
if (serviceRoot()->network()->lastError() != QNetworkReply::NoError) {
|
||||||
setStatus(Feed::Error);
|
setStatus(Feed::Error);
|
||||||
|
|
|
@ -55,7 +55,19 @@ bool OwnCloudServiceRoot::editViaGui() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OwnCloudServiceRoot::deleteViaGui() {
|
bool OwnCloudServiceRoot::deleteViaGui() {
|
||||||
return false;
|
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 {
|
bool OwnCloudServiceRoot::supportsFeedAdding() const {
|
||||||
|
|
|
@ -120,35 +120,6 @@ bool StandardFeed::cleanMessages(bool clean_read_only) {
|
||||||
return serviceRoot()->cleanFeeds(QList<Feed*>() << this, 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 {
|
QVariant StandardFeed::data(int column, int role) const {
|
||||||
switch (role) {
|
switch (role) {
|
||||||
case Qt::ToolTipRole:
|
case Qt::ToolTipRole:
|
||||||
|
|
|
@ -70,8 +70,6 @@ class StandardFeed : public Feed {
|
||||||
bool markAsReadUnread(ReadStatus status);
|
bool markAsReadUnread(ReadStatus status);
|
||||||
bool cleanMessages(bool clean_read_only);
|
bool cleanMessages(bool clean_read_only);
|
||||||
|
|
||||||
QList<Message> undeletedMessages() const;
|
|
||||||
|
|
||||||
QVariant data(int column, int role) const;
|
QVariant data(int column, int role) const;
|
||||||
|
|
||||||
// Obtains data related to this feed.
|
// Obtains data related to this feed.
|
||||||
|
|
|
@ -189,36 +189,6 @@ int TtRssFeed::update() {
|
||||||
return updateMessages(messages);
|
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) {
|
bool TtRssFeed::markAsReadUnread(RootItem::ReadStatus status) {
|
||||||
QStringList ids = serviceRoot()->customIDSOfMessagesForItem(this);
|
QStringList ids = serviceRoot()->customIDSOfMessagesForItem(this);
|
||||||
TtRssUpdateArticleResponse response = serviceRoot()->network()->updateArticles(ids, UpdateArticle::Unread,
|
TtRssUpdateArticleResponse response = serviceRoot()->network()->updateArticles(ids, UpdateArticle::Unread,
|
||||||
|
|
|
@ -43,7 +43,6 @@ class TtRssFeed : public Feed {
|
||||||
bool deleteViaGui();
|
bool deleteViaGui();
|
||||||
|
|
||||||
int update();
|
int update();
|
||||||
QList<Message> undeletedMessages() const;
|
|
||||||
bool markAsReadUnread(ReadStatus status);
|
bool markAsReadUnread(ReadStatus status);
|
||||||
bool cleanMessages(bool clear_only_read);
|
bool cleanMessages(bool clear_only_read);
|
||||||
bool editItself(TtRssFeed *new_feed_data);
|
bool editItself(TtRssFeed *new_feed_data);
|
||||||
|
|
Loading…
Add table
Reference in a new issue