rendered paste body
#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<QImage>(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("<br><font size=-1>") + message;
QTextDocument doc;
doc.setHtml("<b>"+alias+"</b>"+text+"</font>");
//doc.setTextWidth(r.width());
doc.drawContents(&p);
}