diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-09-04 00:48:38 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-09-04 00:48:38 -0400 |
commit | f69b0e61558680d9fdcaafd5c184b2c45fc06fce (patch) | |
tree | 87499f456700f365eb04cb19772f75f08eed614b /components | |
parent | 6c04a0a86d832217dc6d08652430cd84b09ff1db (diff) | |
download | abaddon-portaudio-f69b0e61558680d9fdcaafd5c184b2c45fc06fce.tar.gz abaddon-portaudio-f69b0e61558680d9fdcaafd5c184b2c45fc06fce.zip |
pass around snowflake instead of MessageData
Diffstat (limited to 'components')
-rw-r--r-- | components/chatwindow.cpp | 17 | ||||
-rw-r--r-- | components/chatwindow.hpp | 6 |
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; |