Feed count changes signal occurrences optimized.
This commit is contained in:
parent
607a53adc5
commit
cea66b2c1d
@ -239,6 +239,7 @@ bool MessagesModel::setMessageRead(int row_index, int read) {
|
||||
// can reflect.
|
||||
emit dataChanged(index(row_index, 0),
|
||||
index(row_index, columnCount() - 1));
|
||||
emit feedCountsChanged();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
@ -409,6 +410,8 @@ bool MessagesModel::setBatchMessagesRead(const QModelIndexList &messages, int re
|
||||
// FULLY reload the model if underlying data is changed.
|
||||
select();
|
||||
fetchAll();
|
||||
|
||||
emit feedCountsChanged();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
@ -453,6 +456,8 @@ bool MessagesModel::setAllMessagesRead(int read) {
|
||||
// FULLY reload the model if underlying data is changed.
|
||||
select();
|
||||
fetchAll();
|
||||
|
||||
emit feedCountsChanged();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
@ -83,6 +83,11 @@ class MessagesModel : public QSqlTableModel {
|
||||
// Loads messages of given feeds.
|
||||
void loadMessages(const QList<int> feed_ids);
|
||||
|
||||
signals:
|
||||
// Emitted if some persistent change is made which affects
|
||||
// count of "unread/all" messages.
|
||||
void feedCountsChanged();
|
||||
|
||||
protected:
|
||||
QStringList textualFeeds() const;
|
||||
|
||||
|
@ -6,9 +6,9 @@
|
||||
#include <QProcess>
|
||||
|
||||
#include "gui/messagesview.h"
|
||||
#include "gui/formmain.h"
|
||||
#include "core/messagesproxymodel.h"
|
||||
#include "core/messagesmodel.h"
|
||||
#include "gui/formmain.h"
|
||||
#include "core/settings.h"
|
||||
|
||||
|
||||
@ -17,6 +17,10 @@ MessagesView::MessagesView(QWidget *parent)
|
||||
m_proxyModel = new MessagesProxyModel(this);
|
||||
m_sourceModel = m_proxyModel->sourceModel();
|
||||
|
||||
// Forward count changes to the view.
|
||||
connect(m_sourceModel, SIGNAL(feedCountsChanged()),
|
||||
this, SIGNAL(feedCountsChanged()));
|
||||
|
||||
setModel(m_proxyModel);
|
||||
|
||||
// NOTE: It is recommended to call this after the model is set
|
||||
@ -170,7 +174,6 @@ void MessagesView::currentChanged(const QModelIndex ¤t,
|
||||
}
|
||||
|
||||
emit currentMessageChanged(m_sourceModel->messageAt(mapped_current_index.row()));
|
||||
emit feedCountsChanged();
|
||||
}
|
||||
else {
|
||||
emit currentMessageRemoved();
|
||||
|
Loading…
x
Reference in New Issue
Block a user