This commit is contained in:
martinrotter 2017-05-03 08:03:53 +02:00
parent 3b4ac7cc96
commit 4224ee0170
5 changed files with 12 additions and 6 deletions

View File

@ -3,6 +3,7 @@
Added: Added:
▪ Auto-update status of feeds is now more general and complete. (issue #91) ▪ Auto-update status of feeds is now more general and complete. (issue #91)
▪ Display feed title in list of messages. (issue #97)
Changed: Changed:
▪ Updating of RSS Guard now uses GitHub API. (issue #109) ▪ Updating of RSS Guard now uses GitHub API. (issue #109)

View File

@ -27,18 +27,23 @@
MessagesModel::MessagesModel(QObject *parent) MessagesModel::MessagesModel(QObject *parent)
: QSqlTableModel(parent, qApp->database()->connection(QSL("MessagesModel"), DatabaseFactory::FromSettings)), : QSqlRelationalTableModel(parent, qApp->database()->connection(QSL("MessagesModel"), DatabaseFactory::FromSettings)),
m_messageHighlighter(NoHighlighting), m_customDateFormat(QString()) { m_messageHighlighter(NoHighlighting), m_customDateFormat(QString()) {
setupFonts(); setupFonts();
setupIcons(); setupIcons();
setupHeaderData(); setupHeaderData();
updateDateFormat(); updateDateFormat();
// Set desired table and edit strategy. // Set desired table and edit strategy.
// NOTE: Changes to the database are actually NOT submitted // NOTE: Changes to the database are actually NOT submitted
// via model, but via DIRECT SQL calls are used to do persistent messages. // via model, but via DIRECT SQL calls are used to do persistent messages.
setEditStrategy(QSqlTableModel::OnManualSubmit); setEditStrategy(QSqlTableModel::OnManualSubmit);
setTable(QSL("Messages")); setTable(QSL("Messages"));
setJoinMode(QSqlRelationalTableModel::LeftJoin);
setRelation(MSG_DB_FEED_INDEX, QSqlRelation("Feeds", "custom_id", "title"));
loadMessages(nullptr); loadMessages(nullptr);
} }

View File

@ -18,7 +18,7 @@
#ifndef MESSAGESMODEL_H #ifndef MESSAGESMODEL_H
#define MESSAGESMODEL_H #define MESSAGESMODEL_H
#include <QSqlTableModel> #include <QSqlRelationalTableModel>
#include "definitions/definitions.h" #include "definitions/definitions.h"
#include "core/message.h" #include "core/message.h"
@ -28,7 +28,7 @@
#include <QIcon> #include <QIcon>
class MessagesModel : public QSqlTableModel { class MessagesModel : public QSqlRelationalTableModel {
Q_OBJECT Q_OBJECT
public: public:

View File

@ -541,7 +541,7 @@ void MessagesView::adjustColumns() {
// Hide columns. // Hide columns.
hideColumn(MSG_DB_ID_INDEX); hideColumn(MSG_DB_ID_INDEX);
hideColumn(MSG_DB_DELETED_INDEX); hideColumn(MSG_DB_DELETED_INDEX);
hideColumn(MSG_DB_FEED_INDEX); //hideColumn(MSG_DB_FEED_INDEX);
hideColumn(MSG_DB_URL_INDEX); hideColumn(MSG_DB_URL_INDEX);
hideColumn(MSG_DB_CONTENTS_INDEX); hideColumn(MSG_DB_CONTENTS_INDEX);
hideColumn(MSG_DB_PDELETED_INDEX); hideColumn(MSG_DB_PDELETED_INDEX);

View File

@ -388,13 +388,13 @@ void ServiceRoot::setAccountId(int account_id) {
bool ServiceRoot::loadMessagesForItem(RootItem *item, QSqlTableModel *model) { bool ServiceRoot::loadMessagesForItem(RootItem *item, QSqlTableModel *model) {
if (item->kind() == RootItemKind::Bin) { if (item->kind() == RootItemKind::Bin) {
model->setFilter(QString("is_deleted = 1 AND is_pdeleted = 0 AND account_id = %1").arg(QString::number(accountId()))); model->setFilter(QString("Messages.is_deleted = 1 AND Messages.is_pdeleted = 0 AND Messages.account_id = %1").arg(QString::number(accountId())));
} }
else { else {
QList<Feed*> children = item->getSubTreeFeeds(); QList<Feed*> children = item->getSubTreeFeeds();
QString filter_clause = textualFeedIds(children).join(QSL(", ")); QString filter_clause = textualFeedIds(children).join(QSL(", "));
model->setFilter(QString("feed IN (%1) AND is_deleted = 0 AND is_pdeleted = 0 AND account_id = %2").arg(filter_clause, model->setFilter(QString("Messages.feed IN (%1) AND Messages.is_deleted = 0 AND Messages.is_pdeleted = 0 AND Messages.account_id = %2").arg(filter_clause,
QString::number(accountId()))); QString::number(accountId())));
qDebug("Loading messages from feeds: %s.", qPrintable(filter_clause)); qDebug("Loading messages from feeds: %s.", qPrintable(filter_clause));
} }