--- a/TODO.txt Mon Aug 19 10:57:11 2013 +0100
+++ b/TODO.txt Wed Aug 21 09:18:45 2013 +0100
@@ -4,7 +4,6 @@
* Use Aduim's Message Styles for the conversation window
* Buddy status icons showing
* Formatting toolbar on the conversation window
@@ -31,8 +30,8 @@
* Add recent statuses to the change status menu
* Display the currently used icon on the buddy list window
* Enable the selection of a new buddy icon
-* Conversation room list display
-* Conversation text entry
+* Conversation room list display status icons +* Add "User is typing" notification ===========================================================
@@ -44,3 +43,6 @@
* Add Accounts to tray icon
* Account icons now correctly changing colour on connect and disconnect
+* Conversation room list display +* Conversation text entry --- a/src/QuailBuddyList.cpp Mon Aug 19 10:57:11 2013 +0100
+++ b/src/QuailBuddyList.cpp Wed Aug 21 09:18: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 Mon Aug 19 10:57:11 2013 +0100
+++ b/src/QuailBuddyList.h Wed Aug 21 09:18: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;
--- a/src/QuailConvWindow.cpp Mon Aug 19 10:57:11 2013 +0100
+++ b/src/QuailConvWindow.cpp Wed Aug 21 09:18:45 2013 +0100
@@ -348,12 +348,12 @@
-QQuailConvChat::addUser(const char *user)
+QQuailConvChat::addUser(PurpleConvChatBuddy *user) qDebug() << "QQuailConvChat::addUser()";
QListWidgetItem *item = new QListWidgetItem();
//TODO: Fix this, its just printing out rubbish
- item->setText(QString::fromUtf8(user));
+ item->setText(user->alias); //TODO: Set the chat status icon
// if (purple_conv_chat_is_user_ignored(chat, user))
@@ -372,7 +372,7 @@
qDebug() << "QQuailConvChat::addUsers()";
for (GList *l = users; l != NULL; l = l->next)
- addUser((const char *)l->data);
+ addUser((PurpleConvChatBuddy *)l->data); @@ -428,14 +428,7 @@
userList = new QListWidget(this);
-// QStringList horzHeaders;
-// horzHeaders << tr("Status Icon") << tr("User");
-// userList->setColumnCount(horzHeaders.size());
-// userList->setHorizontalHeaderLabels( horzHeaders );
-// userList->setSelectionBehavior(QAbstractItemView::SelectRows);
- //userList->header()->hide();
- //userList->setSorting(1);
+ userList->setSortingEnabled(true); vbox->addWidget(textDisplay);
@@ -480,13 +473,14 @@
qDebug() << "QQuailConvChat::send()";
QString text = entry->toPlainText();
- if (text[text.length() - 1] == '\n')
- text.remove(text.length() - 1, 1);
+ if (text[text.length() - 1] == '\n') + text.remove(text.length() - 1, 1); - purple_conv_chat_send(PURPLE_CONV_CHAT(conv), text.toStdString().c_str());
+ purple_conv_chat_send(PURPLE_CONV_CHAT(conv), text.toStdString().c_str()); @@ -669,14 +663,14 @@
qDebug() << "QQuailConvIm::send()";
QString text = entry->toPlainText();
- if (text[text.length() - 1] == '\n')
- text.remove(text.length() - 1, 1);
+ if (text[text.length() - 1] == '\n') + text.remove(text.length() - 1, 1); - purple_conv_im_send(PURPLE_CONV_IM(conv), text.toStdString().c_str());
+ purple_conv_im_send(PURPLE_CONV_IM(conv), text.toStdString().c_str()); --- a/src/QuailConvWindow.h Mon Aug 19 10:57:11 2013 +0100
+++ b/src/QuailConvWindow.h Wed Aug 21 09:18:45 2013 +0100
@@ -106,7 +106,7 @@
void write(const char *who, const char *message,
PurpleMessageFlags flags, time_t mtime);
- void addUser(const char *user);
+ void addUser(PurpleConvChatBuddy *user); void addUsers(GList *users);
void renameUser(const char *oldName, const char *newName);
void removeUser(const char *user);
--- a/src/QuailMainWindow.cpp Mon Aug 19 10:57:11 2013 +0100
+++ b/src/QuailMainWindow.cpp Wed Aug 21 09:18:45 2013 +0100
@@ -148,8 +148,8 @@
purple_set_blist(purple_blist_new());
- //purple_accounts_auto_login("quail");
+ purple_accounts_restore_current_statuses(); QQuailMainWindow::~QQuailMainWindow()
--- a/src/QuailMultiLineEdit.cpp Mon Aug 19 10:57:11 2013 +0100
+++ b/src/QuailMultiLineEdit.cpp Wed Aug 21 09:18:45 2013 +0100
@@ -21,6 +21,8 @@
#include "QuailMultiLineEdit.h"
@@ -63,6 +65,7 @@
QQuailMultiLineEdit::keyPressEvent(QKeyEvent *event)
+ qDebug() << "QQuailMultiLineEdit::keyPressEvent"; @@ -94,14 +97,21 @@
history.prepend(this->toPlainText());
+ qDebug() << "QQuailMultiLineEdit::keyPressEvent.1"; else if (key == Qt::Key_Tab)
/* TODO Tab completion */
+ else if (key == Qt::Key_Return && event->modifiers() == Qt::CTRL) - else if (key == Qt::Key_Down)
+ else if (key == Qt::Key_Down || key == Qt::Key_Return)