mirror of
https://github.com/RGBCube/serenity
synced 2025-07-10 03:57:35 +00:00
LibGUI: Implement a basic "any key pressed" edit trigger for TableView
This trigger allows you to initiate cell editing by simply starting to type something into the cell. :^)
This commit is contained in:
parent
f3e4b62be9
commit
5daa19fdab
2 changed files with 13 additions and 2 deletions
|
@ -144,6 +144,7 @@ protected:
|
||||||
ModelIndex m_edit_index;
|
ModelIndex m_edit_index;
|
||||||
RefPtr<Widget> m_edit_widget;
|
RefPtr<Widget> m_edit_widget;
|
||||||
Gfx::IntRect m_edit_widget_content_rect;
|
Gfx::IntRect m_edit_widget_content_rect;
|
||||||
|
OwnPtr<ModelEditingDelegate> m_editing_delegate;
|
||||||
|
|
||||||
Gfx::IntPoint m_left_mousedown_position;
|
Gfx::IntPoint m_left_mousedown_position;
|
||||||
bool m_might_drag { false };
|
bool m_might_drag { false };
|
||||||
|
@ -156,7 +157,6 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RefPtr<Model> m_model;
|
RefPtr<Model> m_model;
|
||||||
OwnPtr<ModelEditingDelegate> m_editing_delegate;
|
|
||||||
ModelSelection m_selection;
|
ModelSelection m_selection;
|
||||||
ModelIndex m_cursor_index;
|
ModelIndex m_cursor_index;
|
||||||
unsigned m_edit_triggers { EditTrigger::DoubleClicked | EditTrigger::EditKeyPressed };
|
unsigned m_edit_triggers { EditTrigger::DoubleClicked | EditTrigger::EditKeyPressed };
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <LibGUI/HeaderView.h>
|
#include <LibGUI/HeaderView.h>
|
||||||
#include <LibGUI/Menu.h>
|
#include <LibGUI/Menu.h>
|
||||||
#include <LibGUI/Model.h>
|
#include <LibGUI/Model.h>
|
||||||
|
#include <LibGUI/ModelEditingDelegate.h>
|
||||||
#include <LibGUI/Painter.h>
|
#include <LibGUI/Painter.h>
|
||||||
#include <LibGUI/ScrollBar.h>
|
#include <LibGUI/ScrollBar.h>
|
||||||
#include <LibGUI/TableView.h>
|
#include <LibGUI/TableView.h>
|
||||||
|
@ -171,7 +172,17 @@ void TableView::keydown_event(KeyEvent& event)
|
||||||
activate(cursor_index());
|
activate(cursor_index());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return AbstractTableView::keydown_event(event);
|
|
||||||
|
AbstractTableView::keydown_event(event);
|
||||||
|
|
||||||
|
if (event.is_accepted())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (is_editable() && edit_triggers() & EditTrigger::AnyKeyPressed && !event.text().is_empty()) {
|
||||||
|
begin_editing(cursor_index());
|
||||||
|
if (m_editing_delegate)
|
||||||
|
m_editing_delegate->set_value(event.text());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TableView::move_cursor(CursorMovement movement, SelectionUpdate selection_update)
|
void TableView::move_cursor(CursorMovement movement, SelectionUpdate selection_update)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue