Fix #389.
This commit is contained in:
parent
830939f5e6
commit
6acbac4421
@ -5,6 +5,8 @@
|
|||||||
#include "core/feeddownloader.h"
|
#include "core/feeddownloader.h"
|
||||||
#include "core/feedsproxymodel.h"
|
#include "core/feedsproxymodel.h"
|
||||||
#include "core/messagesproxymodel.h"
|
#include "core/messagesproxymodel.h"
|
||||||
|
#include "database/databasecleaner.h"
|
||||||
|
#include "database/databasefactory.h"
|
||||||
#include "exceptions/applicationexception.h"
|
#include "exceptions/applicationexception.h"
|
||||||
#include "gui/dialogs/formdatabasecleanup.h"
|
#include "gui/dialogs/formdatabasecleanup.h"
|
||||||
#include "gui/dialogs/formmain.h"
|
#include "gui/dialogs/formmain.h"
|
||||||
@ -16,8 +18,6 @@
|
|||||||
#include "gui/messagesview.h"
|
#include "gui/messagesview.h"
|
||||||
#include "gui/statusbar.h"
|
#include "gui/statusbar.h"
|
||||||
#include "gui/systemtrayicon.h"
|
#include "gui/systemtrayicon.h"
|
||||||
#include "database/databasecleaner.h"
|
|
||||||
#include "database/databasefactory.h"
|
|
||||||
#include "miscellaneous/feedreader.h"
|
#include "miscellaneous/feedreader.h"
|
||||||
#include "miscellaneous/iconfactory.h"
|
#include "miscellaneous/iconfactory.h"
|
||||||
#include "miscellaneous/mutex.h"
|
#include "miscellaneous/mutex.h"
|
||||||
|
@ -332,15 +332,16 @@ void FeedsView::openSelectedItemsInNewspaperMode() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FeedsView::selectNextItem() {
|
void FeedsView::selectNextItem() {
|
||||||
QModelIndex index_previous = moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier);
|
QModelIndex index_next = moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier);
|
||||||
|
|
||||||
while (m_proxyModel->hasChildren(index_previous) && !isExpanded(index_previous)) {
|
while (m_proxyModel->hasChildren(index_next) && !isExpanded(index_next)) {
|
||||||
expand(index_previous);
|
expand(index_next);
|
||||||
index_previous = moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier);
|
index_next = moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index_previous.isValid()) {
|
if (index_next.isValid()) {
|
||||||
setCurrentIndex(index_previous);
|
setCurrentIndex(index_next);
|
||||||
|
scrollTo(index_next, QAbstractItemView::ScrollHint::PositionAtTop);
|
||||||
}
|
}
|
||||||
|
|
||||||
setFocus();
|
setFocus();
|
||||||
@ -356,6 +357,7 @@ void FeedsView::selectPreviousItem() {
|
|||||||
|
|
||||||
if (index_previous.isValid()) {
|
if (index_previous.isValid()) {
|
||||||
setCurrentIndex(index_previous);
|
setCurrentIndex(index_previous);
|
||||||
|
scrollTo(index_previous, QAbstractItemView::ScrollHint::PositionAtTop);
|
||||||
}
|
}
|
||||||
|
|
||||||
setFocus();
|
setFocus();
|
||||||
@ -373,6 +375,7 @@ void FeedsView::selectNextUnreadItem() {
|
|||||||
|
|
||||||
if (next_unread_row.isValid()) {
|
if (next_unread_row.isValid()) {
|
||||||
setCurrentIndex(next_unread_row);
|
setCurrentIndex(next_unread_row);
|
||||||
|
scrollTo(next_unread_row, QAbstractItemView::ScrollHint::PositionAtTop);
|
||||||
emit requestViewNextUnreadMessage();
|
emit requestViewNextUnreadMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -348,7 +348,7 @@ void MessagesView::selectionChanged(const QItemSelection& selected, const QItemS
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()) {
|
if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()) {
|
||||||
scrollTo(currentIndex(), QAbstractItemView::PositionAtCenter);
|
scrollTo(currentIndex(), QAbstractItemView::ScrollHint::PositionAtCenter);
|
||||||
}
|
}
|
||||||
|
|
||||||
QTreeView::selectionChanged(selected, deselected);
|
QTreeView::selectionChanged(selected, deselected);
|
||||||
@ -533,6 +533,7 @@ void MessagesView::selectNextItem() {
|
|||||||
|
|
||||||
if (index_next.isValid()) {
|
if (index_next.isValid()) {
|
||||||
setCurrentIndex(index_next);
|
setCurrentIndex(index_next);
|
||||||
|
scrollTo(index_next, QAbstractItemView::ScrollHint::PositionAtTop);
|
||||||
selectionModel()->select(index_next, QItemSelectionModel::Select | QItemSelectionModel::Rows);
|
selectionModel()->select(index_next, QItemSelectionModel::Select | QItemSelectionModel::Rows);
|
||||||
setFocus();
|
setFocus();
|
||||||
}
|
}
|
||||||
@ -543,6 +544,7 @@ void MessagesView::selectPreviousItem() {
|
|||||||
|
|
||||||
if (index_previous.isValid()) {
|
if (index_previous.isValid()) {
|
||||||
setCurrentIndex(index_previous);
|
setCurrentIndex(index_previous);
|
||||||
|
scrollTo(index_previous, QAbstractItemView::ScrollHint::PositionAtTop);
|
||||||
selectionModel()->select(index_previous, QItemSelectionModel::Select | QItemSelectionModel::Rows);
|
selectionModel()->select(index_previous, QItemSelectionModel::Select | QItemSelectionModel::Rows);
|
||||||
setFocus();
|
setFocus();
|
||||||
}
|
}
|
||||||
@ -565,8 +567,15 @@ void MessagesView::selectNextUnreadItem() {
|
|||||||
if (next_unread.isValid()) {
|
if (next_unread.isValid()) {
|
||||||
// We found unread message, mark it.
|
// We found unread message, mark it.
|
||||||
setCurrentIndex(next_unread);
|
setCurrentIndex(next_unread);
|
||||||
selectionModel()->select(next_unread, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
selectionModel()->select(next_unread,
|
||||||
|
QItemSelectionModel::SelectionFlag::ClearAndSelect |
|
||||||
|
QItemSelectionModel::SelectionFlag::Rows);
|
||||||
setFocus();
|
setFocus();
|
||||||
|
|
||||||
|
// Make sure that item is properly visible even if
|
||||||
|
// message previewer was hidden and shows up.
|
||||||
|
qApp->processEvents();
|
||||||
|
scrollTo(next_unread, QAbstractItemView::ScrollHint::PositionAtTop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user