summaryrefslogtreecommitdiff
path: root/src/components/progressbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/progressbar.cpp')
-rw-r--r--src/components/progressbar.cpp19
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;
+}