summary refs log tree commit diff
path: root/src/timeline/TimelineModel.h
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2023-04-10 23:19:44 +0000
committerGitHub <noreply@github.com>2023-04-10 23:19:44 +0000
commit7973fbce8c0db3eb82eafb4cc0f776ba10ec8a79 (patch)
treec5cb9c8eccb061747919ac9c4574f207c62a8b42 /src/timeline/TimelineModel.h
parentTranslated using Weblate (German) (diff)
parentUpdate mtxclient commit hash (diff)
downloadnheko-7973fbce8c0db3eb82eafb4cc0f776ba10ec8a79.tar.xz
Merge pull request #1407 from Nheko-Reborn/ducktyping
Implement unknown msgtype functionality
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)