summary refs log tree commit diff
path: root/src/TimelineItem.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-05-07 17:15:38 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-05-07 17:15:38 +0300
commit1f90c58076b9c40a609c88b9cdad51dd55da6954 (patch)
tree5a45ae1b5b1ca62cf8665aa892de904481dac215 /src/TimelineItem.cc
parentAdd matrix::events namespace (diff)
downloadnheko-1f90c58076b9c40a609c88b9cdad51dd55da6954.tar.xz
Use timeline to retrieve state events
- Rooms without any history will be shown.
- Room's state will be kept in sync and any updates will be visible.
Diffstat (limited to 'src/TimelineItem.cc')
-rw-r--r--src/TimelineItem.cc30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/TimelineItem.cc b/src/TimelineItem.cc

index 4d33db70..8d5e503a 100644 --- a/src/TimelineItem.cc +++ b/src/TimelineItem.cc
@@ -21,6 +21,9 @@ #include "ImageItem.h" #include "TimelineItem.h" +namespace events = matrix::events; +namespace msgs = matrix::events::messages; + TimelineItem::TimelineItem(const QString &userid, const QString &color, const QString &body, QWidget *parent) : QWidget(parent) { @@ -37,7 +40,7 @@ TimelineItem::TimelineItem(const QString &body, QWidget *parent) setupLayout(); } -TimelineItem::TimelineItem(ImageItem *image, const Event &event, const QString &color, QWidget *parent) +TimelineItem::TimelineItem(ImageItem *image, const events::MessageEvent<msgs::Image> &event, const QString &color, QWidget *parent) : QWidget(parent) { auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp()); @@ -58,7 +61,7 @@ TimelineItem::TimelineItem(ImageItem *image, const Event &event, const QString & setLayout(top_layout_); } -TimelineItem::TimelineItem(ImageItem *image, const Event &event, QWidget *parent) +TimelineItem::TimelineItem(ImageItem *image, const events::MessageEvent<msgs::Image> &event, QWidget *parent) : QWidget(parent) { auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp()); @@ -73,16 +76,31 @@ TimelineItem::TimelineItem(ImageItem *image, const Event &event, QWidget *parent setLayout(top_layout_); } -TimelineItem::TimelineItem(const Event &event, bool with_sender, const QString &color, QWidget *parent) +TimelineItem::TimelineItem(const events::MessageEvent<msgs::Notice> &event, bool with_sender, const QString &color, QWidget *parent) : QWidget(parent) { - auto body = event.content().value("body").toString().trimmed().toHtmlEscaped(); + auto body = event.content().body().trimmed().toHtmlEscaped(); auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp()); generateTimestamp(timestamp); - if (event.content().value("msgtype").toString() == "m.notice") - body = "<i style=\"color: #565E5E\">" + body + "</i>"; + body = "<i style=\"color: #565E5E\">" + body + "</i>"; + + if (with_sender) + generateBody(event.sender(), color, body); + else + generateBody(body); + + setupLayout(); +} + +TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event, bool with_sender, const QString &color, QWidget *parent) + : QWidget(parent) +{ + auto body = event.content().body().trimmed().toHtmlEscaped(); + auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp()); + + generateTimestamp(timestamp); if (with_sender) generateBody(event.sender(), color, body);