diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgui/conversationview/src/msgcontactcardwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/conversationview/src/msgcontactcardwidget.cpp Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,207 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +#include "msgcontactcardwidget.h" + +// SYSTEM INCLUDES +#include +#include +#include +#include +#include + +// USER INCLUDES +#include "conversationsenginedefines.h" +#include "debugtraces.h" +#include "conversationsengine.h" + +// LOCAL CONSTANTS +const QString DEFAULT_AVATAR_ICON(":/icons/qtg_large_avatar.svg"); +const QString ONLINE_ICON(":/icons/qtg_small_online.svg"); +const QString OFFLINE_ICON(":/icons/qtg_small_offline.svg"); +const QString BACKGROUND_FRAME("qtg_fr_list_normal"); +const QString PLUGINPATH("conversationviewplugin.dll"); + +//--------------------------------------------------------------- +// MsgContactCardWidget::MsgContactCardWidget +// @see header +//--------------------------------------------------------------- +MsgContactCardWidget::MsgContactCardWidget(QGraphicsItem *parent) : + HbAbstractButton(parent), mAvatarIconItem(NULL), + mPresenceIconItem(NULL), + mAddressTextItem(NULL) +{ + int baseId = style()->registerPlugin(PLUGINPATH); + QDEBUG_WRITE_FORMAT("MsgContactCardWidget BASE ID --->", baseId); + setPluginBaseId(baseId); + + init(); +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::~MsgContactCardWidget +// @see header +//--------------------------------------------------------------- +MsgContactCardWidget::~MsgContactCardWidget() +{ + style()->unregisterPlugin(PLUGINPATH); +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::init +// @see header +//--------------------------------------------------------------- +void MsgContactCardWidget::init() +{ + mAvatarIconItem = new HbIconItem(this); + HbStyle::setItemName(mAvatarIconItem, "avatar"); + + mPresenceIconItem = new HbIconItem(this); + HbStyle::setItemName(mPresenceIconItem, "presence"); + + mAddressTextItem = new HbTextItem(this); + HbStyle::setItemName(mAddressTextItem, "addressText"); + + mBackgroundItem = new HbPushButton(this); + HbStyle::setItemName(mBackgroundItem, "backgroundFrame"); + + HbFrameDrawer *frameDrawer = new HbFrameDrawer(BACKGROUND_FRAME, + HbFrameDrawer::NinePieces); + + mBackgroundItem->setFrameBackground(frameDrawer); + + connect(mBackgroundItem, SIGNAL(clicked(bool)), + this, SIGNAL(clicked())); +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::setAvatar +// @see header +//--------------------------------------------------------------- +void MsgContactCardWidget::setAvatar(const HbIcon &avatar) +{ + mAvatarIconItem->setIcon(avatar); +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::setPresenceIcon +// @see header +//--------------------------------------------------------------- +void MsgContactCardWidget::setPresenceIcon(const HbIcon &presenceIcon) +{ + mPresenceIconItem->setIcon(presenceIcon); +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::setAddress +// @see header +//--------------------------------------------------------------- +void MsgContactCardWidget::setAddress(const QString &address) +{ + mAddress = address; + mAddressTextItem->setText(address); +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::address +// @see header +//--------------------------------------------------------------- +ConvergedMessageAddressList MsgContactCardWidget::address() +{ + ConvergedMessageAddressList addresses; + QModelIndex index = + ConversationsEngine::instance()->getConversationsModel()->index(0, 0); + ConvergedMessageAddress* address = new ConvergedMessageAddress(index.data( + ConversationAddress).toString()); + address->setAlias(mAddress); + addresses.append(address); + return addresses; +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::updateContents +// @see header file +//--------------------------------------------------------------- +void MsgContactCardWidget::updateContents() +{ + // Get the Model Index + QModelIndex index = + ConversationsEngine::instance()->getConversationsModel()->index(0, 0); + + //Set the Contact Name/Number + qint64 convId ; + QString firstName; + QString lastName; + QString contactAddress; + convId = ConversationsEngine::instance()->getCurrentConversationId(); + ConversationsEngine::instance()->getContactDetails(convId,firstName, + lastName,contactAddress); + //QString contactAddress = index.data(ConversationAddress).toString(); + QString nickName;// = index.data(NickName).toString(); TODO + QString contactName; + if (!nickName.isEmpty()) + { + contactName.append(nickName); + } + else if (firstName.isEmpty() && lastName.isEmpty()) + { + contactName.append(contactAddress); + } + else if (lastName.isEmpty() && !firstName.isEmpty()) + { + contactName.append(firstName); + } + else if (firstName.isEmpty() && !lastName.isEmpty()) + { + contactName.append(lastName); + } + else + { + // If both first Name and last name are present + contactName.append(firstName); + contactName.append(" "); + contactName.append(lastName); + } + setAddress(contactName); + + QByteArray avatarByteArray = index.data(Avatar).toByteArray(); + + HbIcon avatar; + if (avatarByteArray.isEmpty()) + { + avatar = HbIcon(DEFAULT_AVATAR_ICON); + } + else + { + QPixmap pixmap; + pixmap.loadFromData(avatarByteArray); + avatar = HbIcon(QIcon(pixmap)); + } + setAvatar(avatar); + +} + +//--------------------------------------------------------------- +// MsgContactCardWidget::clearContent +// @see header file +//--------------------------------------------------------------- +void MsgContactCardWidget::clearContent() +{ + setAddress(""); + setAvatar(HbIcon()); +} +// EOF