|
|
@ -274,6 +274,28 @@ TimelineView::parseMessageEvent(const QJsonObject &event, TimelineDirection dire |
|
|
|
updateLastSender(img.sender(), direction); |
|
|
|
updateLastSender(img.sender(), direction); |
|
|
|
|
|
|
|
|
|
|
|
return createTimelineItem(img, with_sender); |
|
|
|
return createTimelineItem(img, with_sender); |
|
|
|
|
|
|
|
} else if (msg_type == events::MessageEventType::Emote) { |
|
|
|
|
|
|
|
events::MessageEvent<msgs::Emote> emote; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
emote.deserialize(event); |
|
|
|
|
|
|
|
} catch (const DeserializationException &e) { |
|
|
|
|
|
|
|
qWarning() << e.what() << event; |
|
|
|
|
|
|
|
return nullptr; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isDuplicate(emote.eventId())) |
|
|
|
|
|
|
|
return nullptr; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eventIds_[emote.eventId()] = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO Check if it's a message waiting for validation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto with_sender = isSenderRendered(emote.sender(), direction); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
updateLastSender(emote.sender(), direction); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return createTimelineItem(emote, with_sender); |
|
|
|
} else if (msg_type == events::MessageEventType::Unknown) { |
|
|
|
} else if (msg_type == events::MessageEventType::Unknown) { |
|
|
|
qWarning() << "Unknown message type" << event; |
|
|
|
qWarning() << "Unknown message type" << event; |
|
|
|
return nullptr; |
|
|
|
return nullptr; |
|
|
@ -403,6 +425,13 @@ TimelineView::createTimelineItem(const events::MessageEvent<msgs::Text> &event, |
|
|
|
return item; |
|
|
|
return item; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TimelineItem * |
|
|
|
|
|
|
|
TimelineView::createTimelineItem(const events::MessageEvent<msgs::Emote> &event, bool with_sender) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
TimelineItem *item = new TimelineItem(event, with_sender, scroll_widget_); |
|
|
|
|
|
|
|
return item; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
TimelineView::addTimelineItem(TimelineItem *item, TimelineDirection direction) |
|
|
|
TimelineView::addTimelineItem(TimelineItem *item, TimelineDirection direction) |
|
|
|
{ |
|
|
|
{ |
|
|
|