diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-12-27 01:57:22 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-12-27 01:57:22 -0500 |
commit | 1bb749687b92fa7fbccb77ee18654210a647a1f3 (patch) | |
tree | 68b79b6ca1ef7b3c17c4ada5655255c20f2fa8d3 /src/components/progressbar.cpp | |
parent | 8bd628c1776c20dbf41d2fb18f6204c4a398da0e (diff) | |
parent | 155d95e29cc50a66cbe7711b172b195be637bc48 (diff) | |
download | abaddon-portaudio-1bb749687b92fa7fbccb77ee18654210a647a1f3.tar.gz abaddon-portaudio-1bb749687b92fa7fbccb77ee18654210a647a1f3.zip |
Merge branch 'master' into classic-channels
Diffstat (limited to 'src/components/progressbar.cpp')
-rw-r--r-- | src/components/progressbar.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/components/progressbar.cpp b/src/components/progressbar.cpp index 75f86bb..65abfae 100644 --- a/src/components/progressbar.cpp +++ b/src/components/progressbar.cpp @@ -5,12 +5,19 @@ MessageUploadProgressBar::MessageUploadProgressBar() { auto &discord = Abaddon::Get().GetDiscordClient(); discord.signal_message_progress().connect([this](const std::string &nonce, float percent) { if (nonce == m_last_nonce) { + if (!m_active) { + m_active = true; + m_signal_start.emit(); + } set_fraction(percent); } }); discord.signal_message_send_fail().connect([this](const std::string &nonce, float) { - if (nonce == m_last_nonce) + if (nonce == m_last_nonce) { set_fraction(0.0); + m_active = false; + m_signal_stop.emit(); + } }); discord.signal_message_create().connect([this](const Message &msg) { if (msg.IsPending) { @@ -18,6 +25,16 @@ MessageUploadProgressBar::MessageUploadProgressBar() { } else if (msg.Nonce.has_value() && (*msg.Nonce == m_last_nonce)) { m_last_nonce = ""; set_fraction(0.0); + m_active = false; + m_signal_stop.emit(); } }); } + +MessageUploadProgressBar::type_signal_start MessageUploadProgressBar::signal_start() { + return m_signal_start; +} + +MessageUploadProgressBar::type_signal_stop MessageUploadProgressBar::signal_stop() { + return m_signal_stop; +} |