1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:08:12 +00:00

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
15 changed files with 85 additions and 55 deletions

View file

@ -76,6 +76,8 @@ public:
void set_last_valid_hovered_index(const ModelIndex&);
void set_key_column_and_sort_order(int column, SortOrder);
protected:
AbstractView();
virtual ~AbstractView() override;
@ -111,6 +113,9 @@ protected:
ModelIndex m_hovered_index;
ModelIndex m_last_valid_hovered_index;
int m_key_column { 0 };
SortOrder m_sort_order;
private:
RefPtr<Model> m_model;
OwnPtr<ModelEditingDelegate> m_editing_delegate;