summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-07-20 12:02:35 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-07-20 12:02:35 +0300
commitd7e5171bfabf48e69112190b7096268222979c1c (patch)
tree89e09ff0189dbd87f7f203da0a53a52ccbb7fa2a /src/timeline
parentAdd user avatar after the 'encryption is enabled' message (diff)
downloadnheko-d7e5171bfabf48e69112190b7096268222979c1c.tar.xz
Create user profile modal
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/TimelineItem.cpp17
-rw-r--r--src/timeline/TimelineItem.h5
2 files changed, 15 insertions, 7 deletions
diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp

index 696db8de..71b3156c 100644 --- a/src/timeline/TimelineItem.cpp +++ b/src/timeline/TimelineItem.cpp
@@ -23,6 +23,7 @@ #include "ChatPage.h" #include "Config.h" #include "Logging.h" +#include "MainWindow.h" #include "Olm.h" #include "ui/Avatar.h" #include "ui/Painter.h" @@ -562,6 +563,13 @@ TimelineItem::generateBody(const QString &body) void TimelineItem::generateBody(const QString &user_id, const QString &displayname, const QString &body) { + generateUserName(user_id, displayname); + generateBody(body); +} + +void +TimelineItem::generateUserName(const QString &user_id, const QString &displayname) +{ auto sender = displayname; if (displayname.startsWith("@")) { @@ -598,7 +606,9 @@ TimelineItem::generateBody(const QString &user_id, const QString &displayname, c userName_->setFont(f); }); - generateBody(body); + connect(filter, &UserProfileFilter::clicked, this, [this, user_id]() { + MainWindow::instance()->openUserProfile(user_id, room_id_); + }); } void @@ -742,10 +752,7 @@ TimelineItem::addAvatar() auto userid = descriptionMsg_.userid; auto displayName = Cache::displayName(room_id_, userid); - QFontMetrics fm(usernameFont_); - userName_ = new QLabel(this); - userName_->setFont(usernameFont_); - userName_->setText(fm.elidedText(displayName, Qt::ElideRight, 500)); + generateUserName(userid, displayName); setupAvatarLayout(displayName); diff --git a/src/timeline/TimelineItem.h b/src/timeline/TimelineItem.h
index 874c00df..db000078 100644 --- a/src/timeline/TimelineItem.h +++ b/src/timeline/TimelineItem.h
@@ -137,13 +137,13 @@ public: signals: void hoverOff(); void hoverOn(); + void clicked(); protected: bool eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseButtonRelease) { - // QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); - // TODO: Open user profile + emit clicked(); return true; } else if (event->type() == QEvent::HoverLeave) { emit hoverOff(); @@ -274,6 +274,7 @@ private: void generateBody(const QString &body); void generateBody(const QString &user_id, const QString &displayname, const QString &body); void generateTimestamp(const QDateTime &time); + void generateUserName(const QString &userid, const QString &displayname); void setupAvatarLayout(const QString &userName); void setupSimpleLayout();