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

index f9df1cf9..ed83a98d 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -46,113 +46,126 @@ namespace { struct RoomEventType { template<class T> - qml_mtx_events::EventType operator()(const mtx::events::Event<T> &e) + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<T> &e) { return qml_mtx_events::toRoomEventType(e.type); } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Audio> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Audio> &) { return qml_mtx_events::EventType::AudioMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Confetti> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Confetti> &) { return qml_mtx_events::EventType::ConfettiMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Emote> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Emote> &) { return qml_mtx_events::EventType::EmoteMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::File> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::File> &) { return qml_mtx_events::EventType::FileMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Image> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Image> &) { return qml_mtx_events::EventType::ImageMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Notice> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Notice> &) { return qml_mtx_events::EventType::NoticeMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Text> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Text> &) { return qml_mtx_events::EventType::TextMessage; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Video> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Video> &) { return qml_mtx_events::EventType::VideoMessage; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationRequest> &) { return qml_mtx_events::EventType::KeyVerificationRequest; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationStart> &) { return qml_mtx_events::EventType::KeyVerificationStart; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationMac> &) { return qml_mtx_events::EventType::KeyVerificationMac; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationAccept> &) { return qml_mtx_events::EventType::KeyVerificationAccept; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationReady> &) { return qml_mtx_events::EventType::KeyVerificationReady; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationCancel> &) { return qml_mtx_events::EventType::KeyVerificationCancel; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationKey> &) { return qml_mtx_events::EventType::KeyVerificationKey; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::KeyVerificationDone> &) { return qml_mtx_events::EventType::KeyVerificationDone; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::msg::Redacted> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::msg::Redacted> &) { return qml_mtx_events::EventType::Redacted; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallInvite> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::voip::CallInvite> &) { return qml_mtx_events::EventType::CallInvite; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallAnswer> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::voip::CallAnswer> &) { return qml_mtx_events::EventType::CallAnswer; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallHangUp> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::voip::CallHangUp> &) { return qml_mtx_events::EventType::CallHangUp; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallCandidates> &) { return qml_mtx_events::EventType::CallCandidates; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallSelectAnswer> &) { return qml_mtx_events::EventType::CallSelectAnswer; } - qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallReject> &) + constexpr qml_mtx_events::EventType + operator()(const mtx::events::Event<mtx::events::voip::CallReject> &) { return qml_mtx_events::EventType::CallReject; } - qml_mtx_events::EventType + constexpr qml_mtx_events::EventType operator()(const mtx::events::Event<mtx::events::voip::CallNegotiate> &) { return qml_mtx_events::EventType::CallNegotiate; @@ -1060,7 +1073,7 @@ TimelineModel::addEvents(const mtx::responses::Timeline &timeline) } template<typename T> -auto +static constexpr auto isMessage(const mtx::events::RoomEvent<T> &e) -> std::enable_if_t<std::is_same<decltype(e.content.msgtype), std::string>::value, bool> { @@ -1068,42 +1081,42 @@ isMessage(const mtx::events::RoomEvent<T> &e) } template<typename T> -auto +static constexpr auto isMessage(const mtx::events::Event<T> &) { return false; } template<typename T> -auto +static constexpr auto isMessage(const mtx::events::EncryptedEvent<T> &) { return true; } -auto +static constexpr auto isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallInvite> &) { return true; } -auto +static constexpr auto isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallAnswer> &) { return true; } -auto +static constexpr auto isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallHangUp> &) { return true; } -auto +static constexpr auto isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallReject> &) { return true; } -auto +static constexpr auto isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallSelectAnswer> &) { return true;