Don't crash upon right-clicking automod badge (#3496)
This commit is contained in:
@@ -28,6 +28,14 @@ MessagePtr makeSystemMessage(const QString &text, const QTime &time)
|
||||
return MessageBuilder(systemMessage, text, time).release();
|
||||
}
|
||||
|
||||
EmotePtr makeAutoModBadge()
|
||||
{
|
||||
return std::make_shared<Emote>(Emote{
|
||||
EmoteName{}, ImageSet{Image::fromPixmap(getResources().twitch.automod)},
|
||||
Tooltip{"AutoMod"},
|
||||
Url{"https://dashboard.twitch.tv/settings/moderation/automod"}});
|
||||
}
|
||||
|
||||
MessagePtr makeAutomodInfoMessage(const AutomodInfoAction &action)
|
||||
{
|
||||
auto builder = MessageBuilder();
|
||||
@@ -37,10 +45,8 @@ MessagePtr makeAutomodInfoMessage(const AutomodInfoAction &action)
|
||||
builder.message().flags.set(MessageFlag::PubSub);
|
||||
|
||||
// AutoMod shield badge
|
||||
builder
|
||||
.emplace<ImageElement>(Image::fromPixmap(getResources().twitch.automod),
|
||||
MessageElementFlag::BadgeChannelAuthority)
|
||||
->setTooltip("AutoMod");
|
||||
builder.emplace<BadgeElement>(makeAutoModBadge(),
|
||||
MessageElementFlag::BadgeChannelAuthority);
|
||||
// AutoMod "username"
|
||||
builder.emplace<TextElement>("AutoMod:", MessageElementFlag::BoldUsername,
|
||||
MessageColor(QColor("blue")),
|
||||
@@ -95,10 +101,8 @@ std::pair<MessagePtr, MessagePtr> makeAutomodMessage(
|
||||
builder.message().flags.set(MessageFlag::PubSub);
|
||||
|
||||
// AutoMod shield badge
|
||||
builder
|
||||
.emplace<ImageElement>(Image::fromPixmap(getResources().twitch.automod),
|
||||
MessageElementFlag::BadgeChannelAuthority)
|
||||
->setTooltip("AutoMod");
|
||||
builder.emplace<BadgeElement>(makeAutoModBadge(),
|
||||
MessageElementFlag::BadgeChannelAuthority);
|
||||
// AutoMod "username"
|
||||
builder.emplace<TextElement>("AutoMod:", MessageElementFlag::BoldUsername,
|
||||
MessageColor(QColor("blue")),
|
||||
|
||||
@@ -1860,19 +1860,19 @@ void ChannelView::addContextMenuItems(
|
||||
auto menu = new QMenu;
|
||||
previousMenu = menu;
|
||||
|
||||
// Badge actions
|
||||
if (creatorFlags.hasAny({MessageElementFlag::Badges}))
|
||||
{
|
||||
auto badgeElement = dynamic_cast<const BadgeElement *>(&creator);
|
||||
addEmoteContextMenuItems(*badgeElement->getEmote(), creatorFlags,
|
||||
*menu);
|
||||
if (auto badgeElement = dynamic_cast<const BadgeElement *>(&creator))
|
||||
addEmoteContextMenuItems(*badgeElement->getEmote(), creatorFlags,
|
||||
*menu);
|
||||
}
|
||||
|
||||
// Emote actions
|
||||
if (creatorFlags.hasAny(
|
||||
{MessageElementFlag::EmoteImages, MessageElementFlag::EmojiImage}))
|
||||
{
|
||||
const auto emoteElement = dynamic_cast<const EmoteElement *>(&creator);
|
||||
if (emoteElement)
|
||||
if (auto emoteElement = dynamic_cast<const EmoteElement *>(&creator))
|
||||
addEmoteContextMenuItems(*emoteElement->getEmote(), creatorFlags,
|
||||
*menu);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user