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

LibGUI: Simplify setup code in GUI::MultiView

Use for_each_view_implementation() to avoid duplicating the setup code
for each subview.
This commit is contained in:
Andreas Kling 2021-01-01 02:09:51 +01:00
parent 71663a9431
commit 3eba01a02d

View file

@ -43,57 +43,24 @@ MultiView::MultiView()
m_table_view = add<TableView>(); m_table_view = add<TableView>();
m_columns_view = add<ColumnsView>(); m_columns_view = add<ColumnsView>();
m_icon_view->on_activation = [&](auto& index) { for_each_view_implementation([&](auto& view) {
if (on_activation) view.on_activation = [this](auto& index) {
on_activation(index); if (on_activation)
}; on_activation(index);
m_columns_view->on_activation = [&](auto& index) { };
if (on_activation) view.on_selection_change = [this] {
on_activation(index); if (on_selection_change)
}; on_selection_change();
m_table_view->on_activation = [&](auto& index) { };
if (on_activation) view.on_context_menu_request = [this](auto& index, auto& event) {
on_activation(index); if (on_context_menu_request)
}; on_context_menu_request(index, event);
};
m_table_view->on_selection_change = [this] { view.on_drop = [this](auto& index, auto& event) {
if (on_selection_change) if (on_drop)
on_selection_change(); on_drop(index, event);
}; };
m_icon_view->on_selection_change = [this] { });
if (on_selection_change)
on_selection_change();
};
m_columns_view->on_selection_change = [this] {
if (on_selection_change)
on_selection_change();
};
m_table_view->on_context_menu_request = [this](auto& index, auto& event) {
if (on_context_menu_request)
on_context_menu_request(index, event);
};
m_icon_view->on_context_menu_request = [this](auto& index, auto& event) {
if (on_context_menu_request)
on_context_menu_request(index, event);
};
m_columns_view->on_context_menu_request = [this](auto& index, auto& event) {
if (on_context_menu_request)
on_context_menu_request(index, event);
};
m_table_view->on_drop = [this](auto& index, auto& event) {
if (on_drop)
on_drop(index, event);
};
m_icon_view->on_drop = [this](auto& index, auto& event) {
if (on_drop)
on_drop(index, event);
};
m_columns_view->on_drop = [this](auto& index, auto& event) {
if (on_drop)
on_drop(index, event);
};
build_actions(); build_actions();
set_view_mode(ViewMode::Icon); set_view_mode(ViewMode::Icon);