All pastes #743555 Raw Edit

Untitled

public text v1 · immutable
·published 2007-10-20 15:37 UTC
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);
}