mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-13 20:18:50 +03:00
friends: accept incoming
This commit is contained in:
@@ -77,6 +77,7 @@ FriendsList::FriendsList()
|
||||
FriendsListFriendRow *FriendsList::MakeRow(const UserData &user, RelationshipType type) {
|
||||
auto *row = Gtk::manage(new FriendsListFriendRow(type, user));
|
||||
row->signal_action_remove().connect(sigc::bind(sigc::mem_fun(*this, &FriendsList::OnActionRemove), user.ID));
|
||||
row->signal_action_accept().connect(sigc::bind(sigc::mem_fun(*this, &FriendsList::OnActionAccept), user.ID));
|
||||
return row;
|
||||
}
|
||||
|
||||
@@ -102,6 +103,17 @@ void FriendsList::OnRelationshipRemove(Snowflake id, RelationshipType type) {
|
||||
}
|
||||
}
|
||||
|
||||
void FriendsList::OnActionAccept(Snowflake id) {
|
||||
const auto cb = [this](bool success, DiscordError code) {
|
||||
if (!success) {
|
||||
Gtk::MessageDialog dlg(*dynamic_cast<Gtk::Window *>(get_toplevel()), "Failed to accept", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
dlg.set_position(Gtk::WIN_POS_CENTER);
|
||||
dlg.run();
|
||||
}
|
||||
};
|
||||
Abaddon::Get().GetDiscordClient().PutRelationship(id, sigc::track_obj(cb, *this));
|
||||
}
|
||||
|
||||
void FriendsList::OnActionRemove(Snowflake id) {
|
||||
auto &discord = Abaddon::Get().GetDiscordClient();
|
||||
const auto user = discord.GetUser(id);
|
||||
@@ -316,7 +328,7 @@ FriendsListFriendRow::type_signal_remove FriendsListFriendRow::signal_action_rem
|
||||
}
|
||||
|
||||
FriendsListFriendRow::type_signal_accept FriendsListFriendRow::signal_action_accept() {
|
||||
return type_signal_accept();
|
||||
return m_signal_accept;
|
||||
}
|
||||
|
||||
FriendsListWindow::FriendsListWindow() {
|
||||
|
||||
Reference in New Issue
Block a user