summary refs log tree commit diff
path: root/src/TimelineItem.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/TimelineItem.cc')
-rw-r--r--src/TimelineItem.cc54
1 files changed, 25 insertions, 29 deletions
diff --git a/src/TimelineItem.cc b/src/TimelineItem.cc

index 62ebc515..9d24a96c 100644 --- a/src/TimelineItem.cc +++ b/src/TimelineItem.cc
@@ -67,46 +67,42 @@ TimelineItem::init() } /* - * For messages created locally. The avatar and the username are displayed. + * For messages created locally. */ -TimelineItem::TimelineItem(const QString &userid, QString body, QWidget *parent) +TimelineItem::TimelineItem(events::MessageEventType ty, + const QString &userid, + QString body, + bool withSender, + QWidget *parent) : QWidget(parent) { init(); - descriptionMsg_ = { "You: ", userid, body, descriptiveTime(QDateTime::currentDateTime()) }; - body.replace(URL_REGEX, URL_HTML); auto displayName = TimelineViewManager::displayName(userid); + auto timestamp = QDateTime::currentDateTime(); - generateTimestamp(QDateTime::currentDateTime()); - generateBody(displayName, body); - - setupAvatarLayout(displayName); - - mainLayout_->addLayout(headerLayout_); - mainLayout_->addWidget(body_); - - AvatarProvider::resolve(userid, this); -} - -/* - * For messages created locally. Only the text is displayed. - */ -TimelineItem::TimelineItem(QString body, QWidget *parent) - : QWidget(parent) -{ - QSettings settings; - auto userid = settings.value("auth/user_id").toString(); - - init(); - descriptionMsg_ = { "You: ", userid, body, descriptiveTime(QDateTime::currentDateTime()) }; + if (ty == events::MessageEventType::Emote) { + body = QString("* %1 %2").arg(displayName).arg(body); + descriptionMsg_ = { "", userid, body, descriptiveTime(timestamp) }; + } else { + descriptionMsg_ = { + "You: ", userid, body, descriptiveTime(QDateTime::currentDateTime()) + }; + } body.replace(URL_REGEX, URL_HTML); + generateTimestamp(timestamp); - generateTimestamp(QDateTime::currentDateTime()); - generateBody(body); + if (withSender) { + generateBody(displayName, body); + setupAvatarLayout(displayName); + mainLayout_->addLayout(headerLayout_); - setupSimpleLayout(); + AvatarProvider::resolve(userid, this); + } else { + generateBody(body); + setupSimpleLayout(); + } mainLayout_->addWidget(body_); }