#include "contactwidget.h" ContactWidget::ContactWidget(QtTapioca::Contact *contact, QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) { setAlias(contact->alias() ); // connect to signal to request avatar connect(contact , SIGNAL( avatarReceived(QtTapioca::ContactBase *, QtTapioca::Avatar *) ), this, SLOT(onPictureReceived(QtTapioca::ContactBase *, QtTapioca::Avatar *) ) ); // send avatar request now qWarning() << "Avatar for ->" << contact->alias() << " -> token : " << contact->currentAvatarToken(); contact->requestAvatar(); } void ContactWidget::setAlias(const QString &contactAlias) { alias = contactAlias; } void ContactWidget::onPictureReceived(QtTapioca::ContactBase *contactBase ,QtTapioca::Avatar *avatar) { QMimeData *mimeData = new QMimeData; mimeData->setData( avatar->mimeType() , avatar->data() ); if (mimeData->hasImage()) { picture = qvariant_cast(mimeData->imageData()); update(); } } void ContactWidget::setStatus(const QtTapioca::ContactBase::Presence &contactStatus) { switch(contactStatus) { case QtTapioca::ContactBase::Offline : break; case QtTapioca::ContactBase::Available : break; case QtTapioca::ContactBase::Away : break; case QtTapioca::ContactBase::XA : break; case QtTapioca::ContactBase::Hidden : break; case QtTapioca::ContactBase::Busy : break; default: break; } } void ContactWidget::setMessage(const QString &contactMessage) { message = contactMessage; } void ContactWidget::paintEvent(QPaintEvent *) { QPainter p(this); if (!picture.isNull()) { p.drawImage( QRect(0,0,8,8) , picture); } QString text; if (!message.isEmpty()) text += QLatin1String("
") + message; QTextDocument doc; doc.setHtml(""+alias+""+text+""); //doc.setTextWidth(r.width()); doc.drawContents(&p); }