queries done

This commit is contained in:
Martin Rotter 2023-08-16 13:13:46 +02:00
parent 27295f10f9
commit df03e853a5
3 changed files with 36 additions and 4 deletions

View file

@ -980,6 +980,40 @@ ArticleCounts DatabaseQueries::getMessageCountsForBin(const QSqlDatabase& db, in
} }
} }
QList<Message> DatabaseQueries::getUndeletedMessagesForProbe(const QSqlDatabase& db, const Search* probe) {
QList<Message> messages;
QSqlQuery q(db);
q.prepare(QSL("SELECT %1 "
"FROM Messages "
"WHERE "
" Messages.is_deleted = 0 AND "
" Messages.is_pdeleted = 0 AND "
" Messages.account_id = :account_id AND "
" (title REGEXP :fltr OR contents REGEXP :fltr);")
.arg(messageTableAttributes(true, db.driverName() == QSL(APP_DB_SQLITE_DRIVER))
.values()
.join(QSL(", "))));
q.bindValue(QSL(":account_id"), probe->getParentServiceRoot()->accountId());
q.bindValue(QSL(":fltr"), probe->filter());
if (q.exec()) {
while (q.next()) {
bool decoded;
Message message = Message::fromSqlRecord(q.record(), &decoded);
if (decoded) {
messages.append(message);
}
}
}
else {
throw ApplicationException(q.lastError().text());
}
return messages;
}
QList<Message> DatabaseQueries::getUndeletedMessagesWithLabel(const QSqlDatabase& db, const Label* label, bool* ok) { QList<Message> DatabaseQueries::getUndeletedMessagesWithLabel(const QSqlDatabase& db, const Label* label, bool* ok) {
QList<Message> messages; QList<Message> messages;
QSqlQuery q(db); QSqlQuery q(db);

View file

@ -111,6 +111,7 @@ class DatabaseQueries {
static ArticleCounts getMessageCountsForBin(const QSqlDatabase& db, int account_id, bool* ok = nullptr); static ArticleCounts getMessageCountsForBin(const QSqlDatabase& db, int account_id, bool* ok = nullptr);
// Get messages (for newspaper view for example). // Get messages (for newspaper view for example).
static QList<Message> getUndeletedMessagesForProbe(const QSqlDatabase& db, const Search* probe);
static QList<Message> getUndeletedMessagesWithLabel(const QSqlDatabase& db, const Label* label, bool* ok = nullptr); static QList<Message> getUndeletedMessagesWithLabel(const QSqlDatabase& db, const Label* label, bool* ok = nullptr);
static QList<Message> getUndeletedLabelledMessages(const QSqlDatabase& db, int account_id, bool* ok = nullptr); static QList<Message> getUndeletedLabelledMessages(const QSqlDatabase& db, int account_id, bool* ok = nullptr);
static QList<Message> getUndeletedImportantMessages(const QSqlDatabase& db, int account_id, bool* ok = nullptr); static QList<Message> getUndeletedImportantMessages(const QSqlDatabase& db, int account_id, bool* ok = nullptr);

View file

@ -109,12 +109,9 @@ void Search::updateCounts(bool including_total_count) {
} }
QList<Message> Search::undeletedMessages() const { QList<Message> Search::undeletedMessages() const {
return {};
/*
QSqlDatabase database = qApp->database()->driver()->connection(metaObject()->className()); QSqlDatabase database = qApp->database()->driver()->connection(metaObject()->className());
return DatabaseQueries::getUndeletedMessagesWithLabel(database, this); return DatabaseQueries::getUndeletedMessagesForProbe(database, this);
*/
} }
QIcon Search::generateIcon(const QColor& color) { QIcon Search::generateIcon(const QColor& color) {