--- /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 <HbStyle>
+#include <HbIconItem>
+#include <HbTextItem>
+#include <HbPushButton>
+#include <HbFrameDrawer>
+
+// 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