rssguard/src/core/feedsmodelfeed.cpp

80 lines
1.9 KiB
C++
Raw Normal View History

2013-12-21 21:08:52 +01:00
#include "core/feedsmodelfeed.h"
#include "core/databasefactory.h"
2013-12-14 18:54:35 +01:00
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
2013-12-18 08:51:35 +01:00
#include <QVariant>
2013-12-14 18:54:35 +01:00
2013-12-11 14:07:18 +01:00
2013-12-12 08:27:05 +01:00
FeedsModelFeed::FeedsModelFeed(FeedsModelRootItem *parent_item)
2013-12-14 11:45:43 +01:00
: FeedsModelRootItem(parent_item), m_totalCount(0), m_unreadCount(0) {
2013-12-16 20:14:53 +01:00
m_kind = FeedsModelRootItem::Feed;
2013-12-11 14:07:18 +01:00
}
FeedsModelFeed::~FeedsModelFeed() {
}
2013-12-11 14:11:51 +01:00
int FeedsModelFeed::childCount() const {
// Because feed has no children.
return 0;
}
2013-12-12 22:28:51 +01:00
int FeedsModelFeed::countOfAllMessages() const {
return m_totalCount;
}
int FeedsModelFeed::countOfUnreadMessages() const {
return m_unreadCount;
}
2013-12-13 20:48:45 +01:00
2013-12-23 14:43:47 +01:00
void FeedsModelFeed::update() {
}
2013-12-13 20:48:45 +01:00
FeedsModelFeed::Type FeedsModelFeed::type() const {
return m_type;
}
void FeedsModelFeed::setType(const Type &type) {
m_type = type;
}
2013-12-18 08:51:35 +01:00
QString FeedsModelFeed::typeToString(FeedsModelFeed::Type type) {
switch (type) {
case StandardAtom10:
2013-12-18 08:51:35 +01:00
return QObject::tr("ATOM 1.0");
case StandardRdf:
2013-12-27 11:32:03 +01:00
return QObject::tr("RDF");
2013-12-18 08:51:35 +01:00
case StandardRss0X:
2013-12-27 11:32:03 +01:00
return QObject::tr("RSS 0.91/0.92/0.93");
2013-12-18 08:51:35 +01:00
case StandardRss2X:
default:
2013-12-19 08:54:31 +01:00
return QObject::tr("RSS 2.0/2.0.1");
2013-12-18 08:51:35 +01:00
}
}
2013-12-18 08:51:35 +01:00
void FeedsModelFeed::updateCounts(bool including_total_count) {
2014-01-05 21:36:25 +01:00
QSqlDatabase database = DatabaseFactory::getInstance()->connection("FeedsModelFeed");
QSqlQuery query_all(database);
2013-12-31 17:33:42 +01:00
query_all.setForwardOnly(true);
2013-12-18 08:51:35 +01:00
if (including_total_count) {
if (query_all.exec(QString("SELECT count() FROM messages "
"WHERE feed = %1 AND deleted = 0;").arg(id())) &&
query_all.next()) {
2013-12-18 08:51:35 +01:00
m_totalCount = query_all.value(0).toInt();
}
}
// Obtain count of unread messages.
if (query_all.exec(QString("SELECT count() FROM messages "
"WHERE feed = %1 AND deleted = 0 AND read = 0;").arg(id())) &&
query_all.next()) {
m_unreadCount = query_all.value(0).toInt();
2013-12-18 08:51:35 +01:00
}
}