[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