diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-08-12 18:35:58 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-08-12 18:35:58 -0400 |
commit | 6a5ecb4d9584f7276cf1d592c95811a66943f61c (patch) | |
tree | 2c09268db37461ce9e1882789183c508bb36dd4a /src/components/progressbar.cpp | |
parent | dc28eae95a46c3079fcc76b3425ffa37844dd37d (diff) | |
parent | f60cea2216dd9677cb9105364cdaa778a0c187db (diff) | |
download | abaddon-portaudio-6a5ecb4d9584f7276cf1d592c95811a66943f61c.tar.gz abaddon-portaudio-6a5ecb4d9584f7276cf1d592c95811a66943f61c.zip |
Merge branch 'attachments'
Diffstat (limited to 'src/components/progressbar.cpp')
-rw-r--r-- | src/components/progressbar.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/components/progressbar.cpp b/src/components/progressbar.cpp new file mode 100644 index 0000000..aa5d748 --- /dev/null +++ b/src/components/progressbar.cpp @@ -0,0 +1,24 @@ +#include "progressbar.hpp" +#include "abaddon.hpp" + +MessageUploadProgressBar::MessageUploadProgressBar() { + get_style_context()->add_class("message-progress"); + auto &discord = Abaddon::Get().GetDiscordClient(); + discord.signal_message_progress().connect([this](const std::string &nonce, float percent) { + if (nonce == m_last_nonce) { + set_fraction(percent); + } + }); + discord.signal_message_send_fail().connect([this](const std::string &nonce, float) { + if (nonce == m_last_nonce) + set_fraction(0.0); + }); + discord.signal_message_create().connect([this](const Message &msg) { + if (msg.IsPending) { + m_last_nonce = *msg.Nonce; + } else if (msg.Nonce.has_value() && (*msg.Nonce == m_last_nonce)) { + m_last_nonce = ""; + set_fraction(0.0); + } + }); +} |