Work on SQL layer, can edit existing filters, change assignments to feeds.

This commit is contained in:
Martin Rotter 2020-07-09 11:19:35 +02:00
parent 3fc4c1256d
commit 09fdf72d26
3 changed files with 24 additions and 1 deletions

View File

@ -1480,6 +1480,28 @@ void DatabaseQueries::assignMessageFilterToFeed(const QSqlDatabase& db, const QS
}
}
void DatabaseQueries::updateMessageFilter(const QSqlDatabase& db, MessageFilter* filter, bool* ok) {
QSqlQuery q(db);
q.prepare("UPDATE MessageFilters SET name = :name, script = :script WHERE id = :id;");
q.bindValue(QSL(":name"), filter->name());
q.bindValue(QSL(":script"), filter->script());
q.bindValue(QSL(":id"), filter->id());
q.setForwardOnly(true);
if (q.exec()) {
if (ok != nullptr) {
*ok = true;
}
}
else {
if (ok != nullptr) {
*ok = false;
}
}
}
void DatabaseQueries::removeMessageFilterFromFeed(const QSqlDatabase& db, const QString& feed_custom_id,
int filter_id, int account_id, bool* ok) {
QSqlQuery q(db);

View File

@ -91,6 +91,7 @@ class DatabaseQueries {
static QMultiMap<QString, int> messageFiltersInFeeds(const QSqlDatabase& db, int account_id, bool* ok = nullptr);
static void assignMessageFilterToFeed(const QSqlDatabase& db, const QString& feed_custom_id, int filter_id,
int account_id, bool* ok = nullptr);
static void updateMessageFilter(const QSqlDatabase& db, MessageFilter* filter, bool* ok = nullptr);
static void removeMessageFilterFromFeed(const QSqlDatabase& db, const QString& feed_custom_id, int filter_id,
int account_id, bool* ok = nullptr);

View File

@ -162,7 +162,7 @@ MessageFilter* FeedReader::addMessageFilter(const QString& title, const QString&
}
void FeedReader::updateMessageFilter(MessageFilter* filter) {
// TODO: Filter's name or script is changed, save to database.
DatabaseQueries::updateMessageFilter(qApp->database()->connection(metaObject()->className()), filter);
}
void FeedReader::assignMessageFilterToFeed(Feed* feed, MessageFilter* filter) {