mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
71 lines
1.8 KiB
C++
71 lines
1.8 KiB
C++
#include "messages/MessageBuilder.hpp"
|
|
|
|
#include "common/Aliases.hpp"
|
|
#include "common/Outcome.hpp"
|
|
|
|
#include <IrcMessage>
|
|
#include <QColor>
|
|
#include <QUrl>
|
|
|
|
namespace chatterino {
|
|
|
|
class SharedMessageBuilder : public MessageBuilder
|
|
{
|
|
public:
|
|
SharedMessageBuilder() = delete;
|
|
|
|
explicit SharedMessageBuilder(Channel *_channel,
|
|
const Communi::IrcPrivateMessage *_ircMessage,
|
|
const MessageParseArgs &_args);
|
|
|
|
explicit SharedMessageBuilder(Channel *_channel,
|
|
const Communi::IrcMessage *_ircMessage,
|
|
const MessageParseArgs &_args,
|
|
QString content, bool isAction);
|
|
|
|
QString userName;
|
|
|
|
[[nodiscard]] virtual bool isIgnored() const;
|
|
|
|
// triggerHighlights triggers any alerts or sounds parsed by parseHighlights
|
|
virtual void triggerHighlights();
|
|
virtual MessagePtr build() = 0;
|
|
|
|
protected:
|
|
virtual void parse();
|
|
|
|
virtual void parseUsernameColor();
|
|
|
|
virtual void parseUsername();
|
|
|
|
virtual Outcome tryAppendEmote(const EmoteName &name)
|
|
{
|
|
return Failure;
|
|
}
|
|
|
|
// parseHighlights only updates the visual state of the message, but leaves the playing of alerts and sounds to the triggerHighlights function
|
|
virtual void parseHighlights();
|
|
|
|
virtual void addTextOrEmoji(EmotePtr emote);
|
|
virtual void addTextOrEmoji(const QString &value);
|
|
|
|
void appendChannelName();
|
|
|
|
Channel *channel;
|
|
const Communi::IrcMessage *ircMessage;
|
|
MessageParseArgs args;
|
|
const QVariantMap tags;
|
|
QString originalMessage_;
|
|
|
|
const bool action_{};
|
|
|
|
QColor usernameColor_;
|
|
|
|
bool highlightAlert_ = false;
|
|
bool highlightSound_ = false;
|
|
|
|
QUrl highlightSoundUrl_;
|
|
};
|
|
|
|
} // namespace chatterino
|