diff --git a/resources/sql/db_init_sqlite.sql b/resources/sql/db_init_sqlite.sql index 120d40168..ebbcbc501 100644 --- a/resources/sql/db_init_sqlite.sql +++ b/resources/sql/db_init_sqlite.sql @@ -106,7 +106,7 @@ CREATE TABLE Probes ( id $$, name TEXT NOT NULL CHECK (name != ''), color VARCHAR(7) NOT NULL CHECK (color != ''), - fltr TEXT NOT NULL CHECK (filter != ''), /* Regular expression. */ + fltr TEXT NOT NULL CHECK (fltr != ''), /* Regular expression. */ account_id INTEGER NOT NULL, FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE diff --git a/resources/sql/db_update_sqlite_6_7.sql b/resources/sql/db_update_sqlite_6_7.sql index 92d096c81..fafcef115 100755 --- a/resources/sql/db_update_sqlite_6_7.sql +++ b/resources/sql/db_update_sqlite_6_7.sql @@ -2,7 +2,7 @@ CREATE TABLE Probes ( id $$, name TEXT NOT NULL CHECK (name != ''), color VARCHAR(7) NOT NULL CHECK (color != ''), - fltr TEXT NOT NULL CHECK (filter != ''), /* Regular expression. */ + fltr TEXT NOT NULL CHECK (fltr != ''), /* Regular expression. */ account_id INTEGER NOT NULL, FOREIGN KEY (account_id) REFERENCES Accounts (id) ON DELETE CASCADE diff --git a/src/librssguard/services/abstract/serviceroot.cpp b/src/librssguard/services/abstract/serviceroot.cpp index 067fe747e..fc1e29219 100644 --- a/src/librssguard/services/abstract/serviceroot.cpp +++ b/src/librssguard/services/abstract/serviceroot.cpp @@ -853,16 +853,30 @@ bool ServiceRoot::onAfterSetMessagesRead(RootItem* selected_item, // 4. Labels assigned. if (labelsNode() != nullptr) { auto db = qApp->database()->driver()->connection(metaObject()->className()); - auto lbls = DatabaseQueries::getCountOfAssignedLabelsToMessages(db, messages, accountId()); + QStringList lbls; // = DatabaseQueries::getCountOfAssignedLabelsToMessages(db, messages, accountId()); - for (const QString& lbl_custom_id : lbls.keys()) { - auto* lbl = labelsNode()->labelById(lbl_custom_id); - - if (lbl != nullptr) { - lbl->setCountOfUnreadMessages(lbls.value(lbl_custom_id).m_unread); - to_update << lbl; + for (const Message& msg : messages) { + for (const QString& lbl : msg.m_assignedLabelsIds) { + if (!lbls.contains(lbl)) { + lbls.append(lbl); + } } } + + for (const QString& lbl : lbls) { + Label* l = labelsNode()->labelById(lbl); + l->updateCounts(false); + to_update << l; + } + /* + for (const QString& lbl_custom_id : lbls.keys()) { + auto* lbl = labelsNode()->labelById(lbl_custom_id); + + if (lbl != nullptr) { + lbl->setCountOfUnreadMessages(lbls.value(lbl_custom_id).m_unread); + to_update << lbl; + } + }*/ } }