- return new MatrixEvent(lager::with(m_timelineEventIds, m_messagesMap, m_localEchoes, LAGER_QT(count))
- .map([index](const auto &tlEventIds, const auto &messagesMap, const auto &localEchoes, const auto &count) -> std::variant<Kazv::Event, Kazv::LocalEchoDesc, std::string> {
+ return new MatrixEvent(lager::with(m_timelineEventIds, m_messagesMap, m_localEchoes)
+ .map([index](const auto &tlEventIds, const auto &messagesMap, const auto &localEchoes) -> std::variant<Kazv::Event, Kazv::LocalEchoDesc, std::string> {
+ auto count = tlEventIds.size() + localEchoes.size();
auto rIndex = count - index - 1;
if (static_cast<unsigned int>(rIndex) < tlEventIds.size()) {
auto eventId = tlEventIds[rIndex];
@@ -82,6 +150,35 @@
}), m_room);
}
+QVariant MatrixRoomTimeline::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || std::size_t(index.row()) >= static_cast<const EnhancedTotalItems &>(m_innerTotalItems).size()) {