1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:37:44 +00:00

ClipboardHistory: Add debug dump action

This allows for easy dumping of clipboard data to the debug console.
This commit is contained in:
Jelle Raaijmakers 2021-11-28 20:45:23 +01:00 committed by Andreas Kling
parent 298a6b9937
commit 2565f458d1
2 changed files with 11 additions and 1 deletions

View file

@ -30,6 +30,9 @@ public:
const GUI::Clipboard::DataAndType& item_at(int index) const { return m_history_items[index]; } const GUI::Clipboard::DataAndType& item_at(int index) const { return m_history_items[index]; }
void remove_item(int index); void remove_item(int index);
// ^GUI::Model
virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
// ^Config::Listener // ^Config::Listener
virtual void config_string_did_change(String const& domain, String const& group, String const& key, String const& value) override; virtual void config_string_did_change(String const& domain, String const& group, String const& key, String const& value) override;
@ -41,7 +44,6 @@ private:
virtual int row_count(const GUI::ModelIndex&) const override { return m_history_items.size(); } virtual int row_count(const GUI::ModelIndex&) const override { return m_history_items.size(); }
virtual String column_name(int) const override; virtual String column_name(int) const override;
virtual int column_count(const GUI::ModelIndex&) const override { return Column::__Count; } virtual int column_count(const GUI::ModelIndex&) const override { return Column::__Count; }
virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
// ^GUI::Clipboard::ClipboardClient // ^GUI::Clipboard::ClipboardClient
virtual void clipboard_content_did_change(const String&) override { add_item(GUI::Clipboard::the().fetch_data_and_type()); } virtual void clipboard_content_did_change(const String&) override { add_item(GUI::Clipboard::the().fetch_data_and_type()); }

View file

@ -62,10 +62,18 @@ int main(int argc, char* argv[])
model->remove_item(table_view.selection().first().row()); model->remove_item(table_view.selection().first().row());
}); });
auto debug_dump_action = GUI::Action::create("Dump to debug console", [&](const GUI::Action&) {
table_view.selection().for_each_index([&](GUI::ModelIndex& index) {
dbgln("{}", model->data(index, GUI::ModelRole::Display).as_string());
});
});
auto entry_context_menu = GUI::Menu::construct(); auto entry_context_menu = GUI::Menu::construct();
entry_context_menu->add_action(delete_action); entry_context_menu->add_action(delete_action);
entry_context_menu->add_action(debug_dump_action);
table_view.on_context_menu_request = [&](const GUI::ModelIndex&, const GUI::ContextMenuEvent& event) { table_view.on_context_menu_request = [&](const GUI::ModelIndex&, const GUI::ContextMenuEvent& event) {
delete_action->set_enabled(!table_view.selection().is_empty()); delete_action->set_enabled(!table_view.selection().is_empty());
debug_dump_action->set_enabled(!table_view.selection().is_empty());
entry_context_menu->popup(event.screen_position()); entry_context_menu->popup(event.screen_position());
}; };