summary refs log tree commit diff
path: root/src/timeline/TimelineModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/timeline/TimelineModel.h')
-rw-r--r--src/timeline/TimelineModel.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h

index 03cb9ecb..ef845bb5 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -99,16 +99,17 @@ enum EventType Widget, /// m.room.message AudioMessage, - ConfettiMessage, + ElementEffectMessage, EmoteMessage, FileMessage, ImageMessage, LocationMessage, NoticeMessage, TextMessage, + UnknownMessage, VideoMessage, Redacted, - UnknownMessage, + UnknownEvent, KeyVerificationRequest, KeyVerificationStart, KeyVerificationMac, @@ -266,6 +267,13 @@ public: }; Q_ENUM(Roles); + enum SpecialEffect + { + Confetti, + Rainfall, + }; + Q_DECLARE_FLAGS(SpecialEffects, SpecialEffect) + QHash<int, QByteArray> roleNames() const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; @@ -450,6 +458,8 @@ signals: void scrollToIndex(int index); void confetti(); void confettiDone(); + void rainfall(); + void rainfallDone(); void lastMessageChanged(); void notificationsChanged(); @@ -521,8 +531,8 @@ private: std::string last_event_id; std::string fullyReadEventId_; - // TODO (Loren): This should hopefully handle more than just confetti in the future bool needsSpecialEffects_ = false; + QFlags<SpecialEffect> specialEffects_; std::unique_ptr<RoomSummary, DeleteLaterDeleter> parentSummary = nullptr; bool parentChecked = false; @@ -530,6 +540,8 @@ private: friend void EventStore::refetchOnlineKeyBackupKeys(TimelineModel *room); }; +Q_DECLARE_OPERATORS_FOR_FLAGS(TimelineModel::SpecialEffects) + template<class T> void TimelineModel::sendMessageEvent(const T &content, mtx::events::EventType eventType)