[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:05:11 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=d3c9e5f

The following commit has been merged in the master branch:
commit d3c9e5f3315ba02e4aeb57d01c86b4c1c0a92a37
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Mon Feb 28 02:03:00 2011 +0000

    Split MainWidget (which contained 2 classes) across 2 files.
---
 CMakeLists.txt      |   4 +-
 contactdelegate.cpp | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 contactdelegate.h   |  41 ++++++++++
 main-widget.cpp     | 203 +-------------------------------------------------
 main-widget.h       |  36 +--------
 5 files changed, 258 insertions(+), 237 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 375fcc4..7f0809a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,7 +45,8 @@ include_directories (${KDE4_INCLUDES}
 set (contactlist_SRCS 
      contactviewhoverbutton.cpp 
      contactoverlays.cpp 
-     contactdelegateoverlay.cpp 
+     contactdelegateoverlay.cpp
+     contactdelegate.cpp
      accountbutton.cpp 
      accounts-model.cpp
      accountfiltermodel.cpp
@@ -56,6 +57,7 @@ set (contactlist_SRCS
      main-widget.cpp
 )
 
+
 kde4_add_ui_files (contactlist_SRCS
                    main-widget.ui
 )
diff --git a/contactdelegate.cpp b/contactdelegate.cpp
new file mode 100644
index 0000000..fa53097
--- /dev/null
+++ b/contactdelegate.cpp
@@ -0,0 +1,211 @@
+#include "contactdelegate.h"
+
+#include <QtGui/QPainter>
+#include <QApplication>
+
+#include <KIconLoader>
+
+#include "accounts-model.h"
+
+const int SPACING = 4;
+const int AVATAR_SIZE = 32;
+
+ContactDelegate::ContactDelegate(QObject * parent)
+  : QStyledItemDelegate(parent), ContactDelegateOverlayContainer()
+{
+}
+
+ContactDelegate::~ContactDelegate()
+{
+}
+
+void ContactDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
+{
+    QStyleOptionViewItemV4 optV4 = option;
+    initStyleOption(&optV4, index);
+
+    painter->save();
+
+    painter->setClipRect(optV4.rect);
+
+    QStyle *style = QApplication::style();
+    style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter);
+
+//     kDebug() << index.data(AccountsModel::PresenceTypeRole);
+
+    bool isContact = !index.data(AccountsModel::AliasRole).toString().isEmpty();
+
+    if(isContact)
+    {
+
+        QRect iconRect = optV4.rect;
+        iconRect.setSize(QSize(32, 32));
+        iconRect.moveTo(QPoint(iconRect.x() + SPACING, iconRect.y() + SPACING));
+
+        QPixmap avatar = QPixmap::fromImage(QImage(index.data(AccountsModel::AvatarRole).toString()));
+
+        if(avatar.isNull()) {
+            avatar = SmallIcon("im-user", KIconLoader::SizeMedium);
+        }
+
+        painter->drawPixmap(iconRect, avatar);
+
+        QPixmap icon;
+
+        switch(index.data(AccountsModel::PresenceTypeRole).toInt())
+        {
+            case Tp::ConnectionPresenceTypeAvailable:
+                icon = SmallIcon("user-online", KIconLoader::SizeSmallMedium);
+                break;
+            case Tp::ConnectionPresenceTypeAway:
+                icon = SmallIcon("user-away", KIconLoader::SizeSmallMedium);
+                break;
+            case Tp::ConnectionPresenceTypeExtendedAway:
+                icon = SmallIcon("user-away-extended", KIconLoader::SizeSmallMedium);
+                break;
+            case Tp::ConnectionPresenceTypeBusy:
+                icon = SmallIcon("user-busy", KIconLoader::SizeSmallMedium);
+                break;
+            case Tp::ConnectionPresenceTypeOffline:
+                icon = SmallIcon("user-offline", KIconLoader::SizeSmallMedium);
+                break;
+            default:
+                icon = SmallIcon("task-attention", KIconLoader::SizeSmallMedium);
+                break;
+        }
+
+        QRect userNameRect = optV4.rect;
+        userNameRect.setX(iconRect.x() + iconRect.width() + SPACING);
+        userNameRect.setY(userNameRect.y() + 3);
+        //userNameRect = painter->boundingRect(userNameRect, Qt::AlignLeft | Qt::AlignTop, optV4.text);
+
+        QRect statusMsgRect = optV4.rect;
+        statusMsgRect.setX(iconRect.x() + iconRect.width() + SPACING);
+        statusMsgRect.setY(userNameRect.top() + 16);
+        statusMsgRect.setWidth(option.rect.width());
+
+        QRect statusIconRect = optV4.rect;
+        statusIconRect.setSize(QSize(22,22));
+        statusIconRect.moveTo(QPoint(optV4.rect.right() - 24, optV4.rect.top()+8));
+
+        painter->drawPixmap(statusIconRect, icon);
+
+        QFont nameFont = painter->font();
+        nameFont.setPixelSize(12);
+        nameFont.setWeight(QFont::Bold);
+
+        painter->setFont(nameFont);
+        painter->drawText(userNameRect, optV4.text);
+
+        QFont statusFont = painter->font();
+        statusFont.setWeight(QFont::Normal);
+        statusFont.setPixelSize(10);
+
+        if(index == m_indexForHiding) {
+            painter->setPen(QColor(0, 0, 0, m_fadingValue));        //TODO: Change to theme color
+        }
+
+        painter->setFont(statusFont);
+        painter->drawText(statusMsgRect, index.data(AccountsModel::PresenceMessageRole).toString());
+
+    }
+    else
+    {
+        painter->drawText(optV4.rect, index.data(AccountsModel::DisplayNameRole).toString());
+        /*QRect groupRect = optV4.rect;
+
+        QRect accountGroupRect = groupRect;
+        accountGroupRect.setSize(QSize(16,16));
+        accountGroupRect.moveTo(QPoint(groupRect.left() + 2, groupRect.top() + 2));
+
+        QRect groupLabelRect = groupRect;
+        groupLabelRect.setLeft(20);
+        //groupLabelRect.setBottom(groupRect.bottom());
+        //groupLabelRect.setHeight(16);
+
+        QFont groupFont = painter->font();
+        groupFont.setWeight(QFont::Normal);
+        groupFont.setPixelSize(10);
+
+        QString counts = QString(" (%1/%2)").arg(index.data(ModelRoles::AccountAvailContactsCountRole).toString(),
+                                       index.data(ModelRoles::AccountAllContactsCountRole).toString());
+
+
+        painter->fillRect(groupRect, QColor(247, 251, 255));
+
+        painter->drawPixmap(accountGroupRect, KIcon(index.data(ModelRoles::AccountIconRole).toString()).pixmap(16,16));
+
+        painter->setFont(groupFont);
+        painter->drawText(groupLabelRect, Qt::AlignVCenter, index.data(ModelRoles::AccountGroupRole).toString().append(counts));
+
+        painter->setPen(QColor(220, 220, 220));
+        painter->drawLine(groupRect.x(), groupRect.y(), groupRect.width(), groupRect.y());
+        painter->drawLine(groupRect.x(), groupRect.bottom(), groupRect.width(), groupRect.bottom());*/
+    }
+
+//     QRect typeRect;
+//
+//     typeRect = painter->boundingRect(optV4.rect, Qt::AlignLeft | Qt::AlignBottom, index.data(51).toString());
+//     typeRect.moveTo(QPoint(typeRect.x() + iconRect.x() + iconRect.width() + SPACING, typeRect.y() - SPACING));
+//     painter->drawText(typeRect, index.data(51).toString());
+//
+//     QRect sizeRect = painter->boundingRect(optV4.rect, Qt::AlignRight | Qt::AlignTop, index.data(50).toString());
+//     sizeRect.moveTo(QPoint(sizeRect.x() - SPACING, sizeRect.y() + SPACING));
+//     painter->drawText(sizeRect, index.data(50).toString());
+
+    painter->restore();
+}
+
+QSize ContactDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+    Q_UNUSED(option);
+//     if(option.state & QStyle::State_Selected)
+//         kDebug() << index.data(ModelRoles::UserNameRole).toString();
+
+    if(!index.data(AccountsModel::AliasRole).toString().isEmpty()) {
+        return QSize(0, 32 + 4 * SPACING);
+    }
+    else return QSize(0,20);
+}
+
+void ContactDelegate::hideStatusMessageSlot(const QModelIndex& index)
+{
+    m_indexForHiding = index;
+    fadeOutStatusMessageSlot();
+}
+
+void ContactDelegate::reshowStatusMessageSlot()
+{
+    m_fadingValue = 255;
+    m_indexForHiding = QModelIndex();
+    emit repaintItem(m_indexForHiding);
+}
+
+void ContactDelegate::fadeOutStatusMessageSlot()
+{
+    QPropertyAnimation *a = new QPropertyAnimation(this, "m_fadingValue");
+    a->setParent(this);
+    a->setDuration(100);
+    a->setEasingCurve(QEasingCurve::OutExpo);
+    a->setStartValue(255);
+    a->setEndValue(0);
+    a->start();
+
+    connect(a, SIGNAL(valueChanged(QVariant)),
+        this, SLOT(triggerRepaint()));
+}
+
+int ContactDelegate::fadingValue() const
+{
+    return m_fadingValue;
+}
+
+void ContactDelegate::setFadingValue(int value)
+{
+    m_fadingValue = value;
+}
+
+void ContactDelegate::triggerRepaint()
+{
+    emit repaintItem(m_indexForHiding);
+}
diff --git a/contactdelegate.h b/contactdelegate.h
new file mode 100644
index 0000000..345f5b6
--- /dev/null
+++ b/contactdelegate.h
@@ -0,0 +1,41 @@
+#ifndef CONTACTDELEGATE_H
+#define CONTACTDELEGATE_H
+
+#include <QStyledItemDelegate>
+
+#include "contactdelegateoverlay.h"
+
+class ContactDelegate : public QStyledItemDelegate, public ContactDelegateOverlayContainer
+{
+    Q_OBJECT
+    Q_PROPERTY(int m_fadingValue READ fadingValue WRITE setFadingValue);
+
+public:
+    ContactDelegate(QObject * parent = 0);
+    ~ContactDelegate();
+
+    void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const;
+    QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const;
+
+    int fadingValue() const;
+    void setFadingValue(int value);
+
+public Q_SLOTS:
+    void hideStatusMessageSlot(const QModelIndex& index);
+    void reshowStatusMessageSlot();
+    void fadeOutStatusMessageSlot();
+    void triggerRepaint();
+
+Q_SIGNALS:
+    void repaintItem(QModelIndex);
+
+protected:
+    /// Returns the delegate, typically, the derived class
+    virtual QAbstractItemDelegate* asDelegate() { return this; }
+
+private:
+    QModelIndex m_indexForHiding;
+    int         m_fadingValue;
+};
+
+#endif // CONTACTDELEGATE_H
diff --git a/main-widget.cpp b/main-widget.cpp
index c3cb075..9cb4da8 100644
--- a/main-widget.cpp
+++ b/main-widget.cpp
@@ -53,11 +53,11 @@
 #include "contactoverlays.h"
 #include "accounts-model.h"
 #include "accountfiltermodel.h"
+#include "contactdelegate.h"
 
 #define PREFERRED_TEXTCHAT_HANDLER "org.freedesktop.Telepathy.Client.KDEChatHandler"
 
-const int SPACING = 4;
-const int AVATAR_SIZE = 32;
+
 
 // using KTelepathy::ContactsListModel;
 // using KTelepathy::GroupedContactsProxyModel;
@@ -67,205 +67,6 @@ const int AVATAR_SIZE = 32;
 // using KTelepathy::MetaContactItem;
 // using KTelepathy::RequestTextChatJob;
 
-ContactDelegate::ContactDelegate(QObject * parent)
-  : QStyledItemDelegate(parent), ContactDelegateOverlayContainer()
-{
-}
-
-ContactDelegate::~ContactDelegate()
-{
-}
-
-void ContactDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
-{
-    QStyleOptionViewItemV4 optV4 = option;
-    initStyleOption(&optV4, index);
-
-    painter->save();
-
-    painter->setClipRect(optV4.rect);
-
-    QStyle *style = QApplication::style();
-    style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter);
-    
-//     kDebug() << index.data(AccountsModel::PresenceTypeRole);
-    
-    bool isContact = !index.data(AccountsModel::AliasRole).toString().isEmpty();
-
-    if(isContact)
-    {
-        
-        QRect iconRect = optV4.rect;
-        iconRect.setSize(QSize(32, 32));
-        iconRect.moveTo(QPoint(iconRect.x() + SPACING, iconRect.y() + SPACING));
-
-        QPixmap avatar = QPixmap::fromImage(QImage(index.data(AccountsModel::AvatarRole).toString()));
-        
-        if(avatar.isNull()) {
-            avatar = SmallIcon("im-user", KIconLoader::SizeMedium);
-        } 
-        
-        painter->drawPixmap(iconRect, avatar);
-        
-        QPixmap icon;
-        
-        switch(index.data(AccountsModel::PresenceTypeRole).toInt())
-        {
-            case Tp::ConnectionPresenceTypeAvailable:
-                icon = SmallIcon("user-online", KIconLoader::SizeSmallMedium);
-                break;
-            case Tp::ConnectionPresenceTypeAway:
-                icon = SmallIcon("user-away", KIconLoader::SizeSmallMedium);
-                break;
-            case Tp::ConnectionPresenceTypeExtendedAway:
-                icon = SmallIcon("user-away-extended", KIconLoader::SizeSmallMedium);
-                break;
-            case Tp::ConnectionPresenceTypeBusy:
-                icon = SmallIcon("user-busy", KIconLoader::SizeSmallMedium);
-                break;
-            case Tp::ConnectionPresenceTypeOffline:
-                icon = SmallIcon("user-offline", KIconLoader::SizeSmallMedium);
-                break;
-            default:
-                icon = SmallIcon("task-attention", KIconLoader::SizeSmallMedium);
-                break;
-        }
-
-        QRect userNameRect = optV4.rect;
-        userNameRect.setX(iconRect.x() + iconRect.width() + SPACING);
-        userNameRect.setY(userNameRect.y() + 3);
-        //userNameRect = painter->boundingRect(userNameRect, Qt::AlignLeft | Qt::AlignTop, optV4.text);
-        
-        QRect statusMsgRect = optV4.rect;
-        statusMsgRect.setX(iconRect.x() + iconRect.width() + SPACING);
-        statusMsgRect.setY(userNameRect.top() + 16);
-        statusMsgRect.setWidth(option.rect.width());
-        
-        QRect statusIconRect = optV4.rect;
-        statusIconRect.setSize(QSize(22,22));
-        statusIconRect.moveTo(QPoint(optV4.rect.right() - 24, optV4.rect.top()+8));
-        
-        painter->drawPixmap(statusIconRect, icon);
-
-        QFont nameFont = painter->font();
-        nameFont.setPixelSize(12);
-        nameFont.setWeight(QFont::Bold);
-        
-        painter->setFont(nameFont);
-        painter->drawText(userNameRect, optV4.text);
-        
-        QFont statusFont = painter->font();
-        statusFont.setWeight(QFont::Normal);
-        statusFont.setPixelSize(10);
-        
-        if(index == m_indexForHiding) {
-            painter->setPen(QColor(0, 0, 0, m_fadingValue));        //TODO: Change to theme color
-        }
-        
-        painter->setFont(statusFont);        
-        painter->drawText(statusMsgRect, index.data(AccountsModel::PresenceMessageRole).toString());
-        
-    }
-    else
-    {
-        painter->drawText(optV4.rect, index.data(AccountsModel::DisplayNameRole).toString());
-        /*QRect groupRect = optV4.rect;
-        
-        QRect accountGroupRect = groupRect;
-        accountGroupRect.setSize(QSize(16,16));
-        accountGroupRect.moveTo(QPoint(groupRect.left() + 2, groupRect.top() + 2));
-        
-        QRect groupLabelRect = groupRect;
-        groupLabelRect.setLeft(20);
-        //groupLabelRect.setBottom(groupRect.bottom());
-        //groupLabelRect.setHeight(16);
-        
-        QFont groupFont = painter->font();
-        groupFont.setWeight(QFont::Normal);
-        groupFont.setPixelSize(10);
-        
-        QString counts = QString(" (%1/%2)").arg(index.data(ModelRoles::AccountAvailContactsCountRole).toString(),
-                                       index.data(ModelRoles::AccountAllContactsCountRole).toString());
-        
-
-        painter->fillRect(groupRect, QColor(247, 251, 255));
-        
-        painter->drawPixmap(accountGroupRect, KIcon(index.data(ModelRoles::AccountIconRole).toString()).pixmap(16,16));
-        
-        painter->setFont(groupFont);
-        painter->drawText(groupLabelRect, Qt::AlignVCenter, index.data(ModelRoles::AccountGroupRole).toString().append(counts));
-        
-        painter->setPen(QColor(220, 220, 220));
-        painter->drawLine(groupRect.x(), groupRect.y(), groupRect.width(), groupRect.y());
-        painter->drawLine(groupRect.x(), groupRect.bottom(), groupRect.width(), groupRect.bottom());*/
-    }
-    
-//     QRect typeRect;
-// 
-//     typeRect = painter->boundingRect(optV4.rect, Qt::AlignLeft | Qt::AlignBottom, index.data(51).toString());
-//     typeRect.moveTo(QPoint(typeRect.x() + iconRect.x() + iconRect.width() + SPACING, typeRect.y() - SPACING));
-//     painter->drawText(typeRect, index.data(51).toString());
-// 
-//     QRect sizeRect = painter->boundingRect(optV4.rect, Qt::AlignRight | Qt::AlignTop, index.data(50).toString());
-//     sizeRect.moveTo(QPoint(sizeRect.x() - SPACING, sizeRect.y() + SPACING));
-//     painter->drawText(sizeRect, index.data(50).toString());
-
-    painter->restore();
-}
-
-QSize ContactDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
-{   
-    Q_UNUSED(option);
-//     if(option.state & QStyle::State_Selected)
-//         kDebug() << index.data(ModelRoles::UserNameRole).toString();
-    
-    if(!index.data(AccountsModel::AliasRole).toString().isEmpty()) {
-        return QSize(0, 32 + 4 * SPACING);
-    }
-    else return QSize(0,20);   
-}
-
-void ContactDelegate::hideStatusMessageSlot(const QModelIndex& index)
-{
-    m_indexForHiding = index;
-    fadeOutStatusMessageSlot();
-}
-
-void ContactDelegate::reshowStatusMessageSlot()
-{
-    m_fadingValue = 255;
-    m_indexForHiding = QModelIndex();
-    emit repaintItem(m_indexForHiding);
-}
-
-void ContactDelegate::fadeOutStatusMessageSlot()
-{
-    QPropertyAnimation *a = new QPropertyAnimation(this, "m_fadingValue");
-    a->setParent(this);
-    a->setDuration(500);
-    a->setEasingCurve(QEasingCurve::OutExpo);
-    a->setStartValue(255);
-    a->setEndValue(0);
-    a->start();
-    
-    connect(a, SIGNAL(valueChanged(QVariant)),
-        this, SLOT(triggerRepaint()));
-}
-
-int ContactDelegate::fadingValue() const
-{
-    return m_fadingValue;
-}
-
-void ContactDelegate::setFadingValue(int value)
-{
-    m_fadingValue = value;
-}
-
-void ContactDelegate::triggerRepaint()
-{
-    emit repaintItem(m_indexForHiding);
-}
 
 //---------------------------------------------------------------------------------------
 
diff --git a/main-widget.h b/main-widget.h
index 6bddfff..1ed6b20 100644
--- a/main-widget.h
+++ b/main-widget.h
@@ -29,46 +29,12 @@
 #include <TelepathyQt4/AccountManager>
 
 #include "ui_main-widget.h"
-#include "contactdelegateoverlay.h"
 
 class KMenu;
 class KSelectAction;
 class AccountsModel;
 class AccountFilterModel;
-
-class ContactDelegate : public QStyledItemDelegate, public ContactDelegateOverlayContainer
-{
-    Q_OBJECT
-    Q_PROPERTY(int m_fadingValue READ fadingValue WRITE setFadingValue);
-    
-public:
-    ContactDelegate(QObject * parent = 0);
-    ~ContactDelegate();
-
-    void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const;
-    QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const;
-    
-    int fadingValue() const;
-    void setFadingValue(int value);
-        
-public Q_SLOTS:
-    void hideStatusMessageSlot(const QModelIndex& index);
-    void reshowStatusMessageSlot();
-    void fadeOutStatusMessageSlot();
-    void triggerRepaint();
-    
-Q_SIGNALS:
-    void repaintItem(QModelIndex);
-        
-protected:
-    /// Returns the delegate, typically, the derived class
-    virtual QAbstractItemDelegate* asDelegate() { return this; }
-    
-private:
-    QModelIndex m_indexForHiding;
-    int         m_fadingValue;
-};
-
+class ContactDelegate;
 
 class MainWidget : public QWidget, Ui::MainWidget
 {

-- 
ktp-contact-list packaging



More information about the pkg-kde-commits mailing list