blob: 65abfae16980c9dab75e240e57e7665c76fd8657 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#include "progressbar.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) {
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) {
set_fraction(0.0);
m_active = false;
m_signal_stop.emit();
}
});
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);
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;
}
|