Fancy effects: add fancy effects support for messageeventmodel
This commit is contained in:
committed by
Carl Schwan
parent
5ab44f1897
commit
45c9295d49
@@ -99,6 +99,37 @@ void MessageEventModel::setRoom(NeoChatRoom *room)
|
|||||||
|
|
||||||
using namespace Quotient;
|
using namespace Quotient;
|
||||||
connect(m_currentRoom, &Room::aboutToAddNewMessages, this, [=](RoomEventsRange events) {
|
connect(m_currentRoom, &Room::aboutToAddNewMessages, this, [=](RoomEventsRange events) {
|
||||||
|
for (auto &event : events) {
|
||||||
|
RoomMessageEvent *message = dynamic_cast<RoomMessageEvent *>(event.get());
|
||||||
|
if (message) {
|
||||||
|
QString planBody = message->plainBody();
|
||||||
|
// snowflake
|
||||||
|
QString snowlakeEmoji = QString::fromUtf8("\xE2\x9D\x84");
|
||||||
|
if (planBody.contains(snowlakeEmoji)) {
|
||||||
|
Q_EMIT fancyEffectsReasonFound(QStringLiteral("snowflake"));
|
||||||
|
}
|
||||||
|
// fireworks
|
||||||
|
QString fireworksEmoji = QString::fromUtf8("\xF0\x9F\x8E\x86");
|
||||||
|
if (planBody.contains(fireworksEmoji)) {
|
||||||
|
Q_EMIT fancyEffectsReasonFound(QStringLiteral("fireworks"));
|
||||||
|
}
|
||||||
|
// sparkler
|
||||||
|
QString sparklerEmoji = QString::fromUtf8("\xF0\x9F\x8E\x87");
|
||||||
|
if (planBody.contains(sparklerEmoji)) {
|
||||||
|
Q_EMIT fancyEffectsReasonFound(QStringLiteral("fireworks"));
|
||||||
|
}
|
||||||
|
// party pooper
|
||||||
|
QString partyEmoji = QString::fromUtf8("\xF0\x9F\x8E\x89");
|
||||||
|
if (planBody.contains(partyEmoji)) {
|
||||||
|
Q_EMIT fancyEffectsReasonFound(QStringLiteral("confetti"));
|
||||||
|
}
|
||||||
|
// confetti ball
|
||||||
|
QString confettiEmoji = QString::fromUtf8("\xF0\x9F\x8E\x8A");
|
||||||
|
if (planBody.contains(confettiEmoji)) {
|
||||||
|
Q_EMIT fancyEffectsReasonFound(QStringLiteral("confetti"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
beginInsertRows({}, timelineBaseIndex(), timelineBaseIndex() + int(events.size()) - 1);
|
beginInsertRows({}, timelineBaseIndex(), timelineBaseIndex() + int(events.size()) - 1);
|
||||||
});
|
});
|
||||||
connect(m_currentRoom, &Room::aboutToAddHistoricalMessages, this, [=](RoomEventsRange events) {
|
connect(m_currentRoom, &Room::aboutToAddHistoricalMessages, this, [=](RoomEventsRange events) {
|
||||||
|
|||||||
@@ -89,4 +89,5 @@ private:
|
|||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void roomChanged();
|
void roomChanged();
|
||||||
|
void fancyEffectsReasonFound(const QString &fancyEffect);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user