mirror of
https://github.com/martinrotter/rssguard.git
synced 2025-02-03 02:37:46 +01:00
fix #1503
This commit is contained in:
parent
c2b75bb8c8
commit
bf2d600364
@ -41,9 +41,8 @@ QMap<int, QString> DatabaseQueries::messageTableAttributes(bool only_msg_table,
|
||||
"END AS has_enclosures");
|
||||
|
||||
if (is_sqlite) {
|
||||
field_names[MSG_DB_LABELS] =
|
||||
QSL("(SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Messages.labels LIKE '%.' || "
|
||||
"Labels.custom_id || '.%') as msg_labels");
|
||||
field_names[MSG_DB_LABELS] = QSL("(SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Messages.labels LIKE '%.' || "
|
||||
"Labels.custom_id || '.%') as msg_labels");
|
||||
}
|
||||
else {
|
||||
field_names[MSG_DB_LABELS] =
|
||||
@ -3036,13 +3035,30 @@ void DatabaseQueries::assignMessageFilterToFeed(const QSqlDatabase& db,
|
||||
bool* ok) {
|
||||
QSqlQuery q(db);
|
||||
|
||||
q.prepare(QSL("INSERT INTO MessageFiltersInFeeds (filter, feed_custom_id, account_id) "
|
||||
"VALUES(:filter, :feed_custom_id, :account_id);"));
|
||||
|
||||
q.prepare(QSL("SELECT COUNT(*) FROM MessageFiltersInFeeds "
|
||||
"WHERE filter = :filter AND feed_custom_id = :feed_custom_id AND account_id = :account_id;"));
|
||||
q.setForwardOnly(true);
|
||||
q.bindValue(QSL(":filter"), filter_id);
|
||||
q.bindValue(QSL(":feed_custom_id"), feed_custom_id);
|
||||
q.bindValue(QSL(":account_id"), account_id);
|
||||
|
||||
if (q.exec() && q.next()) {
|
||||
auto already_included_count = q.value(0).toInt();
|
||||
|
||||
if (already_included_count > 0) {
|
||||
if (ok != nullptr) {
|
||||
*ok = true;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
q.prepare(QSL("INSERT INTO MessageFiltersInFeeds (filter, feed_custom_id, account_id) "
|
||||
"VALUES(:filter, :feed_custom_id, :account_id);"));
|
||||
q.bindValue(QSL(":filter"), filter_id);
|
||||
q.bindValue(QSL(":feed_custom_id"), feed_custom_id);
|
||||
q.bindValue(QSL(":account_id"), account_id);
|
||||
q.setForwardOnly(true);
|
||||
|
||||
if (q.exec()) {
|
||||
if (ok != nullptr) {
|
||||
|
@ -209,6 +209,7 @@ bool Feed::removeUnwantedArticles(QSqlDatabase& db) {
|
||||
}
|
||||
|
||||
void Feed::appendMessageFilter(MessageFilter* filter) {
|
||||
removeMessageFilter(filter);
|
||||
m_messageFilters.append(QPointer<MessageFilter>(filter));
|
||||
}
|
||||
|
||||
@ -351,11 +352,7 @@ void Feed::setMessageFilters(const QList<QPointer<MessageFilter>>& filters) {
|
||||
}
|
||||
|
||||
void Feed::removeMessageFilter(MessageFilter* filter) {
|
||||
int idx = m_messageFilters.indexOf(filter);
|
||||
|
||||
if (idx >= 0) {
|
||||
m_messageFilters.removeAll(filter);
|
||||
}
|
||||
m_messageFilters.removeAll(filter);
|
||||
}
|
||||
|
||||
QString Feed::additionalTooltip() const {
|
||||
|
Loading…
x
Reference in New Issue
Block a user