Enlarge desktop chat and member avatars
This commit is contained in:
1 parent
aa58c7fd3d
commit
29ee55d751
7 files changed
+42
-22
No files matched your search
@@ -17,12 +17,14 @@ extern "C" {
|
||||
static void applyPhoto(MemberListItem& item, const QString& channel) {
|
||||
auto* manager = AvatarManager::instance(); if (!manager) return;
|
||||
const QImage image = manager->image(channel, item.nodeId); if (image.isNull()) return;
|
||||
QPixmap pixmap(24, 24); pixmap.fill(Qt::transparent);
|
||||
const int size = MemberListModel::kAvatarSize;
|
||||
QPixmap pixmap(size, size); pixmap.fill(Qt::transparent);
|
||||
QPainter painter(&pixmap); painter.setRenderHint(QPainter::Antialiasing);
|
||||
QPainterPath clip; clip.addEllipse(QRectF(0, 0, 24, 24)); painter.setClipPath(clip);
|
||||
painter.drawImage(QRect(0, 0, 24, 24), image); painter.setClipping(false);
|
||||
painter.setRenderHint(QPainter::SmoothPixmapTransform);
|
||||
QPainterPath clip; clip.addEllipse(QRectF(0, 0, size, size)); painter.setClipPath(clip);
|
||||
painter.drawImage(QRect(0, 0, size, size), image); painter.setClipping(false);
|
||||
painter.setPen(QPen(Qt::white, 1)); painter.setBrush(item.online ? QColor("#4CAF50") : QColor("#9E9E9E"));
|
||||
painter.drawEllipse(QRect(17, 17, 6, 6)); painter.end(); item.avatar = pixmap;
|
||||
painter.drawEllipse(QRect(size - 7, size - 7, 6, 6)); painter.end(); item.avatar = pixmap;
|
||||
}
|
||||
|
||||
MemberListModel::MemberListModel(QObject* parent)
|
||||
@@ -136,16 +138,17 @@ static void deserialize_member(const uint8_t* src, MemberListItem& item) {
|
||||
item.name = QString::fromUtf8(name);
|
||||
|
||||
QColor c = item.online ? QColor("#4CAF50") : QColor("#9E9E9E");
|
||||
QPixmap pm(24, 24); pm.fill(Qt::transparent);
|
||||
const int size = MemberListModel::kAvatarSize;
|
||||
QPixmap pm(size, size); pm.fill(Qt::transparent);
|
||||
QPainter p(&pm);
|
||||
p.setRenderHint(QPainter::Antialiasing);
|
||||
p.setBrush(c);
|
||||
p.setPen(Qt::NoPen);
|
||||
p.drawEllipse(2, 2, 20, 20);
|
||||
p.drawEllipse(0, 0, size, size);
|
||||
p.setPen(Qt::white);
|
||||
QFont f; f.setBold(true); f.setPixelSize(12);
|
||||
QFont f; f.setBold(true); f.setPixelSize(size / 2);
|
||||
p.setFont(f);
|
||||
p.drawText(QRect(0, 0, 24, 24), Qt::AlignCenter, item.name.left(1));
|
||||
p.drawText(QRect(0, 0, size, size), Qt::AlignCenter, item.name.left(1));
|
||||
p.end();
|
||||
item.avatar = pm;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user