pass message object through signal instead of just the id

This commit is contained in:
ouwou
2021-04-13 04:33:19 -04:00
parent 42d38a89b2
commit b6c6c03f87
7 changed files with 16 additions and 21 deletions

View File

@@ -299,12 +299,11 @@ ChannelList::ChannelList() {
// maybe will regret doing it this way
auto &discord = Abaddon::Get().GetDiscordClient();
auto cb = [this, &discord](Snowflake message_id) {
const auto message = discord.GetMessage(message_id);
const auto channel = discord.GetChannel(message->ChannelID);
auto cb = [this, &discord](const Message &message) {
const auto channel = discord.GetChannel(message.ChannelID);
if (!channel.has_value()) return;
if (channel->Type == ChannelType::DM || channel->Type == ChannelType::GROUP_DM)
CheckBumpDM(message->ChannelID);
CheckBumpDM(message.ChannelID);
};
discord.signal_message_create().connect(sigc::track_obj(cb, *this));
}

View File

@@ -76,10 +76,8 @@ void ChatInputIndicator::OnUserTypingStart(Snowflake user_id, Snowflake channel_
AddUser(channel_id, *user, 10);
}
void ChatInputIndicator::OnMessageCreate(Snowflake message_id) {
const auto msg = Abaddon::Get().GetDiscordClient().GetMessage(message_id);
if (!msg.has_value()) return;
m_typers[msg->ChannelID].erase(msg->Author.ID);
void ChatInputIndicator::OnMessageCreate(const Message &message) {
m_typers[message.ChannelID].erase(message.Author.ID);
ComputeTypingString();
}

View File

@@ -1,7 +1,7 @@
#pragma once
#include <gtkmm.h>
#include <unordered_map>
#include "../discord/snowflake.hpp"
#include "../discord/message.hpp"
#include "../discord/user.hpp"
class ChatInputIndicator : public Gtk::Box {
@@ -14,7 +14,7 @@ public:
private:
void AddUser(Snowflake channel_id, const UserData &user, int timeout);
void OnUserTypingStart(Snowflake user_id, Snowflake channel_id);
void OnMessageCreate(Snowflake message_id);
void OnMessageCreate(const Message &message);
void SetTypingString(const Glib::ustring &str);
void ComputeTypingString();