summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2009-08-18 06:50:09 (GMT)
committerKevin Smith <git@kismith.co.uk>2009-08-18 06:50:09 (GMT)
commit666ad146312a1c8abdefe8bba5582fd9ac042700 (patch)
treea895bd8435c853d113b63aeabe2692dd554e630e /Swift/QtUI/Roster/RosterDelegate.cpp
parent19cc57c75a495b73d16e0932b77a6e2d9fbdc4e3 (diff)
downloadswift-666ad146312a1c8abdefe8bba5582fd9ac042700.zip
swift-666ad146312a1c8abdefe8bba5582fd9ac042700.tar.bz2
Include a (dummy) presence icon in roster entries.
Diffstat (limited to 'Swift/QtUI/Roster/RosterDelegate.cpp')
-rw-r--r--Swift/QtUI/Roster/RosterDelegate.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/Swift/QtUI/Roster/RosterDelegate.cpp b/Swift/QtUI/Roster/RosterDelegate.cpp
index b05bbb1..f3f07ee 100644
--- a/Swift/QtUI/Roster/RosterDelegate.cpp
+++ b/Swift/QtUI/Roster/RosterDelegate.cpp
@@ -35,17 +35,24 @@ void RosterDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option
painter->fillRect(fullRegion, option.palette.highlight());
painter->setPen(option.palette.highlightedText().color());
}
- QRect avatarRegion(QPoint(margin_, fullRegion.top() + margin_), QSize(avatarSize_, avatarSize_));
- QIcon icon = index.data(AvatarRole).isValid() && !index.data(AvatarRole).value<QIcon>().isNull()
+
+ QRect presenceIconRegion(QPoint(margin_, fullRegion.top()), QSize(presenceIconSize_, fullRegion.height()));
+ QIcon presenceIcon = index.data(PresenceIconRole).isValid() && !index.data(PresenceIconRole).value<QIcon>().isNull()
+ ? index.data(PresenceIconRole).value<QIcon>()
+ : QIcon(":/icons/offline.png");
+ presenceIcon.paint(painter, presenceIconRegion, Qt::AlignVCenter | Qt::AlignHCenter);
+
+ QRect avatarRegion(QPoint(presenceIconRegion.right() + margin_, fullRegion.top()), QSize(avatarSize_, fullRegion.height()));
+ QIcon avatar = index.data(AvatarRole).isValid() && !index.data(AvatarRole).value<QIcon>().isNull()
? index.data(AvatarRole).value<QIcon>()
: QIcon(":/icons/avatar.png");
- icon.paint(painter, avatarRegion, Qt::AlignVCenter | Qt::AlignHCenter);
+ avatar.paint(painter, avatarRegion, Qt::AlignVCenter | Qt::AlignHCenter);
QFont nameFont = painter->font();
QFont statusFont = painter->font();
painter->setFont(nameFont);
- QRect textRegion(fullRegion.adjusted(avatarSize_ + margin_ * 2, 0, 0, 0));
+ QRect textRegion(fullRegion.adjusted(avatarRegion.right() + margin_ * 2, 0, 0, 0));
QFontMetrics nameMetrics(nameFont);
int nameHeight = nameMetrics.height() + margin_;