fix #1503
This commit is contained in:
parent
c2b75bb8c8
commit
bf2d600364
2 changed files with 25 additions and 12 deletions
|
@ -41,9 +41,8 @@ QMap<int, QString> DatabaseQueries::messageTableAttributes(bool only_msg_table,
|
||||||
"END AS has_enclosures");
|
"END AS has_enclosures");
|
||||||
|
|
||||||
if (is_sqlite) {
|
if (is_sqlite) {
|
||||||
field_names[MSG_DB_LABELS] =
|
field_names[MSG_DB_LABELS] = QSL("(SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Messages.labels LIKE '%.' || "
|
||||||
QSL("(SELECT GROUP_CONCAT(Labels.name) FROM Labels WHERE Messages.labels LIKE '%.' || "
|
"Labels.custom_id || '.%') as msg_labels");
|
||||||
"Labels.custom_id || '.%') as msg_labels");
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
field_names[MSG_DB_LABELS] =
|
field_names[MSG_DB_LABELS] =
|
||||||
|
@ -3036,13 +3035,30 @@ void DatabaseQueries::assignMessageFilterToFeed(const QSqlDatabase& db,
|
||||||
bool* ok) {
|
bool* ok) {
|
||||||
QSqlQuery q(db);
|
QSqlQuery q(db);
|
||||||
|
|
||||||
q.prepare(QSL("INSERT INTO MessageFiltersInFeeds (filter, feed_custom_id, account_id) "
|
q.prepare(QSL("SELECT COUNT(*) FROM MessageFiltersInFeeds "
|
||||||
"VALUES(:filter, :feed_custom_id, :account_id);"));
|
"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(":filter"), filter_id);
|
||||||
q.bindValue(QSL(":feed_custom_id"), feed_custom_id);
|
q.bindValue(QSL(":feed_custom_id"), feed_custom_id);
|
||||||
q.bindValue(QSL(":account_id"), account_id);
|
q.bindValue(QSL(":account_id"), account_id);
|
||||||
q.setForwardOnly(true);
|
|
||||||
|
|
||||||
if (q.exec()) {
|
if (q.exec()) {
|
||||||
if (ok != nullptr) {
|
if (ok != nullptr) {
|
||||||
|
|
|
@ -209,6 +209,7 @@ bool Feed::removeUnwantedArticles(QSqlDatabase& db) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Feed::appendMessageFilter(MessageFilter* filter) {
|
void Feed::appendMessageFilter(MessageFilter* filter) {
|
||||||
|
removeMessageFilter(filter);
|
||||||
m_messageFilters.append(QPointer<MessageFilter>(filter));
|
m_messageFilters.append(QPointer<MessageFilter>(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -351,11 +352,7 @@ void Feed::setMessageFilters(const QList<QPointer<MessageFilter>>& filters) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Feed::removeMessageFilter(MessageFilter* filter) {
|
void Feed::removeMessageFilter(MessageFilter* filter) {
|
||||||
int idx = m_messageFilters.indexOf(filter);
|
m_messageFilters.removeAll(filter);
|
||||||
|
|
||||||
if (idx >= 0) {
|
|
||||||
m_messageFilters.removeAll(filter);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Feed::additionalTooltip() const {
|
QString Feed::additionalTooltip() const {
|
||||||
|
|
Loading…
Add table
Reference in a new issue