Skip to content

Commit 3eba01a

Browse files
committed
LibGUI: Simplify setup code in GUI::MultiView
Use for_each_view_implementation() to avoid duplicating the setup code for each subview.
1 parent 71663a9 commit 3eba01a

File tree

1 file changed

+18
-51
lines changed

1 file changed

+18
-51
lines changed

Libraries/LibGUI/MultiView.cpp

Lines changed: 18 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -43,57 +43,24 @@ MultiView::MultiView()
4343
m_table_view = add<TableView>();
4444
m_columns_view = add<ColumnsView>();
4545

46-
m_icon_view->on_activation = [&](auto& index) {
47-
if (on_activation)
48-
on_activation(index);
49-
};
50-
m_columns_view->on_activation = [&](auto& index) {
51-
if (on_activation)
52-
on_activation(index);
53-
};
54-
m_table_view->on_activation = [&](auto& index) {
55-
if (on_activation)
56-
on_activation(index);
57-
};
58-
59-
m_table_view->on_selection_change = [this] {
60-
if (on_selection_change)
61-
on_selection_change();
62-
};
63-
m_icon_view->on_selection_change = [this] {
64-
if (on_selection_change)
65-
on_selection_change();
66-
};
67-
m_columns_view->on_selection_change = [this] {
68-
if (on_selection_change)
69-
on_selection_change();
70-
};
71-
72-
m_table_view->on_context_menu_request = [this](auto& index, auto& event) {
73-
if (on_context_menu_request)
74-
on_context_menu_request(index, event);
75-
};
76-
m_icon_view->on_context_menu_request = [this](auto& index, auto& event) {
77-
if (on_context_menu_request)
78-
on_context_menu_request(index, event);
79-
};
80-
m_columns_view->on_context_menu_request = [this](auto& index, auto& event) {
81-
if (on_context_menu_request)
82-
on_context_menu_request(index, event);
83-
};
84-
85-
m_table_view->on_drop = [this](auto& index, auto& event) {
86-
if (on_drop)
87-
on_drop(index, event);
88-
};
89-
m_icon_view->on_drop = [this](auto& index, auto& event) {
90-
if (on_drop)
91-
on_drop(index, event);
92-
};
93-
m_columns_view->on_drop = [this](auto& index, auto& event) {
94-
if (on_drop)
95-
on_drop(index, event);
96-
};
46+
for_each_view_implementation([&](auto& view) {
47+
view.on_activation = [this](auto& index) {
48+
if (on_activation)
49+
on_activation(index);
50+
};
51+
view.on_selection_change = [this] {
52+
if (on_selection_change)
53+
on_selection_change();
54+
};
55+
view.on_context_menu_request = [this](auto& index, auto& event) {
56+
if (on_context_menu_request)
57+
on_context_menu_request(index, event);
58+
};
59+
view.on_drop = [this](auto& index, auto& event) {
60+
if (on_drop)
61+
on_drop(index, event);
62+
};
63+
});
9764

9865
build_actions();
9966
set_view_mode(ViewMode::Icon);

0 commit comments

Comments
 (0)