messagingapp/msgui/conversationview/src/msgcontactcardwidget.cpp
changeset 23 238255e8b033
child 25 84d9eb65b26f
--- /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