added toggle for moderation mode

This commit is contained in:
fourtf
2018-01-17 16:52:51 +01:00
parent 01efa1f447
commit e694214243
17 changed files with 136 additions and 83 deletions
+4 -4
View File
@@ -61,7 +61,7 @@ void MessageLayout::removeFlags(Flags _flags)
// Layout
// return true if redraw is required
bool MessageLayout::layout(int width, float scale)
bool MessageLayout::layout(int width, float scale, MessageElement::Flags flags)
{
auto &emoteManager = singletons::EmoteManager::getInstance();
@@ -114,20 +114,20 @@ bool MessageLayout::layout(int width, float scale)
return false;
}
this->actuallyLayout(width);
this->actuallyLayout(width, flags);
this->invalidateBuffer();
return true;
}
void MessageLayout::actuallyLayout(int width)
void MessageLayout::actuallyLayout(int width, MessageElement::Flags flags)
{
this->container.clear();
this->container.width = width;
this->container.scale = this->scale;
for (const std::unique_ptr<MessageElement> &element : this->message->getElements()) {
element->addToContainer(this->container, MessageElement::Default);
element->addToContainer(this->container, flags);
}
if (this->height != this->container.getHeight()) {
+2 -2
View File
@@ -38,7 +38,7 @@ public:
void removeFlags(Flags flags);
// Layout
bool layout(int width, float scale);
bool layout(int width, float scale, MessageElement::Flags flags);
// Painting
void paint(QPainter &painter, int y, int messageIndex, Selection &selection);
@@ -75,7 +75,7 @@ private:
int collapsedHeight = 32;
// methods
void actuallyLayout(int width);
void actuallyLayout(int width, MessageElement::Flags flags);
void updateBuffer(QPixmap *pixmap, int messageIndex, Selection &selection);
};
+14 -35
View File
@@ -68,10 +68,6 @@ void ImageElement::addToContainer(MessageLayoutContainer &container, MessageElem
(new ImageLayoutElement(*this, this->image, size))->setLink(this->getLink()));
}
void ImageElement::update(UpdateFlags _flags)
{
}
// EMOTE
EmoteElement::EmoteElement(const util::EmoteData &_data, MessageElement::Flags flags)
: MessageElement(flags)
@@ -106,10 +102,6 @@ void EmoteElement::addToContainer(MessageLayoutContainer &container, MessageElem
container.addElement((new ImageLayoutElement(*this, _image, size))->setLink(this->getLink()));
}
void EmoteElement::update(UpdateFlags _flags)
{
}
// TEXT
TextElement::TextElement(const QString &text, MessageElement::Flags flags,
const MessageColor &_color, FontStyle _style)
@@ -195,15 +187,6 @@ void TextElement::addToContainer(MessageLayoutContainer &container, MessageEleme
}
}
void TextElement::update(UpdateFlags _flags)
{
if (_flags & UpdateFlags::Update_Text) {
for (Word &word : this->words) {
word.width = -1;
}
}
}
// TIMESTAMP
TimestampElement::TimestampElement()
: TimestampElement(QTime::currentTime())
@@ -235,11 +218,6 @@ void TimestampElement::addToContainer(MessageLayoutContainer &container,
this->element->addToContainer(container, _flags);
}
void TimestampElement::update(UpdateFlags _flags)
{
this->element->update(_flags);
}
TextElement *TimestampElement::formatTime(const QTime &time)
{
QString format = time.toString(singletons::SettingManager::getInstance().timestampFormat);
@@ -256,23 +234,24 @@ TwitchModerationElement::TwitchModerationElement()
void TwitchModerationElement::addToContainer(MessageLayoutContainer &container,
MessageElement::Flags _flags)
{
QSize size((int)(container.scale * 16), (int)(container.scale * 16));
qDebug() << _flags;
for (const singletons::ModerationAction &m :
singletons::SettingManager::getInstance().getModerationActions()) {
if (m.isImage()) {
container.addElement((new ImageLayoutElement(*this, m.getImage(), size))
->setLink(Link(Link::UserAction, m.getAction())));
} else {
container.addElement((new TextIconLayoutElement(*this, m.getLine1(), m.getLine2(),
container.scale, size))
->setLink(Link(Link::UserAction, m.getAction())));
if (_flags & MessageElement::ModeratorTools) {
QSize size((int)(container.scale * 16), (int)(container.scale * 16));
for (const singletons::ModerationAction &m :
singletons::SettingManager::getInstance().getModerationActions()) {
if (m.isImage()) {
container.addElement((new ImageLayoutElement(*this, m.getImage(), size))
->setLink(Link(Link::UserAction, m.getAction())));
} else {
container.addElement((new TextIconLayoutElement(*this, m.getLine1(), m.getLine2(),
container.scale, size))
->setLink(Link(Link::UserAction, m.getAction())));
}
}
}
}
void TwitchModerationElement::update(UpdateFlags _flags)
{
}
} // namespace messages
} // namespace chatterino
-6
View File
@@ -122,7 +122,6 @@ public:
Flags getFlags() const;
virtual void addToContainer(MessageLayoutContainer &container, MessageElement::Flags flags) = 0;
virtual void update(UpdateFlags flags) = 0;
protected:
MessageElement(Flags flags);
@@ -144,7 +143,6 @@ public:
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
virtual void update(UpdateFlags flags) override;
};
// contains emote data and will pick the emote based on :
@@ -159,7 +157,6 @@ public:
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
virtual void update(UpdateFlags flags) override;
};
// contains a text, it will split it into words
@@ -181,7 +178,6 @@ public:
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
virtual void update(UpdateFlags flags);
};
// contains a text, formated depending on the preferences
@@ -198,7 +194,6 @@ public:
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
virtual void update(UpdateFlags flags);
TextElement *formatTime(const QTime &time);
};
@@ -212,7 +207,6 @@ public:
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
virtual void update(UpdateFlags flags);
};
// adds bits as text, static image or animated image