From 328a3c7ebd5338cdc577fb1c40a03a40f293cbcf Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Tue, 3 Mar 2020 01:23:04 +0100 Subject: [PATCH] Fix avatar layering in room list --- resources/styles/nheko-dark.qss | 6 +++--- resources/styles/nheko.qss | 6 +++--- src/RoomInfoListItem.cpp | 11 +++++++++-- src/ui/Avatar.cpp | 6 ------ src/ui/Avatar.h | 1 - 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/resources/styles/nheko-dark.qss b/resources/styles/nheko-dark.qss index 4efb6f30..c0d91f99 100644 --- a/resources/styles/nheko-dark.qss +++ b/resources/styles/nheko-dark.qss @@ -126,7 +126,7 @@ RoomInfoListItem, UserMentionsWidget { qproperty-mentionedColor: #a82353; qproperty-highlightedBackgroundColor: #4d84c7; - qproperty-hoverBackgroundColor: rgba(230, 230, 230, 30); + qproperty-hoverBackgroundColor: rgb(67, 70, 77); qproperty-backgroundColor: #2d3139; qproperty-titleColor: #e4e5e8; @@ -156,7 +156,7 @@ RoomInfoListItem > Avatar { CommunitiesListItem { qproperty-highlightedBackgroundColor: #4d84c7; - qproperty-hoverBackgroundColor: rgba(230, 230, 230, 30); + qproperty-hoverBackgroundColor: rgb(67, 70, 77); qproperty-backgroundColor: #2d3139; qproperty-avatarBgColor: #202228; @@ -200,7 +200,7 @@ TopSection { } emoji--Category { - qproperty-hoverBackgroundColor: rgba(230, 230, 230, 30); + qproperty-hoverBackgroundColor: rgb(67, 70, 77); } FloatingButton { diff --git a/resources/styles/nheko.qss b/resources/styles/nheko.qss index 4c59bad1..960809de 100644 --- a/resources/styles/nheko.qss +++ b/resources/styles/nheko.qss @@ -93,7 +93,7 @@ RaisedButton { RoomInfoListItem { qproperty-mentionedColor: #a82353; qproperty-highlightedBackgroundColor: #38A3D8; - qproperty-hoverBackgroundColor: rgba(200, 200, 200, 40); + qproperty-hoverBackgroundColor: rgb(70, 77, 93); qproperty-hoverTitleColor: #f2f5f8; qproperty-hoverSubtitleColor: white; qproperty-backgroundColor: #f2f5f8; @@ -122,7 +122,7 @@ RoomInfoListItem > Avatar { CommunitiesListItem { qproperty-highlightedBackgroundColor: #38A3D8; - qproperty-hoverBackgroundColor: rgba(200, 200, 200, 40); + qproperty-hoverBackgroundColor: rgb(70, 77, 93); qproperty-backgroundColor: #f2f5f8; qproperty-avatarBgColor: #eee; @@ -199,7 +199,7 @@ emoji--Panel QScrollBar:vertical { width: 0px; margin: 0px; } emoji--Panel QScrollBar::handle:vertical { min-height: 30px; } emoji--Category { - qproperty-hoverBackgroundColor: rgba(200, 200, 200, 70); + qproperty-hoverBackgroundColor: rgb(70, 77, 93); } emoji--Category, diff --git a/src/RoomInfoListItem.cpp b/src/RoomInfoListItem.cpp index 4c8535bf..61fb5e47 100644 --- a/src/RoomInfoListItem.cpp +++ b/src/RoomInfoListItem.cpp @@ -84,9 +84,9 @@ RoomInfoListItem::init(QWidget *parent) ripple_overlay_->setClipPath(path); ripple_overlay_->setClipping(true); - avatar_ = new Avatar(this, wm.iconSize); + avatar_ = new Avatar(nullptr, wm.iconSize); avatar_->setLetter(utils::firstChar(roomName_)); - avatar_->move(wm.padding, wm.padding); + avatar_->resize(wm.iconSize, wm.iconSize); unreadCountFont_.setPointSizeF(unreadCountFont_.pointSizeF() * 0.8); unreadCountFont_.setBold(true); @@ -146,20 +146,27 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) auto wm = getMetrics(QFont{}); + QPixmap pixmap(avatar_->size()); if (isPressed_) { p.fillRect(rect(), highlightedBackgroundColor_); titlePen.setColor(highlightedTitleColor_); subtitlePen.setColor(highlightedSubtitleColor_); + pixmap.fill(highlightedBackgroundColor_); } else if (underMouse()) { p.fillRect(rect(), hoverBackgroundColor_); titlePen.setColor(hoverTitleColor_); subtitlePen.setColor(hoverSubtitleColor_); + pixmap.fill(hoverBackgroundColor_); } else { p.fillRect(rect(), backgroundColor_); titlePen.setColor(titleColor_); subtitlePen.setColor(subtitleColor_); + pixmap.fill(backgroundColor_); } + avatar_->render(&pixmap, QPoint(), QRegion(), RenderFlags(DrawChildren)); + p.drawPixmap(QPoint(wm.padding, wm.padding), pixmap); + // Description line with the default font. int bottom_y = wm.maxHeight - wm.padding - metrics.ascent() / 2; diff --git a/src/ui/Avatar.cpp b/src/ui/Avatar.cpp index 3589fce5..7ee58d03 100644 --- a/src/ui/Avatar.cpp +++ b/src/ui/Avatar.cpp @@ -38,12 +38,6 @@ Avatar::backgroundColor() const return background_color_; } -int -Avatar::size() const -{ - return size_; -} - QSize Avatar::sizeHint() const { diff --git a/src/ui/Avatar.h b/src/ui/Avatar.h index aea7d3e6..2910350d 100644 --- a/src/ui/Avatar.h +++ b/src/ui/Avatar.h @@ -26,7 +26,6 @@ public: QColor backgroundColor() const; QColor textColor() const; - int size() const; QSize sizeHint() const override;