diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index 29814a4fc..4a2ce0074 100755 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -396,7 +396,7 @@ void FormMain::onFeedUpdatesFinished(const FeedDownloadResults& results) { Q_UNUSED(results) statusBar()->clearProgressFeeds(); - tabWidget()->feedMessageViewer()->messagesView()->reloadSelections(); + tabWidget()->feedMessageViewer()->messagesView()->reloadSelections(true); } void FormMain::onFeedUpdatesStarted() { diff --git a/src/librssguard/gui/messagesview.cpp b/src/librssguard/gui/messagesview.cpp index ee544d0d6..dea0dc45f 100644 --- a/src/librssguard/gui/messagesview.cpp +++ b/src/librssguard/gui/messagesview.cpp @@ -84,7 +84,7 @@ void MessagesView::keyboardSearch(const QString& search) { setSelectionMode(QAbstractItemView::SelectionMode::ExtendedSelection); } -void MessagesView::reloadSelections() { +void MessagesView::reloadSelections(bool only_if_nothing_selected) { const QDateTime dt1 = QDateTime::currentDateTime(); QModelIndex current_index = selectionModel()->currentIndex(); const QModelIndex mapped_current_index = m_proxyModel->mapToSource(current_index); @@ -92,6 +92,10 @@ void MessagesView::reloadSelections() { const int col = header()->sortIndicatorSection(); const Qt::SortOrder ord = header()->sortIndicatorOrder(); + if (only_if_nothing_selected && selected_message.m_id > 0) { + return; + } + // Reload the model now. sort(col, ord, true, false, false); diff --git a/src/librssguard/gui/messagesview.h b/src/librssguard/gui/messagesview.h index 549ac29b2..91a26e197 100644 --- a/src/librssguard/gui/messagesview.h +++ b/src/librssguard/gui/messagesview.h @@ -29,7 +29,7 @@ class MessagesView : public QTreeView { // Called after data got changed externally // and it needs to be reloaded to the view. - void reloadSelections(); + void reloadSelections(bool only_if_nothing_selected = false); // Loads un-deleted messages from selected feeds. void loadItem(RootItem* item);