1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 09:08:10 +00:00

IRCClient: Add channel member context menus for common CTCP requests

Add menu items for CTCP: USERINFO, FINGER, TIME, VERSION, CLIENTINFO
This commit is contained in:
Brendan Coles 2020-04-11 08:23:03 +00:00 committed by Andreas Kling
parent 3b21c4aa56
commit 502299919a
3 changed files with 54 additions and 0 deletions

View file

@ -137,6 +137,43 @@ IRCWindow::IRCWindow(IRCClient& client, void* owner, Type type, const String& na
m_context_menu->add_separator();
m_context_menu->add_action(GUI::Action::create("User info", [&](const GUI::Action&) {
auto nick = channel().member_model()->nick_at(member_view.selection().first());
if (nick.is_empty())
return;
m_client.handle_ctcp_user_action(m_client.nick_without_prefix(nick.characters()), "USERINFO");
}));
m_context_menu->add_action(GUI::Action::create("Finger", [&](const GUI::Action&) {
auto nick = channel().member_model()->nick_at(member_view.selection().first());
if (nick.is_empty())
return;
m_client.handle_ctcp_user_action(m_client.nick_without_prefix(nick.characters()), "FINGER");
}));
m_context_menu->add_action(GUI::Action::create("Time", [&](const GUI::Action&) {
auto nick = channel().member_model()->nick_at(member_view.selection().first());
if (nick.is_empty())
return;
m_client.handle_ctcp_user_action(m_client.nick_without_prefix(nick.characters()), "TIME");
}));
m_context_menu->add_action(GUI::Action::create("Version", [&](const GUI::Action&) {
auto nick = channel().member_model()->nick_at(member_view.selection().first());
if (nick.is_empty())
return;
m_client.handle_ctcp_user_action(m_client.nick_without_prefix(nick.characters()), "VERSION");
}));
m_context_menu->add_action(GUI::Action::create("Client info", [&](const GUI::Action&) {
auto nick = channel().member_model()->nick_at(member_view.selection().first());
if (nick.is_empty())
return;
m_client.handle_ctcp_user_action(m_client.nick_without_prefix(nick.characters()), "CLIENTINFO");
}));
m_context_menu->add_separator();
m_context_menu->add_action(GUI::Action::create("Kick", [&](const GUI::Action&) {
auto nick = channel().member_model()->nick_at(member_view.selection().first());
if (nick.is_empty())