Add extra context to messages that are added to channels, allowing the logging controller to take more responsibility in what messages to log (#5499)
Co-auhtored-by: James Upjohn <jupjohn@jammeh.co.nz>
This commit is contained in:
@@ -145,7 +145,7 @@ void addTwitchEmoteSets(
|
||||
auto currentChannelPair = mapOfSets[currentChannelName];
|
||||
for (const auto &message : currentChannelPair.second)
|
||||
{
|
||||
subChannel.addMessage(message);
|
||||
subChannel.addMessage(message, MessageContext::Original);
|
||||
}
|
||||
mapOfSets.remove(currentChannelName);
|
||||
|
||||
@@ -154,7 +154,7 @@ void addTwitchEmoteSets(
|
||||
auto &channel = pair.first ? globalChannel : subChannel;
|
||||
for (const auto &message : pair.second)
|
||||
{
|
||||
channel.addMessage(message);
|
||||
channel.addMessage(message, MessageContext::Original);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -162,14 +162,16 @@ void addTwitchEmoteSets(
|
||||
void addEmotes(Channel &channel, const EmoteMap &map, const QString &title,
|
||||
const MessageElementFlag &emoteFlag)
|
||||
{
|
||||
channel.addMessage(makeTitleMessage(title));
|
||||
channel.addMessage(makeEmoteMessage(map, emoteFlag));
|
||||
channel.addMessage(makeTitleMessage(title), MessageContext::Original);
|
||||
channel.addMessage(makeEmoteMessage(map, emoteFlag),
|
||||
MessageContext::Original);
|
||||
}
|
||||
|
||||
void loadEmojis(ChannelView &view, const std::vector<EmojiPtr> &emojiMap)
|
||||
{
|
||||
ChannelPtr emojiChannel(new Channel("", Channel::Type::None));
|
||||
emojiChannel->addMessage(makeEmojiMessage(emojiMap));
|
||||
emojiChannel->addMessage(makeEmojiMessage(emojiMap),
|
||||
MessageContext::Original);
|
||||
|
||||
view.setChannel(emojiChannel);
|
||||
}
|
||||
@@ -177,8 +179,8 @@ void loadEmojis(ChannelView &view, const std::vector<EmojiPtr> &emojiMap)
|
||||
void loadEmojis(Channel &channel, const std::vector<EmojiPtr> &emojiMap,
|
||||
const QString &title)
|
||||
{
|
||||
channel.addMessage(makeTitleMessage(title));
|
||||
channel.addMessage(makeEmojiMessage(emojiMap));
|
||||
channel.addMessage(makeTitleMessage(title), MessageContext::Original);
|
||||
channel.addMessage(makeEmojiMessage(emojiMap), MessageContext::Original);
|
||||
}
|
||||
|
||||
// Create an emote
|
||||
@@ -454,7 +456,7 @@ void EmotePopup::loadChannel(ChannelPtr channel)
|
||||
builder.emplace<TextElement>("no subscription emotes available",
|
||||
MessageElementFlag::Text,
|
||||
MessageColor::System);
|
||||
subChannel->addMessage(builder.release());
|
||||
subChannel->addMessage(builder.release(), MessageContext::Original);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -244,7 +244,8 @@ void ReplyThreadPopup::addMessagesFromThread()
|
||||
std::optional<MessageFlags>(this->thread_->root()->flags);
|
||||
rootOverrideFlags->set(MessageFlag::DoNotLog);
|
||||
|
||||
this->virtualChannel_->addMessage(this->thread_->root(), rootOverrideFlags);
|
||||
this->virtualChannel_->addMessage(
|
||||
this->thread_->root(), MessageContext::Repost, rootOverrideFlags);
|
||||
for (const auto &msgRef : this->thread_->replies())
|
||||
{
|
||||
if (auto msg = msgRef.lock())
|
||||
@@ -252,24 +253,26 @@ void ReplyThreadPopup::addMessagesFromThread()
|
||||
auto overrideFlags = std::optional<MessageFlags>(msg->flags);
|
||||
overrideFlags->set(MessageFlag::DoNotLog);
|
||||
|
||||
this->virtualChannel_->addMessage(msg, overrideFlags);
|
||||
this->virtualChannel_->addMessage(msg, MessageContext::Repost,
|
||||
overrideFlags);
|
||||
}
|
||||
}
|
||||
|
||||
this->messageConnection_ =
|
||||
std::make_unique<pajlada::Signals::ScopedConnection>(
|
||||
sourceChannel->messageAppended.connect([this](MessagePtr &message,
|
||||
auto) {
|
||||
if (message->replyThread == this->thread_)
|
||||
{
|
||||
auto overrideFlags =
|
||||
std::optional<MessageFlags>(message->flags);
|
||||
overrideFlags->set(MessageFlag::DoNotLog);
|
||||
sourceChannel->messageAppended.connect(
|
||||
[this](MessagePtr &message, auto) {
|
||||
if (message->replyThread == this->thread_)
|
||||
{
|
||||
auto overrideFlags =
|
||||
std::optional<MessageFlags>(message->flags);
|
||||
overrideFlags->set(MessageFlag::DoNotLog);
|
||||
|
||||
// same reply thread, add message
|
||||
this->virtualChannel_->addMessage(message, overrideFlags);
|
||||
}
|
||||
}));
|
||||
// same reply thread, add message
|
||||
this->virtualChannel_->addMessage(
|
||||
message, MessageContext::Repost, overrideFlags);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
void ReplyThreadPopup::updateInputUI()
|
||||
|
||||
@@ -112,12 +112,9 @@ namespace {
|
||||
{
|
||||
MessagePtr message = snapshot[i];
|
||||
|
||||
auto overrideFlags = std::optional<MessageFlags>(message->flags);
|
||||
overrideFlags->set(MessageFlag::DoNotLog);
|
||||
|
||||
if (checkMessageUserName(userName, message))
|
||||
{
|
||||
channelPtr->addMessage(message, overrideFlags);
|
||||
channelPtr->addMessage(message, MessageContext::Repost);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -787,7 +784,7 @@ void UserInfoPopup::updateLatestMessages()
|
||||
{
|
||||
// display message in ChannelView
|
||||
this->ui_.latestMessages->channel()->addMessage(
|
||||
message);
|
||||
message, MessageContext::Repost);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -925,26 +925,17 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
|
||||
{
|
||||
if (this->channel_->lastDate_ != QDate::currentDate())
|
||||
{
|
||||
// Day change message
|
||||
this->channel_->lastDate_ = QDate::currentDate();
|
||||
auto msg = makeSystemMessage(
|
||||
QLocale().toString(QDate::currentDate(),
|
||||
QLocale::LongFormat),
|
||||
QTime(0, 0));
|
||||
this->channel_->addMessage(msg);
|
||||
msg->flags.set(MessageFlag::DoNotLog);
|
||||
this->channel_->addMessage(msg, MessageContext::Original);
|
||||
}
|
||||
// When the message was received in the underlyingChannel,
|
||||
// logging will be handled. Prevent duplications.
|
||||
if (overridingFlags)
|
||||
{
|
||||
overridingFlags->set(MessageFlag::DoNotLog);
|
||||
}
|
||||
else
|
||||
{
|
||||
overridingFlags = MessageFlags(message->flags);
|
||||
overridingFlags->set(MessageFlag::DoNotLog);
|
||||
}
|
||||
|
||||
this->channel_->addMessage(message, overridingFlags);
|
||||
this->channel_->addMessage(message, MessageContext::Repost,
|
||||
overridingFlags);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1010,7 +1001,9 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
|
||||
}
|
||||
|
||||
this->messages_.pushBack(messageLayout);
|
||||
this->channel_->addMessage(msg);
|
||||
|
||||
this->channel_->addMessage(msg, MessageContext::Repost);
|
||||
|
||||
nMessagesAdded++;
|
||||
if (this->showScrollbarHighlights())
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ ChannelPtr SearchPopup::filter(const QString &text, const QString &channelName,
|
||||
auto overrideFlags = std::optional<MessageFlags>(message->flags);
|
||||
overrideFlags->set(MessageFlag::DoNotLog);
|
||||
|
||||
channel->addMessage(message, overrideFlags);
|
||||
channel->addMessage(message, MessageContext::Repost, overrideFlags);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user