mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibGUI: Add GAbstractView::activate_selected()
This is a nice little utility to activate all the selected items, which is what you usually want to do.
This commit is contained in:
parent
caa08938e5
commit
0f18a16e2c
Notes:
sideshowbarker
2024-07-19 10:13:34 +09:00
Author: https://github.com/bugaevc Commit: https://github.com/SerenityOS/serenity/commit/0f18a16e2c8 Pull-request: https://github.com/SerenityOS/serenity/pull/1050
@ -383,9 +383,7 @@ void GAbstractColumnView::keydown_event(GKeyEvent& event)
|
||||
return;
|
||||
auto& model = *this->model();
|
||||
if (event.key() == KeyCode::Key_Return) {
|
||||
selection().for_each_index([this](auto& index) {
|
||||
activate(index);
|
||||
});
|
||||
activate_selected();
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Up) {
|
||||
@ -457,13 +455,10 @@ void GAbstractColumnView::doubleclick_event(GMouseEvent& event)
|
||||
if (event.y() < header_height())
|
||||
return;
|
||||
if (!selection().is_empty()) {
|
||||
if (is_editable()) {
|
||||
if (is_editable())
|
||||
begin_editing(selection().first());
|
||||
} else {
|
||||
selection().for_each_index([this](auto& index) {
|
||||
activate(index);
|
||||
});
|
||||
}
|
||||
else
|
||||
activate_selected();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -113,6 +113,16 @@ void GAbstractView::activate(const GModelIndex& index)
|
||||
on_activation(index);
|
||||
}
|
||||
|
||||
void GAbstractView::activate_selected()
|
||||
{
|
||||
if (!on_activation)
|
||||
return;
|
||||
|
||||
selection().for_each_index([this](auto& index) {
|
||||
on_activation(index);
|
||||
});
|
||||
}
|
||||
|
||||
void GAbstractView::notify_selection_changed(Badge<GModelSelection>)
|
||||
{
|
||||
did_update_selection();
|
||||
|
@ -51,6 +51,7 @@ protected:
|
||||
|
||||
virtual void did_scroll() override;
|
||||
void activate(const GModelIndex&);
|
||||
void activate_selected();
|
||||
void update_edit_widget_position();
|
||||
|
||||
bool m_editable { false };
|
||||
|
@ -258,9 +258,7 @@ void GItemView::doubleclick_event(GMouseEvent& event)
|
||||
return;
|
||||
if (event.button() == GMouseButton::Left) {
|
||||
mousedown_event(event);
|
||||
selection().for_each_index([this](auto& index) {
|
||||
activate(index);
|
||||
});
|
||||
activate_selected();
|
||||
}
|
||||
}
|
||||
|
||||
@ -352,9 +350,7 @@ void GItemView::keydown_event(GKeyEvent& event)
|
||||
|
||||
auto& model = *this->model();
|
||||
if (event.key() == KeyCode::Key_Return) {
|
||||
selection().for_each_index([this](auto& index) {
|
||||
activate(index);
|
||||
});
|
||||
activate_selected();
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Home) {
|
||||
|
@ -161,9 +161,7 @@ void GListView::keydown_event(GKeyEvent& event)
|
||||
return;
|
||||
auto& model = *this->model();
|
||||
if (event.key() == KeyCode::Key_Return) {
|
||||
selection().for_each_index([this](auto& index) {
|
||||
activate(index);
|
||||
});
|
||||
activate_selected();
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Up) {
|
||||
@ -233,13 +231,10 @@ void GListView::doubleclick_event(GMouseEvent& event)
|
||||
return;
|
||||
if (event.button() == GMouseButton::Left) {
|
||||
if (!selection().is_empty()) {
|
||||
if (is_editable()) {
|
||||
if (is_editable())
|
||||
begin_editing(selection().first());
|
||||
} else {
|
||||
selection().for_each_index([this](auto& index) {
|
||||
activate(index);
|
||||
});
|
||||
}
|
||||
else
|
||||
activate_selected();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user