[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:15:05 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=5eef455
The following commit has been merged in the master branch:
commit 5eef45562e318291289f55d17937e26eb6f85ea8
Author: Martin Klapetek <mklapetek at kde.org>
Date: Fri Jan 30 21:00:52 2015 +0100
Implement contact graying out when offline in the delegates
---
abstract-contact-delegate.cpp | 14 ++++++++++++++
abstract-contact-delegate.h | 1 +
contact-delegate-compact.cpp | 5 +++++
contact-delegate.cpp | 5 +++++
4 files changed, 25 insertions(+)
diff --git a/abstract-contact-delegate.cpp b/abstract-contact-delegate.cpp
index a203a04..7a4bdd3 100644
--- a/abstract-contact-delegate.cpp
+++ b/abstract-contact-delegate.cpp
@@ -171,3 +171,17 @@ bool AbstractContactDelegate::helpEvent(QHelpEvent *event, QAbstractItemView *vi
Q_UNUSED(index)
return false;
}
+
+void AbstractContactDelegate::avatarToGray(QPixmap &avatar) const
+{
+ QImage image = avatar.toImage();
+ QImage alpha= image.alphaChannel();
+ for (int i = 0; i < image.width(); ++i) {
+ for (int j = 0; j < image.height(); ++j) {
+ int colour = qGray(image.pixel(i, j));
+ image.setPixel(i, j, qRgb(colour, colour, colour));
+ }
+ }
+ image.setAlphaChannel(alpha);
+ avatar = QPixmap::fromImage(image);
+}
diff --git a/abstract-contact-delegate.h b/abstract-contact-delegate.h
index ee7ebe5..267853c 100644
--- a/abstract-contact-delegate.h
+++ b/abstract-contact-delegate.h
@@ -53,6 +53,7 @@ protected:
/** The size hint for painting contact items*/
virtual QSize sizeHintContact(const QStyleOptionViewItem &option, const QModelIndex &index) const = 0;
virtual QSize sizeHintHeader(const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ virtual void avatarToGray(QPixmap &avatar) const;
private:
/** Paints header items*/
diff --git a/contact-delegate-compact.cpp b/contact-delegate-compact.cpp
index 4746b9a..244c579 100644
--- a/contact-delegate-compact.cpp
+++ b/contact-delegate-compact.cpp
@@ -69,6 +69,11 @@ void ContactDelegateCompact::paintContact(QPainter *painter, const QStyleOptionV
avatar = SmallIcon("mail-unread-new", KIconLoader::SizeMedium);
}
+ //if the contact is offline, gray it out
+ if (index.data(KTp::ContactPresenceTypeRole).toUInt() == Tp::ConnectionPresenceTypeOffline) {
+ avatarToGray(avatar);
+ }
+
if (!avatar.isNull()) {
style->drawItemPixmap(painter, iconRect, Qt::AlignCenter, avatar.scaled(iconRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
}
diff --git a/contact-delegate.cpp b/contact-delegate.cpp
index 684fc43..8d80779 100644
--- a/contact-delegate.cpp
+++ b/contact-delegate.cpp
@@ -76,6 +76,11 @@ void ContactDelegate::paintContact(QPainter *painter, const QStyleOptionViewItem
painter->save();
painter->setClipPath(roundedPath);
+ //if the contact is offline, gray it out
+ if (index.data(KTp::ContactPresenceTypeRole).toUInt() == Tp::ConnectionPresenceTypeOffline) {
+ avatarToGray(avatar);
+ }
+
if (!avatar.isNull()) {
style->drawItemPixmap(painter, iconRect, Qt::AlignCenter, avatar.scaled(iconRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
}
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list