mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:48:10 +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;
|
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) {
|
if (event.key() == KeyCode::Key_Left) {
|
||||||
move_cursor(CursorMovement::Left, selection_update);
|
move_cursor(CursorMovement::Left, selection_update);
|
||||||
event.accept();
|
event.accept();
|
||||||
|
|
|
@ -116,6 +116,9 @@ public:
|
||||||
const ModelIndex& cursor_index() const { return m_cursor_index; }
|
const ModelIndex& cursor_index() const { return m_cursor_index; }
|
||||||
void set_cursor(ModelIndex, SelectionUpdate);
|
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:
|
protected:
|
||||||
AbstractView();
|
AbstractView();
|
||||||
virtual ~AbstractView() override;
|
virtual ~AbstractView() override;
|
||||||
|
@ -162,6 +165,7 @@ private:
|
||||||
unsigned m_edit_triggers { EditTrigger::DoubleClicked | EditTrigger::EditKeyPressed };
|
unsigned m_edit_triggers { EditTrigger::DoubleClicked | EditTrigger::EditKeyPressed };
|
||||||
bool m_activates_on_selection { false };
|
bool m_activates_on_selection { false };
|
||||||
bool m_multi_select { true };
|
bool m_multi_select { true };
|
||||||
|
bool m_tab_key_navigation_enabled { false };
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue