Andreas Kling
a1e381a0f8
LibGUI: Move GUI::Model::Role to GUI::ModelRole
...
This is preparation for using ModelRole in the ModelIndex API.
2020-08-16 16:44:09 +02:00
Andreas Kling
e1ed71ef9e
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.
2020-08-16 16:44:09 +02:00
Andreas Kling
686ee2bf04
LibGUI: Rename ModelClient::on_model_update() => model_did_update()
...
This follows the typical client callback naming scheme used elsewhere
and doesn't collide with the "on_foo" Function hook convention.
2020-08-13 20:18:11 +02:00
Andreas Kling
4088beb8eb
LibGUI: Remove Model::sibling() since it's the same as index()
...
... I'm not sure what the idea was here, but since these functions do
the same thing, let's only have index().
2020-08-13 20:18:11 +02:00
Andreas Kling
fe19cf0ff2
LibGUI: Move Model::index() out of line
2020-08-13 20:18:11 +02:00
AnotherTest
d04c833002
LibGUI: Add FilteringProxyModel
...
This model does not support nested indices well, in that it flattens
them all out.
That's a FIXME for the future as it does its job for now.
2020-08-01 08:39:26 +02:00
Tom
b778804d20
LibGUI: Add ModelClient abstract class and allow registering clients
...
This solves a problem where the SortingProxyModel doesn't
receive the on_update call because other code overwrote
the handler later on.
2020-07-13 19:49:34 +02:00
Andreas Kling
a5799ed462
LibGUI: Add SortingProxyModel::sort_role()
...
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-07-04 18:40:21 +02:00
Andreas Kling
248f2d5cf5
LibGUI: Remove Model::row_name() since nothing used it
2020-05-21 20:19:43 +02:00
Andreas Kling
2adb0a07e5
LibGUI: Get rid of Model::ColumnMetadata and always use auto-sizing
...
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-21 19:55:44 +02:00
Andreas Kling
c666c251c8
LibGUI: Replace ColumnMetadata::sortable => Model::is_column_sortable()
...
Now there's only one thing left in ColumnMetadata: the initial width.
2020-05-21 19:55:44 +02:00
Andreas Kling
2e03bded43
LibGUI: Add Model::Role::TextAlignment and remove from ColumnMetadata
2020-05-21 19:55:44 +02:00
Andreas Kling
04187576ff
LibGUI: Models should always specify font via Model::Role::Font
...
This gets rid of one field in ColumnData. The goal is to get rid of all
fields and lose ColumnData entirely.
2020-05-21 19:55:44 +02:00
Andreas Kling
8e4751a963
LibGUI: Add a way for models to update without invalidating indexes
...
This is really just a workaround to keep SystemMonitor's process table
working right wrt selection retention during resorts (while also doing
full index invalidation on things like ProfileViewer inversion.)
It's starting to feel like the model abstraction is not super great
and we'll need a better approach if we want to actually build some more
dynamic functionality into our views.
2020-04-12 12:03:33 +02:00
Andreas Kling
2143da6434
LibGUI: Add forwarding header
...
This patch adds <LibGUI/Forward.h> and uses it a bunch.
It also dragged various header dependency reduction changes into it.
2020-02-16 09:41:56 +01:00
Andreas Kling
a368cf7d51
LibGfx: Replace manual forward declarations with <LibGfx/Forward.h>
2020-02-15 00:10:34 +01:00
Andreas Kling
6e7ca44dee
LibGUI: Add GUI::Model::accepts_drag(index, data_type)
...
This allows a model to indicate whether it would accept a drag with a
given data type being dropped on a given index.
2020-02-13 21:45:46 +01:00
Andreas Kling
6a9cc66b97
LibGUI: Remove leading G from filenames
2020-02-06 20:33:02 +01:00