refactored EnumFlags
This commit is contained in:
@@ -18,12 +18,12 @@ EmotePopup::EmotePopup()
|
||||
this->viewEmotes_ = new ChannelView();
|
||||
this->viewEmojis_ = new ChannelView();
|
||||
|
||||
this->viewEmotes_->setOverrideFlags(MessageElement::Flags(
|
||||
MessageElement::Default | MessageElement::AlwaysShow |
|
||||
MessageElement::EmoteImages));
|
||||
this->viewEmojis_->setOverrideFlags(MessageElement::Flags(
|
||||
MessageElement::Default | MessageElement::AlwaysShow |
|
||||
MessageElement::EmoteImages));
|
||||
this->viewEmotes_->setOverrideFlags(MessageElementFlags{
|
||||
MessageElementFlag::Default, MessageElementFlag::AlwaysShow,
|
||||
MessageElementFlag::EmoteImages});
|
||||
this->viewEmojis_->setOverrideFlags(MessageElementFlags{
|
||||
MessageElementFlag::Default, MessageElementFlag::AlwaysShow,
|
||||
MessageElementFlag::EmoteImages});
|
||||
|
||||
this->viewEmotes_->setEnableScrollingToBottom(false);
|
||||
this->viewEmojis_->setEnableScrollingToBottom(false);
|
||||
@@ -63,20 +63,20 @@ void EmotePopup::loadChannel(ChannelPtr _channel)
|
||||
// TITLE
|
||||
MessageBuilder builder1;
|
||||
|
||||
builder1.emplace<TextElement>(title, MessageElement::Text);
|
||||
builder1.emplace<TextElement>(title, MessageElementFlag::Text);
|
||||
|
||||
builder1->flags |= Message::Centered;
|
||||
builder1->flags.set(MessageFlag::Centered);
|
||||
emoteChannel->addMessage(builder1.release());
|
||||
|
||||
// EMOTES
|
||||
MessageBuilder builder2;
|
||||
builder2->flags |= Message::Centered;
|
||||
builder2->flags |= Message::DisableCompactEmotes;
|
||||
builder2->flags.set(MessageFlag::Centered);
|
||||
builder2->flags.set(MessageFlag::DisableCompactEmotes);
|
||||
|
||||
for (auto emote : map) {
|
||||
builder2
|
||||
.emplace<EmoteElement>(emote.second,
|
||||
MessageElement::Flags::AlwaysShow)
|
||||
MessageElementFlag::AlwaysShow)
|
||||
->setLink(Link(Link::InsertText, emote.first.string));
|
||||
}
|
||||
|
||||
@@ -103,21 +103,21 @@ void EmotePopup::loadChannel(ChannelPtr _channel)
|
||||
setText = set->text;
|
||||
}
|
||||
|
||||
builder1.emplace<TextElement>(setText, MessageElement::Text);
|
||||
builder1.emplace<TextElement>(setText, MessageElementFlag::Text);
|
||||
|
||||
builder1->flags |= Message::Centered;
|
||||
builder1->flags.set(MessageFlag::Centered);
|
||||
emoteChannel->addMessage(builder1.release());
|
||||
|
||||
// EMOTES
|
||||
MessageBuilder builder2;
|
||||
builder2->flags |= Message::Centered;
|
||||
builder2->flags |= Message::DisableCompactEmotes;
|
||||
builder2->flags.set(MessageFlag::Centered);
|
||||
builder2->flags.set(MessageFlag::DisableCompactEmotes);
|
||||
|
||||
for (const auto &emote : set->emotes) {
|
||||
builder2
|
||||
.emplace<EmoteElement>(
|
||||
app->emotes->twitch.getOrCreateEmote(emote.id, emote.name),
|
||||
MessageElement::Flags::AlwaysShow)
|
||||
MessageElementFlag::AlwaysShow)
|
||||
->setLink(Link(Link::InsertText, emote.name.string));
|
||||
}
|
||||
|
||||
@@ -146,19 +146,18 @@ void EmotePopup::loadEmojis()
|
||||
// title
|
||||
MessageBuilder builder1;
|
||||
|
||||
builder1.emplace<TextElement>("emojis", MessageElement::Text);
|
||||
builder1->flags |= Message::Centered;
|
||||
builder1.emplace<TextElement>("emojis", MessageElementFlag::Text);
|
||||
builder1->flags.set(MessageFlag::Centered);
|
||||
emojiChannel->addMessage(builder1.release());
|
||||
|
||||
// emojis
|
||||
MessageBuilder builder;
|
||||
builder->flags |= Message::Centered;
|
||||
builder->flags |= Message::DisableCompactEmotes;
|
||||
builder->flags.set(MessageFlag::Centered);
|
||||
builder->flags.set(MessageFlag::DisableCompactEmotes);
|
||||
|
||||
emojis.each([&builder](const auto &key, const auto &value) {
|
||||
builder
|
||||
.emplace<EmoteElement>(value->emote,
|
||||
MessageElement::Flags::AlwaysShow)
|
||||
.emplace<EmoteElement>(value->emote, MessageElementFlag::AlwaysShow)
|
||||
->setLink(
|
||||
Link(Link::Type::InsertText, ":" + value->shortCodes[0] + ":"));
|
||||
});
|
||||
|
||||
@@ -173,11 +173,11 @@ void LogsPopup::getOverrustleLogs()
|
||||
MessageBuilder builder;
|
||||
builder.emplace<TimestampElement>(timeStamp);
|
||||
builder.emplace<TextElement>(this->userName_,
|
||||
MessageElement::Username,
|
||||
MessageElementFlag::Username,
|
||||
MessageColor::System);
|
||||
builder.emplace<TextElement>(
|
||||
singleMessage.value("text").toString(),
|
||||
MessageElement::Text, MessageColor::Text);
|
||||
MessageElementFlag::Text, MessageColor::Text);
|
||||
messages.push_back(builder.release());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
namespace chatterino {
|
||||
namespace {
|
||||
void addEmoteContextMenuItems(const Emote &emote,
|
||||
MessageElement::Flags creatorFlags, QMenu &menu)
|
||||
MessageElementFlags creatorFlags, QMenu &menu)
|
||||
{
|
||||
auto openAction = menu.addAction("Open");
|
||||
auto openMenu = new QMenu;
|
||||
@@ -83,9 +83,9 @@ void addEmoteContextMenuItems(const Emote &emote,
|
||||
});
|
||||
};
|
||||
|
||||
if (creatorFlags & MessageElement::Flags::BttvEmote) {
|
||||
if (creatorFlags.has(MessageElementFlag::BttvEmote)) {
|
||||
addPageLink("BTTV");
|
||||
} else if (creatorFlags & MessageElement::Flags::FfzEmote) {
|
||||
} else if (creatorFlags.has(MessageElementFlag::FfzEmote)) {
|
||||
addPageLink("FFZ");
|
||||
}
|
||||
}
|
||||
@@ -252,7 +252,7 @@ void ChannelView::actuallyLayoutMessages(bool causedByScrollbar)
|
||||
size_t start = size_t(this->scrollBar_.getCurrentValue());
|
||||
int layoutWidth = this->getLayoutWidth();
|
||||
|
||||
MessageElement::Flags flags = this->getFlags();
|
||||
MessageElementFlags flags = this->getFlags();
|
||||
|
||||
// layout the visible messages in the view
|
||||
if (messagesSnapshot.getLength() > start) {
|
||||
@@ -387,12 +387,12 @@ bool ChannelView::getEnableScrollingToBottom() const
|
||||
return this->enableScrollingToBottom_;
|
||||
}
|
||||
|
||||
void ChannelView::setOverrideFlags(boost::optional<MessageElement::Flags> value)
|
||||
void ChannelView::setOverrideFlags(boost::optional<MessageElementFlags> value)
|
||||
{
|
||||
this->overrideFlags_ = value;
|
||||
}
|
||||
|
||||
const boost::optional<MessageElement::Flags> &ChannelView::getOverrideFlags()
|
||||
const boost::optional<MessageElementFlags> &ChannelView::getOverrideFlags()
|
||||
const
|
||||
{
|
||||
return this->overrideFlags_;
|
||||
@@ -423,7 +423,7 @@ void ChannelView::setChannel(ChannelPtr newChannel)
|
||||
auto messageRef = new MessageLayout(message);
|
||||
|
||||
if (this->lastMessageHasAlternateBackground_) {
|
||||
messageRef->flags |= MessageLayout::AlternateBackground;
|
||||
messageRef->flags.set(MessageLayoutFlag::AlternateBackground);
|
||||
}
|
||||
this->lastMessageHasAlternateBackground_ =
|
||||
!this->lastMessageHasAlternateBackground_;
|
||||
@@ -443,8 +443,8 @@ void ChannelView::setChannel(ChannelPtr newChannel)
|
||||
// }
|
||||
}
|
||||
|
||||
if (!(message->flags & Message::DoNotTriggerNotification)) {
|
||||
if (message->flags & Message::Highlighted) {
|
||||
if (!message->flags.has(MessageFlag::DoNotTriggerNotification)) {
|
||||
if (message->flags.has(MessageFlag::Highlighted)) {
|
||||
this->tabHighlightRequested.invoke(
|
||||
HighlightState::Highlighted);
|
||||
} else {
|
||||
@@ -521,8 +521,8 @@ void ChannelView::setChannel(ChannelPtr newChannel)
|
||||
}
|
||||
|
||||
const auto &message = snapshot[index];
|
||||
if (message->flags & MessageLayout::AlternateBackground) {
|
||||
newItem->flags |= MessageLayout::AlternateBackground;
|
||||
if (message->flags.has(MessageLayoutFlag::AlternateBackground)) {
|
||||
newItem->flags.set(MessageLayoutFlag::AlternateBackground);
|
||||
}
|
||||
|
||||
this->scrollBar_.replaceHighlight(
|
||||
@@ -540,7 +540,7 @@ void ChannelView::setChannel(ChannelPtr newChannel)
|
||||
auto messageRef = new MessageLayout(snapshot[i]);
|
||||
|
||||
if (this->lastMessageHasAlternateBackground_) {
|
||||
messageRef->flags |= MessageLayout::AlternateBackground;
|
||||
messageRef->flags.set(MessageLayoutFlag::AlternateBackground);
|
||||
}
|
||||
this->lastMessageHasAlternateBackground_ =
|
||||
!this->lastMessageHasAlternateBackground_;
|
||||
@@ -613,7 +613,7 @@ void ChannelView::setSelection(const SelectionItem &start,
|
||||
this->selectionChanged.invoke();
|
||||
}
|
||||
|
||||
MessageElement::Flags ChannelView::getFlags() const
|
||||
MessageElementFlags ChannelView::getFlags() const
|
||||
{
|
||||
auto app = getApp();
|
||||
|
||||
@@ -621,17 +621,16 @@ MessageElement::Flags ChannelView::getFlags() const
|
||||
return this->overrideFlags_.get();
|
||||
}
|
||||
|
||||
MessageElement::Flags flags = app->windows->getWordFlags();
|
||||
MessageElementFlags flags = app->windows->getWordFlags();
|
||||
|
||||
Split *split = dynamic_cast<Split *>(this->parentWidget());
|
||||
|
||||
if (split != nullptr) {
|
||||
if (split->getModerationMode()) {
|
||||
flags =
|
||||
MessageElement::Flags(flags | MessageElement::ModeratorTools);
|
||||
flags.set(MessageElementFlag::ModeratorTools);
|
||||
}
|
||||
if (this->channel_ == app->twitch.server->mentionsChannel) {
|
||||
flags = MessageElement::Flags(flags | MessageElement::ChannelName);
|
||||
flags.set(MessageElementFlag::ChannelName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -870,7 +869,7 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event)
|
||||
}
|
||||
|
||||
// message under cursor is collapsed
|
||||
if (layout->flags & MessageLayout::Collapsed) {
|
||||
if (layout->flags.has(MessageLayoutFlag::Collapsed)) {
|
||||
this->setCursor(Qt::PointingHandCursor);
|
||||
tooltipWidget->hide();
|
||||
return;
|
||||
@@ -941,7 +940,7 @@ void ChannelView::mousePressEvent(QMouseEvent *event)
|
||||
this->lastPressPosition_ = event->screenPos();
|
||||
this->isMouseDown_ = true;
|
||||
|
||||
if (layout->flags & MessageLayout::Collapsed) {
|
||||
if (layout->flags.has(MessageLayoutFlag::Collapsed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1010,9 +1009,9 @@ void ChannelView::mouseReleaseEvent(QMouseEvent *event)
|
||||
}
|
||||
|
||||
// message under cursor is collapsed
|
||||
if (layout->flags & MessageLayout::Collapsed) {
|
||||
layout->flags |= MessageLayout::Expanded;
|
||||
layout->flags |= MessageLayout::RequiresLayout;
|
||||
if (layout->flags.has(MessageLayoutFlag::Collapsed)) {
|
||||
layout->flags.set(MessageLayoutFlag::Expanded);
|
||||
layout->flags.set(MessageLayoutFlag::RequiresLayout);
|
||||
|
||||
this->layoutMessages();
|
||||
return;
|
||||
@@ -1081,8 +1080,8 @@ void ChannelView::addContextMenuItems(
|
||||
menu->clear();
|
||||
|
||||
// Emote actions
|
||||
if (creatorFlags & (MessageElement::Flags::EmoteImages |
|
||||
MessageElement::Flags::EmojiImage)) {
|
||||
if (creatorFlags.hasAny({MessageElementFlag::EmoteImages,
|
||||
MessageElementFlag::EmojiImage})) {
|
||||
const auto emoteElement = dynamic_cast<const EmoteElement *>(&creator);
|
||||
if (emoteElement)
|
||||
addEmoteContextMenuItems(*emoteElement->getEmote(), creatorFlags,
|
||||
@@ -1147,7 +1146,7 @@ void ChannelView::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
}
|
||||
|
||||
// message under cursor is collapsed
|
||||
if (layout->flags & MessageLayout::Collapsed) {
|
||||
if (layout->flags.has(MessageLayoutFlag::Collapsed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ public:
|
||||
void clearSelection();
|
||||
void setEnableScrollingToBottom(bool);
|
||||
bool getEnableScrollingToBottom() const;
|
||||
void setOverrideFlags(boost::optional<MessageElement::Flags> value);
|
||||
const boost::optional<MessageElement::Flags> &getOverrideFlags() const;
|
||||
void setOverrideFlags(boost::optional<MessageElementFlags> value);
|
||||
const boost::optional<MessageElementFlags> &getOverrideFlags() const;
|
||||
void pause(int msecTimeout);
|
||||
void updateLastReadMessage();
|
||||
|
||||
@@ -83,7 +83,7 @@ private:
|
||||
|
||||
void drawMessages(QPainter &painter);
|
||||
void setSelection(const SelectionItem &start, const SelectionItem &end);
|
||||
MessageElement::Flags getFlags() const;
|
||||
MessageElementFlags getFlags() const;
|
||||
bool isPaused();
|
||||
|
||||
void handleMouseClick(QMouseEvent *event,
|
||||
@@ -107,7 +107,7 @@ private:
|
||||
int messagesAddedSinceSelectionPause_ = 0;
|
||||
|
||||
QTimer pauseTimeout_;
|
||||
boost::optional<MessageElement::Flags> overrideFlags_;
|
||||
boost::optional<MessageElementFlags> overrideFlags_;
|
||||
MessageLayoutPtr lastReadMessage_;
|
||||
|
||||
LimitedQueueSnapshot<MessageLayoutPtr> snapshot_;
|
||||
|
||||
@@ -322,24 +322,24 @@ ChannelPtr LookPage::createPreviewChannel()
|
||||
{
|
||||
MessageBuilder builder;
|
||||
builder.emplace<TimestampElement>(QTime(8, 13, 42));
|
||||
builder.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->twitch.moderator), MessageElement::BadgeChannelAuthority);
|
||||
builder.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->twitch.subscriber), MessageElement::BadgeSubscription);
|
||||
builder.emplace<TextElement>("username1:", MessageElement::Username, QColor("#0094FF"), FontStyle::ChatMediumBold);
|
||||
builder.emplace<TextElement>("This is a preview message", MessageElement::Text);
|
||||
builder.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->pajaDank), MessageElement::Flags::AlwaysShow);
|
||||
builder.emplace<TextElement>("@fourtf", TextElement::BoldUsername, MessageColor::Text, FontStyle::ChatMediumBold);
|
||||
builder.emplace<TextElement>("@fourtf", TextElement::NonBoldUsername);
|
||||
builder.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->twitch.moderator), MessageElementFlag::BadgeChannelAuthority);
|
||||
builder.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->twitch.subscriber), MessageElementFlag::BadgeSubscription);
|
||||
builder.emplace<TextElement>("username1:", MessageElementFlag::Username, QColor("#0094FF"), FontStyle::ChatMediumBold);
|
||||
builder.emplace<TextElement>("This is a preview message", MessageElementFlag::Text);
|
||||
builder.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->pajaDank), MessageElementFlag::AlwaysShow);
|
||||
builder.emplace<TextElement>("@fourtf", MessageElementFlag::BoldUsername, MessageColor::Text, FontStyle::ChatMediumBold);
|
||||
builder.emplace<TextElement>("@fourtf", MessageElementFlag::NonBoldUsername);
|
||||
channel->addMessage(builder.release());
|
||||
}
|
||||
{
|
||||
MessageBuilder message;
|
||||
message.emplace<TimestampElement>(QTime(8, 15, 21));
|
||||
message.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->twitch.broadcaster), MessageElement::BadgeChannelAuthority);
|
||||
message.emplace<TextElement>("username2:", MessageElement::Username, QColor("#FF6A00"), FontStyle::ChatMediumBold);
|
||||
message.emplace<TextElement>("This is another one", MessageElement::Text);
|
||||
// message.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->ppHop), MessageElement::BttvEmote);
|
||||
message.emplace<TextElement>("www.fourtf.com", MessageElement::LowercaseLink, MessageColor::Link)->setLink(Link(Link::Url, "https://www.fourtf.com"));
|
||||
message.emplace<TextElement>("wWw.FoUrTf.CoM", MessageElement::OriginalLink, MessageColor::Link)->setLink(Link(Link::Url, "https://www.fourtf.com"));
|
||||
message.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->twitch.broadcaster), MessageElementFlag::BadgeChannelAuthority);
|
||||
message.emplace<TextElement>("username2:", MessageElementFlag::Username, QColor("#FF6A00"), FontStyle::ChatMediumBold);
|
||||
message.emplace<TextElement>("This is another one", MessageElementFlag::Text);
|
||||
// message.emplace<ImageElement>(Image::fromNonOwningPixmap(&getApp()->resources->ppHop), MessageElementFlag::BttvEmote);
|
||||
message.emplace<TextElement>("www.fourtf.com", MessageElementFlag::LowercaseLink, MessageColor::Link)->setLink(Link(Link::Url, "https://www.fourtf.com"));
|
||||
message.emplace<TextElement>("wWw.FoUrTf.CoM", MessageElementFlag::OriginalLink, MessageColor::Link)->setLink(Link(Link::Url, "https://www.fourtf.com"));
|
||||
channel->addMessage(message.release());
|
||||
}
|
||||
// clang-format on
|
||||
|
||||
Reference in New Issue
Block a user