Fixed #97.
This commit is contained in:
parent
3b4ac7cc96
commit
4224ee0170
@ -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)
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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);
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user