summaryrefslogtreecommitdiff
path: root/dialogs
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-01-21 23:49:42 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2021-01-21 23:49:42 -0500
commit547124c94f8808d6dca407af7b6eb0d29ac12e45 (patch)
treeef79ad6ee56c6e4e294f5b946803558b592bbe59 /dialogs
parent7b6fb861acc395a913180d8e8d2d3d503a1cf2fc (diff)
downloadabaddon-portaudio-547124c94f8808d6dca407af7b6eb0d29ac12e45.tar.gz
abaddon-portaudio-547124c94f8808d6dca407af7b6eb0d29ac12e45.zip
view and delete invites, more tweaking
Diffstat (limited to 'dialogs')
-rw-r--r--dialogs/joinguild.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/dialogs/joinguild.cpp b/dialogs/joinguild.cpp
index 6fd21a8..74b467d 100644
--- a/dialogs/joinguild.cpp
+++ b/dialogs/joinguild.cpp
@@ -56,25 +56,21 @@ void JoinGuildDialog::on_entry_changed() {
}
void JoinGuildDialog::CheckCode() {
- // clang-format off
- Abaddon::Get().GetDiscordClient().FetchInviteData(
- m_code,
- [this](Invite invite) {
- m_ok.set_sensitive(true);
- if (invite.Members != -1)
- m_info.set_text(invite.Guild.Name + " (" + std::to_string(invite.Members) + " members)");
+ auto cb = [this](const std::optional<InviteData> &invite) {
+ if (invite.has_value()) {
+ m_ok.set_sensitive(true);
+ if (invite->Guild.has_value()) {
+ if (invite->MemberCount.has_value())
+ m_info.set_text(invite->Guild->Name + " (" + std::to_string(*invite->MemberCount) + " members)");
else
- m_info.set_text(invite.Guild.Name);
- },
- [this](bool not_found) {
+ m_info.set_text(invite->Guild->Name);
+ }
+ } else {
m_ok.set_sensitive(false);
- if (not_found)
- m_info.set_text("Invalid invite");
- else
- m_info.set_text("HTTP error (try again)");
+ m_info.set_text("Invalid invite");
}
- );
- // clang-format on
+ };
+ Abaddon::Get().GetDiscordClient().FetchInvite(m_code, sigc::track_obj(cb, *this));
}
bool JoinGuildDialog::IsCode(std::string str) {