Feed count changes signal occurrences optimized.
This commit is contained in:
parent
607a53adc5
commit
cea66b2c1d
3 changed files with 15 additions and 2 deletions
|
@ -239,6 +239,7 @@ bool MessagesModel::setMessageRead(int row_index, int read) {
|
||||||
// can reflect.
|
// can reflect.
|
||||||
emit dataChanged(index(row_index, 0),
|
emit dataChanged(index(row_index, 0),
|
||||||
index(row_index, columnCount() - 1));
|
index(row_index, columnCount() - 1));
|
||||||
|
emit feedCountsChanged();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -409,6 +410,8 @@ bool MessagesModel::setBatchMessagesRead(const QModelIndexList &messages, int re
|
||||||
// FULLY reload the model if underlying data is changed.
|
// FULLY reload the model if underlying data is changed.
|
||||||
select();
|
select();
|
||||||
fetchAll();
|
fetchAll();
|
||||||
|
|
||||||
|
emit feedCountsChanged();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -453,6 +456,8 @@ bool MessagesModel::setAllMessagesRead(int read) {
|
||||||
// FULLY reload the model if underlying data is changed.
|
// FULLY reload the model if underlying data is changed.
|
||||||
select();
|
select();
|
||||||
fetchAll();
|
fetchAll();
|
||||||
|
|
||||||
|
emit feedCountsChanged();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -83,6 +83,11 @@ class MessagesModel : public QSqlTableModel {
|
||||||
// Loads messages of given feeds.
|
// Loads messages of given feeds.
|
||||||
void loadMessages(const QList<int> feed_ids);
|
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:
|
protected:
|
||||||
QStringList textualFeeds() const;
|
QStringList textualFeeds() const;
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
|
||||||
#include "gui/messagesview.h"
|
#include "gui/messagesview.h"
|
||||||
|
#include "gui/formmain.h"
|
||||||
#include "core/messagesproxymodel.h"
|
#include "core/messagesproxymodel.h"
|
||||||
#include "core/messagesmodel.h"
|
#include "core/messagesmodel.h"
|
||||||
#include "gui/formmain.h"
|
|
||||||
#include "core/settings.h"
|
#include "core/settings.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,6 +17,10 @@ MessagesView::MessagesView(QWidget *parent)
|
||||||
m_proxyModel = new MessagesProxyModel(this);
|
m_proxyModel = new MessagesProxyModel(this);
|
||||||
m_sourceModel = m_proxyModel->sourceModel();
|
m_sourceModel = m_proxyModel->sourceModel();
|
||||||
|
|
||||||
|
// Forward count changes to the view.
|
||||||
|
connect(m_sourceModel, SIGNAL(feedCountsChanged()),
|
||||||
|
this, SIGNAL(feedCountsChanged()));
|
||||||
|
|
||||||
setModel(m_proxyModel);
|
setModel(m_proxyModel);
|
||||||
|
|
||||||
// NOTE: It is recommended to call this after the model is set
|
// 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 currentMessageChanged(m_sourceModel->messageAt(mapped_current_index.row()));
|
||||||
emit feedCountsChanged();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
emit currentMessageRemoved();
|
emit currentMessageRemoved();
|
||||||
|
|
Loading…
Add table
Reference in a new issue