Remember sub sort column of transfer list

This commit is contained in:
jagannatharjun
2021-03-13 11:36:01 +05:30
parent 1568e98d43
commit cf5e833898
2 changed files with 15 additions and 6 deletions

View File

@@ -61,10 +61,17 @@ namespace
return 0;
return isLeftValid ? -1 : 1;
}
int adjustSubSortColumn(const int column)
{
return ((column >= 0) && (column < TransferListModel::NB_COLUMNS))
? column : TransferListModel::TR_NAME;
}
}
TransferListSortModel::TransferListSortModel(QObject *parent)
: QSortFilterProxyModel {parent}
, m_subSortColumn {"TransferList/SubSortColumn", TransferListModel::TR_NAME, adjustSubSortColumn}
{
setSortRole(TransferListModel::UnderlyingDataRole);
}
@@ -186,14 +193,15 @@ bool TransferListSortModel::lessThan(const QModelIndex &left, const QModelIndex
{
Q_ASSERT(left.column() == right.column());
if (m_sortColumn != left.column())
if (m_lastSortColumn != left.column())
{
m_subSortColumn = m_sortColumn;
m_sortColumn = left.column();
if (m_lastSortColumn != -1)
m_subSortColumn = m_lastSortColumn;
m_lastSortColumn = left.column();
}
const int result = compare(left, right);
if ((result == 0) && (m_subSortColumn != -1))
if (result == 0)
return compare(left.sibling(left.row(), m_subSortColumn), right.sibling(right.row(), m_subSortColumn)) < 0;
return result < 0;