friends: accept menu item for incoming

This commit is contained in:
ouwou
2021-05-07 02:32:30 -04:00
parent e2736e5806
commit d679b1af76
2 changed files with 14 additions and 1 deletions

View File

@@ -114,7 +114,8 @@ FriendsListAddComponent::FriendsListAddComponent()
FriendsListFriendRow::FriendsListFriendRow(RelationshipType type, const UserData &data)
: Name(data.Username + "#" + data.Discriminator)
, Type(type)
, ID(data.ID) {
, ID(data.ID)
, m_accept("Accept") {
auto *ev = Gtk::manage(new Gtk::EventBox);
auto *box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL));
auto *img = Gtk::manage(new LazyImage(32, 32, true));
@@ -142,6 +143,8 @@ FriendsListFriendRow::FriendsListFriendRow(RelationshipType type, const UserData
}
AddWidgetMenuHandler(ev, m_menu, [this] {
m_accept.set_visible(Type == RelationshipType::PendingIncoming);
switch (Type) {
case RelationshipType::Blocked:
case RelationshipType::Friend:
@@ -161,6 +164,12 @@ FriendsListFriendRow::FriendsListFriendRow(RelationshipType type, const UserData
m_remove.signal_activate().connect([this] {
m_signal_remove.emit();
});
m_accept.signal_activate().connect([this] {
m_signal_accept.emit();
});
m_menu.append(m_accept);
m_menu.append(m_remove);
m_menu.show_all();

View File

@@ -49,12 +49,16 @@ public:
private:
Gtk::Menu m_menu;
Gtk::MenuItem m_remove; // or cancel or ignore
Gtk::MenuItem m_accept; // incoming
using type_signal_remove = sigc::signal<void>;
using type_signal_accept = sigc::signal<void>;
type_signal_remove m_signal_remove;
type_signal_accept m_signal_accept;
public:
type_signal_remove signal_action_remove();
type_signal_accept signal_action_accept();
};
class FriendsListWindow : public Gtk::Window {