[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