1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 12:37:44 +00:00

LibGUI/AbstractView: Remove on_selection

Since the introduction of multi-select, we have had both `on_selection`
and `on_selection_change`, the latter of which was only invoked when a
change in selection came in through the model.

This removes `AbstractView::on_selection` and replaces it usage with
the more explicit `on_selection_change` everywhere.
This commit is contained in:
Jelle Raaijmakers 2021-05-25 22:48:43 +02:00 committed by Ali Mohammad Pur
parent ebe38639bc
commit 2c772d1848
12 changed files with 36 additions and 25 deletions

View file

@ -179,24 +179,25 @@ int main(int argc, char* argv[])
GUI::MessageBox::Type::Error);
}
};
search_list_view.on_selection = [&](auto index) {
search_list_view.on_selection_change = [&] {
const auto& index = search_list_view.selection().first();
if (!index.is_valid())
return;
if (auto model = search_list_view.model()) {
auto& search_model = *static_cast<GUI::FilteringProxyModel*>(model);
index = search_model.map(index);
} else {
auto view_model = search_list_view.model();
if (!view_model) {
page_view.load_empty_document();
return;
}
String path = model->page_path(index);
auto& search_model = *static_cast<GUI::FilteringProxyModel*>(view_model);
const auto& mapped_index = search_model.map(index);
String path = model->page_path(mapped_index);
if (path.is_null()) {
page_view.load_empty_document();
return;
}
tree_view.selection().clear();
tree_view.selection().add(index);
tree_view.selection().add(mapped_index);
history.push(path);
update_actions();
open_page(path);