Created V0.3.x branch and moved the head into the trunk directory.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@246 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2007-11-15 03:18:48 +00:00
commit 935745a08e
1318 changed files with 348809 additions and 0 deletions

View file

@ -0,0 +1,110 @@
/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2006,2007 crypton
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#include "ChatAvatarWidget.h"
#include <QtGui/QtGui>
//#include <profile/AvatarList.h>
ChatAvatarWidget::ChatAvatarWidget(QWidget * parent, const QString & id,
QPixmap picture, const QString & nickname, const QString & contactId, OWPictureMode pmode, NicknameMode nmode)
: QWidget(parent), _pictureMode(pmode), _nicknameMode(nmode), _contactId(id) {
ui.setupUi(this);
//setupPixmap(picture);
setToolTip(nickname);
//setupNickname(contactId);
/*
if (_nicknameMode != NONE) {
setupNickname(nickname);
} else {
_ui.nicknameLabel->hide();
}*/
}
void ChatAvatarWidget::setupPixmap(QPixmap pixmap) {
//TODO:: resize fond_avatar.png
QPixmap background = QPixmap(":/images/avatar_background.png");
QPixmap defaultAvatar = QPixmap(":/images/nopic.png");
//QPixmap defaultAvatar(QString::fromStdString(AvatarList::getInstance().getDefaultAvatar().getFullPath()));
QPainter painter(&background);
if (!pixmap.isNull()) {
switch (_pictureMode) {
case HUGE:
painter.drawPixmap(0, 0, pixmap.scaled(96, 96, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
ui.pictureLabel->resize(96, 96);
setMinimumSize(96, 96);
break;
case BIG:
painter.drawPixmap(5, 5, pixmap.scaled(60, 60, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
ui.pictureLabel->resize(70, 70);
setMinimumSize(70, 70);
break;
case MEDIUM:
painter.drawPixmap(0, 0, pixmap.scaled(48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
ui.pictureLabel->resize(48, 48);
setMinimumSize(48, 48);
break;
case SMALL:
painter.drawPixmap(0, 0, pixmap.scaled(24, 24, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
ui.pictureLabel->resize(24, 24);
setMinimumSize(24, 24);
break;
case TINY:
painter.drawPixmap(0, 0, pixmap.scaled(12, 12, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
ui.pictureLabel->resize(12, 12);
setMinimumSize(12, 12);
break;
//default:
//LOG_WARN("unknown picture mode: " + String::fromNumber(_pictureMode));
}
} else {
painter.drawPixmap(5, 5, defaultAvatar.scaled(60, 60, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
ui.pictureLabel->resize(70, 70);
setMinimumSize(70, 70);
}
painter.end();
ui.pictureLabel->setPixmap(background);
}
void ChatAvatarWidget::setupNickname(const QString & nickname) {
//TODO: limit string length
QFontMetrics fontMetrics(ui.nicknameLabel->font());
int width = 60;
QString temp;
for(int i = 0; i < nickname.length(); i++) {
if (fontMetrics.width(temp) > width) {
break;
}
temp += nickname[i];
}
ui.nicknameLabel->setText(temp);
}
void ChatAvatarWidget::setToolTip(const QString & nickname) {
ui.pictureLabel->setToolTip(nickname);
}