mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-25 19:02:07 -05:00
LibGUI: Allow moving the TableView selection horizontally with keyboard
This commit is contained in:
parent
e5a6e297bf
commit
2cbe290930
3 changed files with 13 additions and 5 deletions
|
@ -435,7 +435,7 @@ int AbstractTableView::item_count() const
|
|||
return model()->row_count();
|
||||
}
|
||||
|
||||
void AbstractTableView::move_selection(int steps)
|
||||
void AbstractTableView::move_selection(int vertical_steps, int horizontal_steps)
|
||||
{
|
||||
if (!model())
|
||||
return;
|
||||
|
@ -443,7 +443,7 @@ void AbstractTableView::move_selection(int steps)
|
|||
ModelIndex new_index;
|
||||
if (!selection().is_empty()) {
|
||||
auto old_index = selection().first();
|
||||
new_index = model.index(old_index.row() + steps, old_index.column());
|
||||
new_index = model.index(old_index.row() + vertical_steps, old_index.column() + horizontal_steps);
|
||||
} else {
|
||||
new_index = model.index(0, 0);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ public:
|
|||
|
||||
virtual void select_all() override;
|
||||
|
||||
void move_selection(int steps);
|
||||
void move_selection(int vertical_steps, int horizontal_steps);
|
||||
|
||||
protected:
|
||||
virtual ~AbstractTableView() override;
|
||||
|
|
|
@ -162,12 +162,20 @@ void TableView::keydown_event(KeyEvent& event)
|
|||
activate_selected();
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Left) {
|
||||
move_selection(0, -1);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Right) {
|
||||
move_selection(0, 1);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Up) {
|
||||
move_selection(-1);
|
||||
move_selection(-1, 0);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Down) {
|
||||
move_selection(1);
|
||||
move_selection(1, 0);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_PageUp) {
|
||||
|
|
Loading…
Add table
Reference in a new issue