summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-18 15:54:53 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-18 15:54:53 +0200
commit7253dc2c54465c9bd5bd81c38b1bd8a4927864eb (patch)
treeb009d6736f528b63b087a90160808b39d02bd90a /src
parentUpgrade gcc version (diff)
downloadnheko-7253dc2c54465c9bd5bd81c38b1bd8a4927864eb.tar.xz
roomlist: Put the message timestamp on the top
Diffstat (limited to 'src')
-rw-r--r--src/RoomInfoListItem.cc73
-rw-r--r--src/timeline/TimelineView.cc10
2 files changed, 47 insertions, 36 deletions
diff --git a/src/RoomInfoListItem.cc b/src/RoomInfoListItem.cc

index 9d4a16d9..e84cb832 100644 --- a/src/RoomInfoListItem.cc +++ b/src/RoomInfoListItem.cc
@@ -52,6 +52,25 @@ RoomInfoListItem::init(QWidget *parent) ripple_overlay_ = new RippleOverlay(this); ripple_overlay_->setClipPath(path); ripple_overlay_->setClipping(true); + + font_.setPixelSize(conf::fontSize); + + usernameFont_ = font_; + usernameFont_.setWeight(60); + + bubbleFont_ = font_; + bubbleFont_.setPixelSize(conf::roomlist::fonts::bubble); + + unreadCountFont_.setPixelSize(conf::roomlist::fonts::badge); + unreadCountFont_.setBold(true); + + timestampFont_ = font_; + timestampFont_.setPixelSize(conf::roomlist::fonts::timestamp); + timestampFont_.setBold(false); + + headingFont_ = font_; + headingFont_.setPixelSize(conf::roomlist::fonts::heading); + headingFont_.setWeight(60); } RoomInfoListItem::RoomInfoListItem(QString room_id, @@ -125,9 +144,7 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) p.setRenderHint(QPainter::SmoothPixmapTransform); p.setRenderHint(QPainter::Antialiasing); - QFont font; - font.setPixelSize(conf::fontSize); - QFontMetrics metrics(font); + QFontMetrics metrics(font_); QPen titlePen(titleColor_); QPen subtitlePen(subtitleColor_); @@ -148,26 +165,26 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) int bottom_y = MaxHeight - Padding - Padding / 3 - metrics.ascent() / 2; if (width() > ui::sidebar::SmallSize) { - font.setPixelSize(conf::roomlist::fonts::heading); - font.setWeight(60); - p.setFont(font); + p.setFont(headingFont_); p.setPen(titlePen); + const auto msgStampWidth = + QFontMetrics(timestampFont_).width(lastMsgInfo_.timestamp) + 4; + // Name line. - QFontMetrics fontNameMetrics(font); + QFontMetrics fontNameMetrics(headingFont_); int top_y = 2 * Padding + fontNameMetrics.ascent() / 2; - auto name = metrics.elidedText( - roomName(), Qt::ElideRight, (width() - IconSize - 2 * Padding) * 0.8); + const auto name = + metrics.elidedText(roomName(), + Qt::ElideRight, + (width() - IconSize - 2 * Padding - msgStampWidth) * 0.8); p.drawText(QPoint(2 * Padding + IconSize, top_y), name); if (roomType_ == RoomType::Joined) { - font.setPixelSize(conf::fontSize); - p.setFont(font); + p.setFont(font_); p.setPen(subtitlePen); - auto msgStampWidth = QFontMetrics(font).width(lastMsgInfo_.timestamp) + 5; - // The limit is the space between the end of the avatar and the start of the // timestamp. int usernameLimit = @@ -175,14 +192,12 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) auto userName = metrics.elidedText(lastMsgInfo_.username, Qt::ElideRight, usernameLimit); - font.setWeight(60); - p.setFont(font); + p.setFont(usernameFont_); p.drawText(QPoint(2 * Padding + IconSize, bottom_y), userName); - int nameWidth = QFontMetrics(font).width(userName); + int nameWidth = QFontMetrics(usernameFont_).width(userName); - font.setBold(false); - p.setFont(font); + p.setFont(font_); // The limit is the space between the end of the username and the start of // the timestamp. @@ -193,12 +208,10 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) p.drawText(QPoint(2 * Padding + IconSize + nameWidth, bottom_y), description); - // We either show the bubble or the last message timestamp. - if (unreadMsgCount_ == 0) { - font.setBold(true); - p.drawText(QPoint(width() - Padding - msgStampWidth, bottom_y), - lastMsgInfo_.timestamp); - } + // We show the last message timestamp. + p.setFont(timestampFont_); + p.drawText(QPoint(width() - Padding - msgStampWidth, top_y), + lastMsgInfo_.timestamp); } else { int btnWidth = (width() - IconSize - 6 * Padding) / 2; @@ -221,13 +234,12 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) p.drawPath(declinePath); p.setPen(QPen(btnTextColor_)); - p.setFont(font); + p.setFont(font_); p.drawText(acceptBtnRegion_, Qt::AlignCenter, tr("Accept")); p.drawText(declineBtnRegion_, Qt::AlignCenter, tr("Decline")); } } - font.setBold(false); p.setPen(Qt::NoPen); // We using the first letter of room's name. @@ -241,8 +253,7 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) p.drawEllipse(avatarRegion.center(), IconSize / 2, IconSize / 2); - font.setPixelSize(conf::roomlist::fonts::bubble); - p.setFont(font); + p.setFont(bubbleFont_); p.setPen(QColor("#333")); p.setBrush(Qt::NoBrush); p.drawText( @@ -269,13 +280,9 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) if (isPressed_) brush.setColor(textColor); - QFont unreadCountFont; - unreadCountFont.setPixelSize(conf::roomlist::fonts::badge); - unreadCountFont.setBold(true); - p.setBrush(brush); p.setPen(Qt::NoPen); - p.setFont(unreadCountFont); + p.setFont(unreadCountFont_); int diameter = 20; diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc
index 16b57df4..c4d31f3a 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc
@@ -679,13 +679,17 @@ TimelineView::createDateSeparator(QDateTime datetime) fmt = QString("ddd d MMMM"); if (days == 0) - separator = new QLabel(tr("Today")); + separator = new QLabel(tr("Today"), this); else if (std::abs(days) == 1) - separator = new QLabel(tr("Yesterday")); + separator = new QLabel(tr("Yesterday"), this); else - separator = new QLabel(datetime.toString(fmt)); + separator = new QLabel(datetime.toString(fmt), this); if (separator) { + QFont font; + font.setWeight(60); + + separator->setFont(font); separator->setStyleSheet( QString("font-size: %1px").arg(conf::timeline::fonts::dateSeparator)); separator->setAlignment(Qt::AlignCenter);