summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-09-04 00:48:38 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-09-04 00:48:38 -0400
commitf69b0e61558680d9fdcaafd5c184b2c45fc06fce (patch)
tree87499f456700f365eb04cb19772f75f08eed614b /components
parent6c04a0a86d832217dc6d08652430cd84b09ff1db (diff)
downloadabaddon-portaudio-f69b0e61558680d9fdcaafd5c184b2c45fc06fce.tar.gz
abaddon-portaudio-f69b0e61558680d9fdcaafd5c184b2c45fc06fce.zip
pass around snowflake instead of MessageData
Diffstat (limited to 'components')
-rw-r--r--components/chatwindow.cpp17
-rw-r--r--components/chatwindow.hpp6
2 files changed, 10 insertions, 13 deletions
diff --git a/components/chatwindow.cpp b/components/chatwindow.cpp
index 2005554..2c0c4a0 100644
--- a/components/chatwindow.cpp
+++ b/components/chatwindow.cpp
@@ -166,7 +166,7 @@ void ChatWindow::on_scroll_edge_overshot(Gtk::PositionType pos) {
m_abaddon->ActionChatLoadHistory(m_active_channel);
}
-void ChatWindow::SetMessages(std::unordered_set<const MessageData *> msgs) {
+void ChatWindow::SetMessages(std::set<Snowflake> msgs) {
std::scoped_lock<std::mutex> guard(m_update_mutex);
m_message_set_queue.push(msgs);
m_message_set_dispatch.emit();
@@ -178,12 +178,9 @@ void ChatWindow::AddNewMessage(Snowflake id) {
m_new_message_dispatch.emit();
}
-void ChatWindow::AddNewHistory(const std::vector<MessageData> &msgs) {
+void ChatWindow::AddNewHistory(const std::vector<Snowflake> &msgs) {
std::scoped_lock<std::mutex> guard(m_update_mutex);
- std::vector<Snowflake> x;
- for (const auto &msg : msgs)
- x.push_back(msg.ID);
- m_new_history_queue.push(x);
+ m_new_history_queue.push(msgs);
m_new_history_dispatch.emit();
}
@@ -201,7 +198,7 @@ void ChatWindow::UpdateMessageContent(Snowflake id) {
void ChatWindow::ClearMessages() {
std::scoped_lock<std::mutex> guard(m_update_mutex);
- m_message_set_queue.push(std::unordered_set<const MessageData *>());
+ m_message_set_queue.push(std::set<Snowflake>());
m_message_set_dispatch.emit();
}
@@ -289,7 +286,7 @@ void ChatWindow::SetMessagesInternal() {
m_num_rows = 0;
m_id_to_widget.clear();
- std::unordered_set<const MessageData *> *msgs;
+ std::set<Snowflake> *msgs;
{
std::scoped_lock<std::mutex> guard(m_update_mutex);
msgs = &m_message_set_queue.front();
@@ -297,8 +294,8 @@ void ChatWindow::SetMessagesInternal() {
// sort
std::map<Snowflake, const MessageData *> sorted_messages;
- for (const auto msg : *msgs)
- sorted_messages[msg->ID] = msg;
+ for (const auto id : *msgs)
+ sorted_messages[id] = m_abaddon->GetDiscordClient().GetMessage(id);
for (const auto &[id, msg] : sorted_messages) {
ProcessMessage(msg);
diff --git a/components/chatwindow.hpp b/components/chatwindow.hpp
index f5342e9..777ef22 100644
--- a/components/chatwindow.hpp
+++ b/components/chatwindow.hpp
@@ -15,9 +15,9 @@ public:
Gtk::Widget *GetRoot() const;
void SetActiveChannel(Snowflake id);
Snowflake GetActiveChannel() const;
- void SetMessages(std::unordered_set<const MessageData *> msgs);
+ void SetMessages(std::set<Snowflake> msgs);
void AddNewMessage(Snowflake id);
- void AddNewHistory(const std::vector<MessageData> &msgs);
+ void AddNewHistory(const std::vector<Snowflake> &msgs);
void DeleteMessage(Snowflake id);
void UpdateMessageContent(Snowflake id);
void ClearMessages();
@@ -40,7 +40,7 @@ protected:
void on_scroll_edge_overshot(Gtk::PositionType pos);
Glib::Dispatcher m_message_set_dispatch;
- std::queue<std::unordered_set<const MessageData *>> m_message_set_queue;
+ std::queue<std::set<Snowflake>> m_message_set_queue;
Glib::Dispatcher m_new_message_dispatch;
std::queue<Snowflake> m_new_message_queue;
Glib::Dispatcher m_new_history_dispatch;