mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 13:38:11 +00:00
LibGUI: Add optional "tab key navigation" to AbstractView
If enabled, the view cursor will move right/left when pressing tab/shift+tab.
This commit is contained in:
parent
cd930e0f3d
commit
6316525d50
2 changed files with 17 additions and 0 deletions
|
@ -378,6 +378,19 @@ void AbstractTableView::keydown_event(KeyEvent& event)
|
|||
selection_update = SelectionUpdate::Shift;
|
||||
}
|
||||
|
||||
if (is_tab_key_navigation_enabled()) {
|
||||
if (event.modifiers() == KeyModifier::Mod_Shift && event.key() == KeyCode::Key_Tab) {
|
||||
move_cursor(CursorMovement::Left, SelectionUpdate::Set);
|
||||
event.accept();
|
||||
return;
|
||||
}
|
||||
if (!event.modifiers() && event.key() == KeyCode::Key_Tab) {
|
||||
move_cursor(CursorMovement::Right, SelectionUpdate::Set);
|
||||
event.accept();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (event.key() == KeyCode::Key_Left) {
|
||||
move_cursor(CursorMovement::Left, selection_update);
|
||||
event.accept();
|
||||
|
|
|
@ -116,6 +116,9 @@ public:
|
|||
const ModelIndex& cursor_index() const { return m_cursor_index; }
|
||||
void set_cursor(ModelIndex, SelectionUpdate);
|
||||
|
||||
bool is_tab_key_navigation_enabled() const { return m_tab_key_navigation_enabled; }
|
||||
void set_tab_key_navigation_enabled(bool enabled) { m_tab_key_navigation_enabled = enabled; }
|
||||
|
||||
protected:
|
||||
AbstractView();
|
||||
virtual ~AbstractView() override;
|
||||
|
@ -162,6 +165,7 @@ private:
|
|||
unsigned m_edit_triggers { EditTrigger::DoubleClicked | EditTrigger::EditKeyPressed };
|
||||
bool m_activates_on_selection { false };
|
||||
bool m_multi_select { true };
|
||||
bool m_tab_key_navigation_enabled { false };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue