Added ability to load messages.

This commit is contained in:
Martin Rotter 2015-12-08 11:13:35 +01:00
parent 523adcf4b7
commit eb1eef3a50
2 changed files with 23 additions and 1 deletions

View file

@ -27,6 +27,7 @@
#include "services/tt-rss/network/ttrssnetworkfactory.h" #include "services/tt-rss/network/ttrssnetworkfactory.h"
#include "services/tt-rss/gui/formeditaccount.h" #include "services/tt-rss/gui/formeditaccount.h"
#include <QSqlTableModel>
#include <QSqlQuery> #include <QSqlQuery>
#include <QSqlError> #include <QSqlError>
#include <QPointer> #include <QPointer>
@ -118,7 +119,13 @@ RecycleBin *TtRssServiceRoot::recycleBin() {
} }
bool TtRssServiceRoot::loadMessagesForItem(RootItem *item, QSqlTableModel *model) { bool TtRssServiceRoot::loadMessagesForItem(RootItem *item, QSqlTableModel *model) {
return false; QList<Feed*> children = item->getSubTreeFeeds();
QString filter_clause = textualFeedIds(children).join(QSL(", "));
model->setFilter(QString(QSL("feed IN (%1) AND is_deleted = 0 AND is_pdeleted = 0")).arg(filter_clause));
qDebug("Loading messages from feeds: %s.", qPrintable(filter_clause));
return true;
} }
QList<QAction*> TtRssServiceRoot::serviceMenu() { QList<QAction*> TtRssServiceRoot::serviceMenu() {
@ -305,6 +312,17 @@ void TtRssServiceRoot::syncIn() {
} }
} }
QStringList TtRssServiceRoot::textualFeedIds(const QList<Feed*> &feeds) {
QStringList stringy_ids;
stringy_ids.reserve(feeds.size());
foreach (Feed *feed, feeds) {
stringy_ids.append(QString("'%1'").arg(QString::number(static_cast<TtRssFeed*>(feed)->customId())));
}
return stringy_ids;
}
void TtRssServiceRoot::removeOldFeedTree() { void TtRssServiceRoot::removeOldFeedTree() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
QSqlQuery query(database); QSqlQuery query(database);

View file

@ -75,6 +75,10 @@ class TtRssServiceRoot : public ServiceRoot {
void syncIn(); void syncIn();
private: private:
// Returns converted ids of given feeds
// which are suitable as IN clause for SQL queries.
QStringList textualFeedIds(const QList<Feed*> &feeds);
void removeOldFeedTree(); void removeOldFeedTree();
void cleanAllItems(); void cleanAllItems();
void storeNewFeedTree(RootItem *root); void storeNewFeedTree(RootItem *root);