Save and restore current index of mail list

This commit is contained in:
thunder2 2021-12-30 20:47:10 +01:00
parent 8f21c158c6
commit ae0c993b6b
2 changed files with 14 additions and 0 deletions

View File

@ -325,6 +325,12 @@ void MessagesDialog::preModelUpdate()
mTmpSavedSelectedIds.clear();
getSelectedMessages(mTmpSavedSelectedIds);
mTmpSavedCurrentId.clear();
const QModelIndex& m = ui.messageTreeWidget->currentIndex();
if (m.isValid()) {
mTmpSavedCurrentId = m.sibling(m.row(), RsMessageModel::COLUMN_THREAD_MSGID).data(RsMessageModel::MsgIdRole).toString();
}
std::cerr << "Pre-change: saving selection for " << mTmpSavedSelectedIds.size() << " indexes" << std::endl;
}
@ -342,6 +348,13 @@ void MessagesDialog::postModelUpdate()
}
ui.messageTreeWidget->selectionModel()->select(sel,QItemSelectionModel::SelectCurrent);
if (!mTmpSavedCurrentId.isEmpty()) {
QModelIndex index = mMessageProxyModel->mapFromSource(mMessageModel->getIndexOfMessage(mTmpSavedCurrentId.toStdString()));
if (index.isValid()) {
ui.messageTreeWidget->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Select);
}
}
}
void MessagesDialog::sortColumn(int col,Qt::SortOrder so)

View File

@ -159,6 +159,7 @@ private:
Ui::MessagesDialog ui;
QList<QString> mTmpSavedSelectedIds;
QString mTmpSavedCurrentId;
QModelIndex lastSelectedIndex;
RsEventsHandlerId_t mEventHandlerId;