refactored MessageBuilder

This commit is contained in:
fourtf
2018-08-07 01:35:24 +02:00
parent f71ff08e68
commit c26422aec1
29 changed files with 964 additions and 970 deletions
+32 -31
View File
@@ -63,24 +63,24 @@ void EmotePopup::loadChannel(ChannelPtr _channel)
// TITLE
MessageBuilder builder1;
builder1.append(new TextElement(title, MessageElement::Text));
builder1.emplace<TextElement>(title, MessageElement::Text);
builder1.getMessage()->flags |= Message::Centered;
emoteChannel->addMessage(builder1.getMessage());
builder1->flags |= Message::Centered;
emoteChannel->addMessage(builder1.release());
// EMOTES
MessageBuilder builder2;
builder2.getMessage()->flags |= Message::Centered;
builder2.getMessage()->flags |= Message::DisableCompactEmotes;
builder2->flags |= Message::Centered;
builder2->flags |= Message::DisableCompactEmotes;
for (auto emote : map) {
builder2.append(
(new EmoteElement(emote.second,
MessageElement::Flags::AlwaysShow))
->setLink(Link(Link::InsertText, emote.first.string)));
builder2
.emplace<EmoteElement>(emote.second,
MessageElement::Flags::AlwaysShow)
->setLink(Link(Link::InsertText, emote.first.string));
}
emoteChannel->addMessage(builder2.getMessage());
emoteChannel->addMessage(builder2.release());
};
auto app = getApp();
@@ -103,25 +103,25 @@ void EmotePopup::loadChannel(ChannelPtr _channel)
setText = set->text;
}
builder1.append(new TextElement(setText, MessageElement::Text));
builder1.emplace<TextElement>(setText, MessageElement::Text);
builder1.getMessage()->flags |= Message::Centered;
emoteChannel->addMessage(builder1.getMessage());
builder1->flags |= Message::Centered;
emoteChannel->addMessage(builder1.release());
// EMOTES
MessageBuilder builder2;
builder2.getMessage()->flags |= Message::Centered;
builder2.getMessage()->flags |= Message::DisableCompactEmotes;
builder2->flags |= Message::Centered;
builder2->flags |= Message::DisableCompactEmotes;
for (const auto &emote : set->emotes) {
builder2.append(
(new EmoteElement(
app->emotes->twitch.getOrCreateEmote(emote.id, emote.name),
MessageElement::Flags::AlwaysShow))
->setLink(Link(Link::InsertText, emote.name.string)));
builder2
.emplace<EmoteElement>(
app->emotes->twitch.getOrCreateEmote(emote.id, emote.name),
MessageElement::Flags::AlwaysShow)
->setLink(Link(Link::InsertText, emote.name.string));
}
emoteChannel->addMessage(builder2.getMessage());
emoteChannel->addMessage(builder2.release());
}
addEmotes(*app->emotes->bttv.accessGlobalEmotes(),
@@ -146,22 +146,23 @@ void EmotePopup::loadEmojis()
// title
MessageBuilder builder1;
builder1.append(new TextElement("emojis", MessageElement::Text));
builder1.getMessage()->flags |= Message::Centered;
emojiChannel->addMessage(builder1.getMessage());
builder1.emplace<TextElement>("emojis", MessageElement::Text);
builder1->flags |= Message::Centered;
emojiChannel->addMessage(builder1.release());
// emojis
MessageBuilder builder;
builder.getMessage()->flags |= Message::Centered;
builder.getMessage()->flags |= Message::DisableCompactEmotes;
builder->flags |= Message::Centered;
builder->flags |= Message::DisableCompactEmotes;
emojis.each([&builder](const auto &key, const auto &value) {
builder.append(
(new EmoteElement(value->emote, MessageElement::Flags::AlwaysShow))
->setLink(Link(Link::Type::InsertText,
":" + value->shortCodes[0] + ":")));
builder
.emplace<EmoteElement>(value->emote,
MessageElement::Flags::AlwaysShow)
->setLink(
Link(Link::Type::InsertText, ":" + value->shortCodes[0] + ":"));
});
emojiChannel->addMessage(builder.getMessage());
emojiChannel->addMessage(builder.release());
this->viewEmojis_->setChannel(emojiChannel);
}
+9 -9
View File
@@ -170,15 +170,15 @@ void LogsPopup::getOverrustleLogs()
singleMessage.value("timestamp").toInt())
.time();
MessagePtr message(new Message);
message->addElement(new TimestampElement(timeStamp));
message->addElement(new TextElement(this->userName_,
MessageElement::Username,
MessageColor::System));
message->addElement(
new TextElement(singleMessage.value("text").toString(),
MessageElement::Text, MessageColor::Text));
messages.push_back(message);
MessageBuilder builder;
builder.emplace<TimestampElement>(timeStamp);
builder.emplace<TextElement>(this->userName_,
MessageElement::Username,
MessageColor::System);
builder.emplace<TextElement>(
singleMessage.value("text").toString(),
MessageElement::Text, MessageColor::Text);
messages.push_back(builder.release());
}
}
this->setMessages(messages);
+22 -45
View File
@@ -1,6 +1,7 @@
#include "LookPage.hpp"
#include "Application.hpp"
#include "messages/MessageBuilder.hpp"
#include "singletons/WindowManager.hpp"
#include "util/LayoutCreator.hpp"
#include "util/RemoveScrollAreaBackground.hpp"
@@ -317,55 +318,31 @@ ChannelPtr LookPage::createPreviewChannel()
{
auto channel = ChannelPtr(new Channel("preview", Channel::Type::Misc));
// clang-format off
{
auto message = MessagePtr(new Message());
message->addElement(new TimestampElement(QTime(8, 13, 42)));
message->addElement(new ImageElement(
Image::fromNonOwningPixmap(&getApp()->resources->twitch.moderator),
MessageElement::BadgeChannelAuthority));
message->addElement(new ImageElement(
Image::fromNonOwningPixmap(&getApp()->resources->twitch.subscriber),
MessageElement::BadgeSubscription));
message->addElement(
new TextElement("username1:", MessageElement::Username,
QColor("#0094FF"), FontStyle::ChatMediumBold));
message->addElement(
new TextElement("This is a preview message", MessageElement::Text));
message->addElement(new ImageElement(
Image::fromNonOwningPixmap(&getApp()->resources->pajaDank),
MessageElement::Flags::AlwaysShow));
message->addElement(
new TextElement("@fourtf", TextElement::BoldUsername,
MessageColor::Text, FontStyle::ChatMediumBold));
message->addElement(
new TextElement("@fourtf", TextElement::NonBoldUsername));
channel->addMessage(message);
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);
channel->addMessage(builder.release());
}
{
auto message = MessagePtr(new Message());
message->addElement(new TimestampElement(QTime(8, 15, 21)));
message->addElement(
new ImageElement(Image::fromNonOwningPixmap(
&getApp()->resources->twitch.broadcaster),
MessageElement::BadgeChannelAuthority));
message->addElement(
new TextElement("username2:", MessageElement::Username,
QColor("#FF6A00"), FontStyle::ChatMediumBold));
message->addElement(
new TextElement("This is another one", MessageElement::Text));
// message->addElement(new ImageElement(
// Image::fromNonOwningPixmap(&getApp()->resources->ppHop),
// MessageElement::BttvEmote));
message->addElement(
(new TextElement("www.fourtf.com", MessageElement::LowercaseLink,
MessageColor::Link))
->setLink(Link(Link::Url, "https://www.fourtf.com")));
message->addElement(
(new TextElement("wWw.FoUrTf.CoM", MessageElement::OriginalLink,
MessageColor::Link))
->setLink(Link(Link::Url, "https://www.fourtf.com")));
channel->addMessage(message);
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"));
channel->addMessage(message.release());
}
// clang-format on
return channel;
}