--- a/TODO.txt Tue Aug 20 20:03:27 2013 +0100
+++ b/TODO.txt Tue Aug 20 20:41:45 2013 +0100
@@ -31,6 +31,7 @@
* Display the currently used icon on the buddy list window
* Enable the selection of a new buddy icon
* Conversation room list display status icons
+* Add "User is typing" notification ===========================================================
--- a/src/QuailBuddyList.cpp Tue Aug 20 20:03:27 2013 +0100
+++ b/src/QuailBuddyList.cpp Tue Aug 20 20:41:45 2013 +0100
@@ -438,7 +438,7 @@
* QQuailBuddyList static utility functions
**************************************************************************/
-QQuailBuddyList::getBuddyStatusIcon(PurpleBlistNode *node)
+QQuailBuddyList::getBuddyStatusIcon2(PurpleBlistNode *node) qDebug() << "QQuailBuddyList::getBuddyStatusIcon";
@@ -540,6 +540,100 @@
+QQuailBuddyList::getBuddyStatusIcon(PurpleBlistNode *node) + qDebug() << "QQuailBuddyList::getBuddyStatusIcon"; + QQuailBListItem *qnode = (QQuailBListItem*)node->ui_data; + QQuailBListItem *qbuddynode = NULL; + PurpleBuddy *buddy = NULL; + PurpleChat *chat = NULL; + if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { + if(!qnode->isExpanded()) { + buddy = purple_contact_get_priority_buddy((PurpleContact*)node); + qbuddynode = (QQuailBListItem*)((PurpleBlistNode*)buddy)->ui_data; + } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { + buddy = (PurpleBuddy*)node; + qbuddynode = (QQuailBListItem*)node->ui_data; + } else if(PURPLE_BLIST_NODE_IS_CHAT(node)) { + chat = (PurpleChat*)node; + qDebug() << "QQuailBuddyList::getBuddyStatusIcon.1"; + PurpleAccount *account; + account = buddy->account; + account = chat->account; + prpl = purple_find_prpl(purple_account_get_protocol_id(account)); + qDebug() << "QQuailBuddyList::getBuddyStatusIcon.2"; + p = purple_buddy_get_presence(buddy); + trans = purple_presence_is_idle(p); + if (PURPLE_BUDDY_IS_ONLINE(buddy) && qbuddynode && qbuddynode->recentSignedOnOff()) + returnImage = QPixmap(":/data/images/status/log-in.png"); + else if (qbuddynode && qbuddynode->recentSignedOnOff()) + returnImage = QPixmap(":/data/images/status/log-out.png"); + else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_UNAVAILABLE)) + returnImage = QQuailImageUtils::greyPixmap( + QPixmap(":/data/images/status/busy.png"), + returnImage = QPixmap(":/data/images/status/busy.png"); + else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_AWAY)) + returnImage = QQuailImageUtils::greyPixmap( + QPixmap(":/data/images/status/away.png"), + returnImage = QPixmap(":/data/images/status/away.png"); + else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_EXTENDED_AWAY)) + returnImage = QQuailImageUtils::greyPixmap( + QPixmap(":/data/images/status/extended-away.png"), + returnImage = QPixmap(":/data/images/status/extended-away.png"); + else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_OFFLINE)) + returnImage = QPixmap(":/data/images/status/offline.png"); + returnImage = QQuailImageUtils::greyPixmap( + QPixmap(":/data/images/status/available.png"), + else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_INVISIBLE)) + returnImage = QPixmap(":/data/images/status/invisible.png"); + returnImage = QPixmap(":/data/images/status/available.png"); + returnImage = QPixmap(":/data/images/status/chat.png"); + returnImage = QPixmap(":/data/images/status/person.png"); /**************************************************************************
**************************************************************************/
--- a/src/QuailBuddyList.h Tue Aug 20 20:03:27 2013 +0100
+++ b/src/QuailBuddyList.h Tue Aug 20 20:41:45 2013 +0100
@@ -27,8 +27,6 @@
-#include "QuailImageUtils.h"
class QQuailBListItem : public QTreeWidgetItem
@@ -41,6 +39,9 @@
void setExpanded(bool expanded);
+ //TODO: Find out how to calculate this + bool recentSignedOnOff() /*reimp*/QSize sizeHint ( int column ) const;
@@ -67,6 +68,7 @@
static QPixmap getBuddyStatusIcon(PurpleBlistNode *node);
+ static QPixmap getBuddyStatusIcon2(PurpleBlistNode *node); QQuailBuddyList(QWidget *parent = NULL);
@@ -141,8 +143,6 @@
void updateContact(PurpleBlistNode *node);
void updateBuddy(PurpleBlistNode *node);
void updateChat(PurpleBlistNode *node);
PurpleBuddyList *quailBlist;