diff --git a/resources/qml/ui/TimelineEffects.qml b/resources/qml/ui/TimelineEffects.qml index 4e2acea4a8e9bc258423023b99398ddf02275b1a..35c54c04aa86dc7dacc715589924b187fb8ac54c 100644 --- a/resources/qml/ui/TimelineEffects.qml +++ b/resources/qml/ui/TimelineEffects.qml @@ -24,7 +24,7 @@ Item { ParticleSystem { id: particleSystem - Component.onCompleted: pause(); + Component.onCompleted: stop(); paused: !effectRoot.shouldEffectsRun running: effectRoot.shouldEffectsRun } @@ -32,7 +32,6 @@ Item { Emitter { id: confettiEmitter - Component.onCompleted: stop(); group: "confetti" width: effectRoot.width * 3/4 enabled: false diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index aa7a5e6a507085907f0013ffe07cdc02339f98a7..e8b5d40eaeb8a4a1d72ce00a98a28d2a50c2001d 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -690,6 +690,16 @@ TimelineModel::data(const mtx::events::collections::TimelineEvents &event, int r formattedBody_.replace(curImg, imgReplacement); } + if (auto effectMessage = + std::get_if<mtx::events::RoomEvent<mtx::events::msg::ElementEffect>>(&event)) { + if (effectMessage->content.msgtype == std::string_view("nic.custom.confetti")) { + formattedBody_.append(QUtf8StringView(u8"🎊")); + } else if (effectMessage->content.msgtype == + std::string_view("io.element.effect.rainfall")) { + formattedBody_.append(QUtf8StringView(u8"🌧ï¸")); + } + } + return QVariant(utils::replaceEmoji(utils::linkifyMessage(formattedBody_))); } case FormattedStateEvent: {