summaryrefslogtreecommitdiff
path: root/Libraries/LibGUI/SortingProxyModel.h
AgeCommit message (Collapse)Author
2020-10-22LibGUI: Implement searching/jumping as you type in viewsTom
This allows the user to start typing and highlighting and jumping to a match in ColumnsView, IconView, TableView and TreeView if the model supports it.
2020-09-24LibGUI: Make SortingProxyModel forward is_editable() and set_data()Andreas Kling
This will allow us to edit models through a SortingProxyModel. :^)
2020-08-16LibGUI: Move GUI::Model::Role to GUI::ModelRoleAndreas Kling
This is preparation for using ModelRole in the ModelIndex API.
2020-08-16LibGUI: Make model sorting imperative and move order to AbstractViewAndreas Kling
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.
2020-08-16LibGUI: Make SortingProxyModel support hierarchical modelsAndreas Kling
We now create multiple levels of internal mappings between source and proxy indexes, to support tree models. This breaks selection update after resort, which we'll have to deal with somehow.
2020-08-16LibGUI: Virtualize SortingProxyModel comparatorAndreas Kling
This patch adds SortingProxyModel::less_than(ModelIndex, ModelIndex) which is now used to implement the sort order. This allows you to subclass SortingProxyModel if you want to tweak how sorting works. Get rid of the awkward case sensitivity logic in SortingProxyModel since that can now be done outside. Turns out nobody was actually using it anyway, but it seems like something we will want to do in the future someday.
2020-08-13LibGUI: Remove unused bool SortingProxyModel::m_sortingAndreas Kling
2020-08-13LibGUI: Rename ModelClient::on_model_update() => model_did_update()Andreas Kling
This follows the typical client callback naming scheme used elsewhere and doesn't collide with the "on_foo" Function hook convention.
2020-08-13LibGUI: Rename SortingProxyModel "target" to "source" insteadAndreas Kling
2020-07-13LibGUI: Add ModelClient abstract class and allow registering clientsTom
This solves a problem where the SortingProxyModel doesn't receive the on_update call because other code overwrote the handler later on.
2020-07-04LibGUI: Add SortingProxyModel::sort_role()Andreas Kling
This allows you to specify a role to sort by. Defaults to Role::Sort. Also reordered the Role enum so that Role::Custom is last.
2020-05-21LibGUI: Remove Model::row_name() since nothing used itAndreas Kling
2020-05-21LibGUI: Get rid of Model::ColumnMetadata and always use auto-sizingAndreas Kling
Auto-sizing of view columns is now enabled by default. This removes the last remaining need for ColumnMetadata, so this patch gets rid of it.
2020-05-21LibGUI: Replace ColumnMetadata::sortable => Model::is_column_sortable()Andreas Kling
Now there's only one thing left in ColumnMetadata: the initial width.
2020-02-06LibGUI: Remove leading G from filenamesAndreas Kling