LibGUI: Make model sorting imperative and move order to AbstractView

Instead of SortingProxyModel having a column+order, we move that state
to AbstractView. When you click on a column header, the view tells the
model to resort the relevant column with the new order.

This is implemented in SortingProxyModel by simply walking all the
reified source/proxy mappings and resorting their row indexes.
This commit is contained in:
Andreas Kling 2020-08-16 10:44:10 +02:00
parent 370624bc37
commit e1ed71ef9e
Notes: sideshowbarker 2024-07-19 03:33:29 +09:00
15 changed files with 85 additions and 55 deletions

View file

@ -37,7 +37,8 @@
namespace GUI {
AbstractView::AbstractView()
: m_selection(*this)
: m_sort_order(SortOrder::Ascending)
, m_selection(*this)
{
}
@ -400,4 +401,13 @@ void AbstractView::set_multi_select(bool multi_select)
}
}
void AbstractView::set_key_column_and_sort_order(int column, SortOrder sort_order)
{
m_key_column = column;
m_sort_order = sort_order;
if (model())
model()->sort(column, sort_order);
}
}