Make message list more consistent when unread-msgs-only feature is active.
This commit is contained in:
parent
8bc36ccbd2
commit
0eb8d75608
|
@ -37,8 +37,6 @@ class FeedDownloader : public QObject {
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
// Constructors and destructors.
|
||||
explicit FeedDownloader();
|
||||
virtual ~FeedDownloader();
|
||||
|
||||
|
|
|
@ -267,7 +267,3 @@ QModelIndexList FeedsProxyModel::mapListToSource(const QModelIndexList& indexes)
|
|||
|
||||
return source_indexes;
|
||||
}
|
||||
|
||||
void FeedsProxyModel::invalidateFilter() {
|
||||
QSortFilterProxyModel::invalidateFilter();
|
||||
}
|
||||
|
|
|
@ -33,9 +33,6 @@ class FeedsProxyModel : public QSortFilterProxyModel {
|
|||
public slots:
|
||||
void invalidateReadFeedsFilter(bool set_new_value = false, bool show_unread_only = false);
|
||||
|
||||
private slots:
|
||||
void invalidateFilter();
|
||||
|
||||
signals:
|
||||
void expandAfterFilterIn(QModelIndex idx) const;
|
||||
|
||||
|
|
|
@ -90,14 +90,6 @@ void MessagesProxyModel::setShowUnreadOnly(bool show_unread_only) {
|
|||
qApp->settings()->setValue(GROUP(Messages), Messages::ShowOnlyUnreadMessages, show_unread_only);
|
||||
}
|
||||
|
||||
void MessagesProxyModel::invalidateUnreadMessagesFilter(bool set_new_value, bool show_unread_only) {
|
||||
if (set_new_value) {
|
||||
setShowUnreadOnly(show_unread_only);
|
||||
}
|
||||
|
||||
QTimer::singleShot(0, this, &MessagesProxyModel::invalidateFilter);
|
||||
}
|
||||
|
||||
QModelIndexList MessagesProxyModel::mapListFromSource(const QModelIndexList& indexes, bool deep) const {
|
||||
QModelIndexList mapped_indexes;
|
||||
|
||||
|
|
|
@ -29,9 +29,6 @@ class MessagesProxyModel : public QSortFilterProxyModel {
|
|||
bool showUnreadOnly() const;
|
||||
void setShowUnreadOnly(bool show_unread_only);
|
||||
|
||||
public slots:
|
||||
void invalidateUnreadMessagesFilter(bool set_new_value = false, bool show_unread_only = false);
|
||||
|
||||
private:
|
||||
QModelIndex getNextUnreadItemIndex(int default_row, int max_row) const;
|
||||
|
||||
|
|
|
@ -171,10 +171,10 @@ void FeedMessageViewer::toggleShowOnlyUnreadMessages() {
|
|||
const QAction* origin = qobject_cast<QAction*>(sender());
|
||||
|
||||
if (origin == nullptr) {
|
||||
m_messagesView->model()->invalidateUnreadMessagesFilter(true, false);
|
||||
m_messagesView->switchShowUnreadOnly(true, false);
|
||||
}
|
||||
else {
|
||||
m_messagesView->model()->invalidateUnreadMessagesFilter(true, origin->isChecked());
|
||||
m_messagesView->switchShowUnreadOnly(true, origin->isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <QProcess>
|
||||
#include <QScrollBar>
|
||||
#include <QTimer>
|
||||
#include <QTimer>
|
||||
|
||||
MessagesView::MessagesView(QWidget* parent) : QTreeView(parent), m_contextMenu(nullptr), m_columnsAdjusted(false) {
|
||||
m_sourceModel = qApp->feedReader()->messagesModel();
|
||||
|
@ -324,6 +325,14 @@ void MessagesView::loadItem(RootItem* item) {
|
|||
emit currentMessageRemoved();
|
||||
}
|
||||
|
||||
void MessagesView::switchShowUnreadOnly(bool set_new_value, bool show_unread_only) {
|
||||
if (set_new_value) {
|
||||
m_proxyModel->setShowUnreadOnly(show_unread_only);
|
||||
}
|
||||
|
||||
reloadSelections();
|
||||
}
|
||||
|
||||
void MessagesView::openSelectedSourceMessagesExternally() {
|
||||
for (const QModelIndex& index : selectionModel()->selectedRows()) {
|
||||
QString link = m_sourceModel->messageAt(m_proxyModel->mapToSource(index).row())
|
||||
|
|
|
@ -61,6 +61,8 @@ class MessagesView : public QTreeView {
|
|||
void searchMessages(const QString& pattern);
|
||||
void filterMessages(MessagesModel::MessageHighlighter filter);
|
||||
|
||||
void switchShowUnreadOnly(bool set_new_value = false, bool show_unread_only = false);
|
||||
|
||||
private slots:
|
||||
void openSelectedMessagesWithExternalTool();
|
||||
|
||||
|
|
Loading…
Reference in New Issue