messagingapp/msgui/conversationview/src/msgcontactcardwidget.cpp
author hgs
Tue, 05 Oct 2010 13:58:47 +0530
changeset 73 ecf6a73a9186
parent 67 fc91263aee62
child 76 60a8a215b0ec
permissions -rw-r--r--
201039_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "msgcontactcardwidget.h"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
// SYSTEM INCLUDES
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <HbStyle>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <HbIconItem>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <HbTextItem>
37
hgs
parents: 25
diff changeset
    24
#include <HbTapGesture>
hgs
parents: 25
diff changeset
    25
#include <HbInstantFeedback>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    26
#include <HbFrameItem>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    27
#include <qcontactphonenumber.h>
37
hgs
parents: 25
diff changeset
    28
#include <qcontactavatar.h>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    29
#include <xqaiwrequest.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    30
#include <xqappmgr.h>
37
hgs
parents: 25
diff changeset
    31
#include <xqservicerequest.h>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    32
#include <cntservicescontact.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    33
#include <QGraphicsSceneMouseEvent>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    34
#include <HbMenu>
37
hgs
parents: 25
diff changeset
    35
#include <thumbnailmanager_qt.h>
hgs
parents: 25
diff changeset
    36
#include <QTimer>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    37
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    38
#include <ccsdefs.h>
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
    39
#include <debugtraces.h>
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
// USER INCLUDES
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include "conversationsenginedefines.h"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
#include "conversationsengine.h"
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    44
#include "convergedmessage.h"
37
hgs
parents: 25
diff changeset
    45
#include "msgcontacthandler.h"
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
    46
#include "msgsendutil.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
// LOCAL CONSTANTS
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    49
const QString DEFAULT_AVATAR_ICON("qtg_large_avatar");
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    50
const QString BT_ICON("qtg_large_bluetooth");
37
hgs
parents: 25
diff changeset
    51
const QString BG_FRAME_NORMAL("qtg_fr_groupbox_normal");
hgs
parents: 25
diff changeset
    52
const QString BG_FRAME_PRESSED("qtg_fr_groupbox_pressed");
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
    54
static const char PLUS[] = "+";
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
    55
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    56
// LOCALIZATION CONSTANTS
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    57
#define LOC_RECEIVED_FILES hbTrId("txt_messaging_title_received_files")
37
hgs
parents: 25
diff changeset
    58
#define LOC_MENU_CONTACT_INFO hbTrId("txt_messaging_menu_contact_info")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    59
#define LOC_COMMON_MENU_CALL hbTrId("txt_common_menu_call_verb")
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    60
#define LOC_SAVETO_CONTACTS hbTrId("txt_messaging_menu_save_to_contacts")
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    61
37
hgs
parents: 25
diff changeset
    62
// LOCAL FUNCTIONS
hgs
parents: 25
diff changeset
    63
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
// MsgContactCardWidget::MsgContactCardWidget
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
MsgContactCardWidget::MsgContactCardWidget(QGraphicsItem *parent) :
51
3507212d340e 201031_02
hgs
parents: 41
diff changeset
    69
    HbWidget(parent), mAvatarIconItem(NULL), mPresenceIconItem(NULL),
37
hgs
parents: 25
diff changeset
    70
        mAddressTextItem(NULL), mThumbnailManager(NULL)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
{
37
hgs
parents: 25
diff changeset
    72
    init();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
// MsgContactCardWidget::~MsgContactCardWidget
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
MsgContactCardWidget::~MsgContactCardWidget()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
// MsgContactCardWidget::init
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
void MsgContactCardWidget::init()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
{
37
hgs
parents: 25
diff changeset
    89
    this->setProperty("state", "normal");
hgs
parents: 25
diff changeset
    90
    this->grabGesture(Qt::TapGesture);
hgs
parents: 25
diff changeset
    91
hgs
parents: 25
diff changeset
    92
    HbFrameItem *frameItem = new HbFrameItem(BG_FRAME_NORMAL, HbFrameDrawer::NinePieces, this);
hgs
parents: 25
diff changeset
    93
    this->setBackgroundItem(frameItem);
hgs
parents: 25
diff changeset
    94
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    mAvatarIconItem = new HbIconItem(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    HbStyle::setItemName(mAvatarIconItem, "avatar");
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    mPresenceIconItem = new HbIconItem(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    HbStyle::setItemName(mPresenceIconItem, "presence");
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    mAddressTextItem = new HbTextItem(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    HbStyle::setItemName(mAddressTextItem, "addressText");
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
37
hgs
parents: 25
diff changeset
   104
    mThumbnailManager = new ThumbnailManager(this);
hgs
parents: 25
diff changeset
   105
    mThumbnailManager->setMode(ThumbnailManager::Default);
hgs
parents: 25
diff changeset
   106
    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
hgs
parents: 25
diff changeset
   107
    mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
hgs
parents: 25
diff changeset
   108
hgs
parents: 25
diff changeset
   109
    connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)), this,
hgs
parents: 25
diff changeset
   110
        SLOT(thumbnailReady(QPixmap, void*, int, int)));
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
// MsgContactCardWidget::setAvatar
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
void MsgContactCardWidget::setAvatar(const HbIcon &avatar)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
    mAvatarIconItem->setIcon(avatar);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
// MsgContactCardWidget::setPresenceIcon
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
void MsgContactCardWidget::setPresenceIcon(const HbIcon &presenceIcon)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
    mPresenceIconItem->setIcon(presenceIcon);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
// MsgContactCardWidget::setAddress
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
void MsgContactCardWidget::setAddress(const QString &address)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
    mAddress = address;
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    mAddressTextItem->setText(address);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
// MsgContactCardWidget::address
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
// @see header
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
ConvergedMessageAddressList MsgContactCardWidget::address()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
{
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   147
    QCRITICAL_WRITE("MsgContactCardWidget::address start.")
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
    ConvergedMessageAddressList addresses;
37
hgs
parents: 25
diff changeset
   149
    QStandardItemModel* msgModel = ConversationsEngine::instance()->getConversationsModel();
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   150
    
37
hgs
parents: 25
diff changeset
   151
    const int rowCnt = msgModel->rowCount();
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   152
    
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   153
    QModelIndex recentIndex = msgModel->index(rowCnt-1, 0);
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   154
    QString recentAddr = recentIndex.data(ConversationAddress).toString();
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   155
    
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   156
    
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   157
    QModelIndexList indexList = msgModel->match(msgModel->index(0, 0), SendingState,
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   158
        ConvergedMessage::SentState, -1, Qt::MatchExactly);
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   159
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   160
    QString addr;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   161
    
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   162
    bool found = false;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   163
    if(indexList.count() > 0)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   164
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   165
        QCRITICAL_WRITE("MsgContactCardWidget::address indexList.")
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   166
        for (int i = indexList.count()-1; i >= 0; --i) 
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   167
        {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   168
            addr = indexList[i].data(ConversationAddress).toString();
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   169
            if (addr.length() >= recentAddr.length() && addr.endsWith(recentAddr)) 
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   170
            {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   171
              QCRITICAL_WRITE("MsgContactCardWidget::address inside for indexList.")
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   172
			  found = true; 
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   173
              break;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   174
            }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   175
        }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   176
        
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   177
    }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   178
    else 
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   179
    {   
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   180
        QCRITICAL_WRITE("MsgContactCardWidget::address inside else of indexList.")
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   181
        for(int i=rowCnt-1; i>=0;--i)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   182
            {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   183
            QModelIndex index = msgModel->index(i, 0);
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   184
            addr = index.data(ConversationAddress).toString();
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   185
            if(addr.startsWith(PLUS) && addr.length() >= recentAddr.length() && addr.endsWith(recentAddr))
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   186
                {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   187
                found = true; 
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   188
                break;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   189
                }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   190
            }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   191
           
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   192
    }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   193
    
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   194
    if (!found) 
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   195
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   196
        addr = recentAddr;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   197
    }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   198
    
41
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   199
    ConvergedMessageAddress* address = new ConvergedMessageAddress(addr);
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   200
    // resolve contact
37
hgs
parents: 25
diff changeset
   201
    QString displayname;
41
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   202
    int count;
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   203
    int retval = MsgContactHandler::resolveContactDisplayName(
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   204
            addr, displayname, count);
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   205
    if(retval != -1)
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   206
    {
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   207
        address->setAlias(displayname);
25fe1fe642e3 201027_02
hgs
parents: 37
diff changeset
   208
    }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
    addresses.append(address);
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   210
    QCRITICAL_WRITE("MsgContactCardWidget::address end.")
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
    return addresses;
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
// MsgContactCardWidget::updateContents
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
// @see header file
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
void MsgContactCardWidget::updateContents()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
    // Get the Model Index
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   221
    QModelIndex index = ConversationsEngine::instance()->getConversationsModel()->index(0, 0);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   222
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   223
    // Index is not valid, return.
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   224
    if (!index.isValid()) {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   225
        return;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   227
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   228
    qint64 convId = ConversationsEngine::instance()->getCurrentConversationId();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   229
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   230
    if (KBluetoothMsgsConversationId == convId) {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   231
        setAddress(LOC_RECEIVED_FILES);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   232
        setAvatar(HbIcon(BT_ICON));
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   234
    else {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   235
        //Set the Contact Name/Number
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   236
        qint64 convId;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   237
        QString displayName;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   238
        QString contactAddress;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   239
        convId = ConversationsEngine::instance()->getCurrentConversationId();
37
hgs
parents: 25
diff changeset
   240
        ConversationsEngine::instance()->getContactDetails(convId, displayName, contactAddress);
hgs
parents: 25
diff changeset
   241
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   242
        mContactNumber = contactAddress;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   243
        QString contactName;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   244
        if (displayName.isEmpty()) {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   245
            contactName.append(contactAddress);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   246
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   247
        else {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   248
            contactName.append(displayName);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   249
        }
37
hgs
parents: 25
diff changeset
   250
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   251
        setAddress(contactName);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   253
        // Set Avatar
37
hgs
parents: 25
diff changeset
   254
        QList<QContact> contactList = MsgContactHandler::findContactList(mContactNumber);
hgs
parents: 25
diff changeset
   255
hgs
parents: 25
diff changeset
   256
        if (!contactList.isEmpty()) {
hgs
parents: 25
diff changeset
   257
            QList<QContactAvatar> avatarDetails = contactList.at(0).details<QContactAvatar> ();
hgs
parents: 25
diff changeset
   258
hgs
parents: 25
diff changeset
   259
            if (!avatarDetails.isEmpty()) {
hgs
parents: 25
diff changeset
   260
                mThumbnailManager->getThumbnail(avatarDetails.at(0).imageUrl().toString());
hgs
parents: 25
diff changeset
   261
            }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   262
        }
37
hgs
parents: 25
diff changeset
   263
hgs
parents: 25
diff changeset
   264
        // Set default avatar till actual is set.
hgs
parents: 25
diff changeset
   265
        setAvatar(HbIcon(DEFAULT_AVATAR_ICON));
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
// MsgContactCardWidget::clearContent
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
// @see header file
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
void MsgContactCardWidget::clearContent()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   275
    setAddress("");
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   276
    setAvatar(HbIcon());
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   277
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   278
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   279
//---------------------------------------------------------------
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   280
// MsgContactCardWidget::isValidAddress
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   281
// @see header file
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   282
//---------------------------------------------------------------
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   283
bool MsgContactCardWidget::isValidAddress()
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   284
{
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   285
    QScopedPointer<MsgSendUtil> sendUtil(new MsgSendUtil());
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   286
    return sendUtil->isValidAddress(mContactNumber);
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   287
}
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   288
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   289
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   290
// MsgContactCardWidget::gestureEvent
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   291
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   292
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   293
void MsgContactCardWidget::gestureEvent(QGestureEvent *event)
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   294
{
37
hgs
parents: 25
diff changeset
   295
    HbTapGesture *tapGesture = qobject_cast<HbTapGesture*> (event->gesture(Qt::TapGesture));
hgs
parents: 25
diff changeset
   296
    if (tapGesture) {
hgs
parents: 25
diff changeset
   297
        switch (tapGesture->state()) {
hgs
parents: 25
diff changeset
   298
        case Qt::GestureStarted:
hgs
parents: 25
diff changeset
   299
        {
hgs
parents: 25
diff changeset
   300
            // Trigger haptic feedback.
hgs
parents: 25
diff changeset
   301
            HbInstantFeedback::play(HbFeedback::Basic);
hgs
parents: 25
diff changeset
   302
            setPressed(true);
hgs
parents: 25
diff changeset
   303
            break;
hgs
parents: 25
diff changeset
   304
        }
hgs
parents: 25
diff changeset
   305
        case Qt::GestureUpdated:
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   306
        {
37
hgs
parents: 25
diff changeset
   307
            if (HbTapGesture::TapAndHold == tapGesture->tapStyleHint()) {
hgs
parents: 25
diff changeset
   308
                // Handle longtap.
hgs
parents: 25
diff changeset
   309
                setPressed(false);
hgs
parents: 25
diff changeset
   310
                handleLongTap(tapGesture->scenePosition());
hgs
parents: 25
diff changeset
   311
            }
hgs
parents: 25
diff changeset
   312
            break;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   313
        }
37
hgs
parents: 25
diff changeset
   314
        case Qt::GestureFinished:
hgs
parents: 25
diff changeset
   315
        {
hgs
parents: 25
diff changeset
   316
            HbInstantFeedback::play(HbFeedback::Basic);
hgs
parents: 25
diff changeset
   317
            if (HbTapGesture::Tap == tapGesture->tapStyleHint()) {
hgs
parents: 25
diff changeset
   318
                // Handle short tap.
hgs
parents: 25
diff changeset
   319
                setPressed(false);
hgs
parents: 25
diff changeset
   320
                handleShortTap(tapGesture->scenePosition());
hgs
parents: 25
diff changeset
   321
            }
hgs
parents: 25
diff changeset
   322
            break;
hgs
parents: 25
diff changeset
   323
        }
hgs
parents: 25
diff changeset
   324
        case Qt::GestureCanceled:
hgs
parents: 25
diff changeset
   325
        {
hgs
parents: 25
diff changeset
   326
            HbInstantFeedback::play(HbFeedback::Basic);
hgs
parents: 25
diff changeset
   327
            setPressed(false);
hgs
parents: 25
diff changeset
   328
            break;
hgs
parents: 25
diff changeset
   329
        }
hgs
parents: 25
diff changeset
   330
        }
hgs
parents: 25
diff changeset
   331
    }
hgs
parents: 25
diff changeset
   332
    else {
hgs
parents: 25
diff changeset
   333
        HbWidget::gestureEvent(event);
hgs
parents: 25
diff changeset
   334
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   335
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   336
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   337
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   338
// MsgContactCardWidget::setPressed
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   339
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   340
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   341
void MsgContactCardWidget::setPressed(bool pressed)
hgs
parents: 25
diff changeset
   342
{
hgs
parents: 25
diff changeset
   343
    HbFrameItem *frameItem = static_cast<HbFrameItem *> (this->backgroundItem());
hgs
parents: 25
diff changeset
   344
    if (pressed) {
hgs
parents: 25
diff changeset
   345
        this->setProperty("state", "pressed");
hgs
parents: 25
diff changeset
   346
        frameItem->frameDrawer().setFrameGraphicsName(BG_FRAME_PRESSED);
hgs
parents: 25
diff changeset
   347
    }
hgs
parents: 25
diff changeset
   348
    else {
hgs
parents: 25
diff changeset
   349
        this->setProperty("state", "normal");
hgs
parents: 25
diff changeset
   350
        frameItem->frameDrawer().setFrameGraphicsName(BG_FRAME_NORMAL);
hgs
parents: 25
diff changeset
   351
    }
hgs
parents: 25
diff changeset
   352
}
hgs
parents: 25
diff changeset
   353
hgs
parents: 25
diff changeset
   354
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   355
// MsgContactCardWidget::handleLongTap
hgs
parents: 25
diff changeset
   356
// @see header file
hgs
parents: 25
diff changeset
   357
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   358
void MsgContactCardWidget::handleLongTap(const QPointF &position)
hgs
parents: 25
diff changeset
   359
{
hgs
parents: 25
diff changeset
   360
    if (KBluetoothMsgsConversationId != ConversationsEngine::instance()->getCurrentConversationId()) {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   361
        HbMenu* contextMenu = new HbMenu();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   362
        contextMenu->setDismissPolicy(HbPopup::TapAnywhere);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   363
        contextMenu->setAttribute(Qt::WA_DeleteOnClose, true);
37
hgs
parents: 25
diff changeset
   364
        contextMenu->setPreferredPos(position);   
hgs
parents: 25
diff changeset
   365
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   366
        //If contact doesn't exist in phonebook then add another menu item "Save to Contacts"
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   367
        int contactId = resolveContactId(mContactNumber);
37
hgs
parents: 25
diff changeset
   368
        if (contactId < 0) {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   369
            contextMenu->addAction(LOC_SAVETO_CONTACTS, this, SLOT(addToContacts()));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   370
        }
37
hgs
parents: 25
diff changeset
   371
        else{
hgs
parents: 25
diff changeset
   372
            contextMenu->addAction(LOC_MENU_CONTACT_INFO, this, SLOT(openContactInfo()));
hgs
parents: 25
diff changeset
   373
        }
hgs
parents: 25
diff changeset
   374
        contextMenu->addAction(LOC_COMMON_MENU_CALL, this, SLOT(call()));
hgs
parents: 25
diff changeset
   375
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   376
        contextMenu->show();
37
hgs
parents: 25
diff changeset
   377
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   378
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   379
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   380
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   381
// MsgContactCardWidget::handleShortTap
hgs
parents: 25
diff changeset
   382
// @see header
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   383
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   384
void MsgContactCardWidget::handleShortTap(const QPointF &position)
hgs
parents: 25
diff changeset
   385
{
hgs
parents: 25
diff changeset
   386
    this->ungrabGesture(Qt::TapGesture);
hgs
parents: 25
diff changeset
   387
    
hgs
parents: 25
diff changeset
   388
    int contactId = resolveContactId(mContactNumber);
hgs
parents: 25
diff changeset
   389
    if(contactId > 0)
hgs
parents: 25
diff changeset
   390
    {
hgs
parents: 25
diff changeset
   391
        //resolved contact open contact card.
hgs
parents: 25
diff changeset
   392
        openContactInfo();
hgs
parents: 25
diff changeset
   393
    }
hgs
parents: 25
diff changeset
   394
    else
hgs
parents: 25
diff changeset
   395
    {
hgs
parents: 25
diff changeset
   396
        //unresolved contact show longpress options menu.
hgs
parents: 25
diff changeset
   397
        handleLongTap(position);
hgs
parents: 25
diff changeset
   398
    }
hgs
parents: 25
diff changeset
   399
    
hgs
parents: 25
diff changeset
   400
    //fire timer to regrab gesture after some delay.
hgs
parents: 25
diff changeset
   401
    QTimer::singleShot(300,this,SLOT(regrabGesture()));    
hgs
parents: 25
diff changeset
   402
}
hgs
parents: 25
diff changeset
   403
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   404
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   405
// MsgContactCardWidget::openContactInfo
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   406
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   407
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   408
void MsgContactCardWidget::openContactInfo()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   409
{
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   410
    //service stuff.
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   411
    QString service("phonebookservices");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   412
    QString interface;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   413
    QString operation;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   414
    QList<QVariant> args;
37
hgs
parents: 25
diff changeset
   415
    if (KBluetoothMsgsConversationId != ConversationsEngine::instance()->getCurrentConversationId()) {
hgs
parents: 25
diff changeset
   416
        int contactId = resolveContactId(mContactNumber);
hgs
parents: 25
diff changeset
   417
        if (contactId > 0) {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   418
            //open existing contact card
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   419
            interface = QString("com.nokia.symbian.IContactsView");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   420
            operation = QString("openContactCard(int)");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   421
            args << contactId;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   422
        }
37
hgs
parents: 25
diff changeset
   423
        else {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   424
            //populate data and open unknown contact template
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   425
            interface = QString("com.nokia.symbian.IContactsEdit");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   426
            operation = QString("editCreateNew(QString,QString)");
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   427
            QString type = QContactPhoneNumber::DefinitionName;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   428
            args << type;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   429
            args << mAddress;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   430
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   431
        XQAiwRequest* request;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   432
        XQApplicationManager appManager;
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   433
        request = appManager.create(service, interface, operation, true); // embedded
37
hgs
parents: 25
diff changeset
   434
        if (request == NULL) {
hgs
parents: 25
diff changeset
   435
            return;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   436
        }
37
hgs
parents: 25
diff changeset
   437
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   438
        // Result handlers
37
hgs
parents: 25
diff changeset
   439
        connect(request, SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&)));
hgs
parents: 25
diff changeset
   440
        connect(request, SIGNAL(requestError(const QVariant&)), this,
hgs
parents: 25
diff changeset
   441
            SLOT(handleError(const QVariant&)));
hgs
parents: 25
diff changeset
   442
hgs
parents: 25
diff changeset
   443
        //disbale subscritption for the CV events
hgs
parents: 25
diff changeset
   444
        ConversationsEngine::instance()->disableRegisterationForCVEvents();
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   445
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   446
        request->setArguments(args);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   447
        request->send();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   448
        delete request;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   449
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   450
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   451
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   452
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   453
// MsgContactCardWidget::resolveContactId
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   454
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   455
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   456
int MsgContactCardWidget::resolveContactId(const QString& value)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   457
{
37
hgs
parents: 25
diff changeset
   458
    QString displayLabel;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   459
37
hgs
parents: 25
diff changeset
   460
    int count;
hgs
parents: 25
diff changeset
   461
    return MsgContactHandler::resolveContactDisplayName(value, displayLabel, count);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   462
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   463
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   464
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   465
// MsgContactCardWidget::call
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   466
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   467
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   468
void MsgContactCardWidget::call()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   469
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   470
    //Launch dialer service     
37
hgs
parents: 25
diff changeset
   471
    QString serviceName("com.nokia.symbian.ICallDial");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   472
    QString operation("dial(QString)");
37
hgs
parents: 25
diff changeset
   473
hgs
parents: 25
diff changeset
   474
    XQServiceRequest* serviceRequest = new XQServiceRequest(serviceName, operation, false);
hgs
parents: 25
diff changeset
   475
hgs
parents: 25
diff changeset
   476
    connect(serviceRequest, SIGNAL(requestCompleted(QVariant)), this,
hgs
parents: 25
diff changeset
   477
        SLOT(onServiceRequestCompleted()));
hgs
parents: 25
diff changeset
   478
hgs
parents: 25
diff changeset
   479
    connect(serviceRequest, SIGNAL(requestError(int)), this, SLOT(onServiceRequestCompleted()));
hgs
parents: 25
diff changeset
   480
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   481
    *serviceRequest << mContactNumber;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   482
    serviceRequest->send();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   483
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   484
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   485
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   486
// MsgContactCardWidget::addToContacts
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   487
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   488
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   489
void MsgContactCardWidget::addToContacts()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   490
{
37
hgs
parents: 25
diff changeset
   491
    openContactInfo();
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   492
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   493
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   494
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   495
// MsgContactCardWidget::handleOk
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   496
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   497
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   498
void MsgContactCardWidget::handleOk(const QVariant& result)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   499
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   500
    Q_UNUSED(result)
37
hgs
parents: 25
diff changeset
   501
hgs
parents: 25
diff changeset
   502
    QList<QContact> matchingContacts = MsgContactHandler::findContactList(mContactNumber);
hgs
parents: 25
diff changeset
   503
hgs
parents: 25
diff changeset
   504
    if (!matchingContacts.isEmpty()) {
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   505
        QString displayLabel = matchingContacts.at(0).displayLabel();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   506
        if(!displayLabel.isEmpty())
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   507
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   508
            setAddress(displayLabel);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   509
        }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   510
        else
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   511
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   512
            setAddress(mContactNumber);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   513
        }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   514
        
37
hgs
parents: 25
diff changeset
   515
        QList<QContactAvatar> avatarDetails = matchingContacts.at(0).details<QContactAvatar> ();
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   516
37
hgs
parents: 25
diff changeset
   517
        if (!avatarDetails.isEmpty()) {
hgs
parents: 25
diff changeset
   518
            mThumbnailManager->getThumbnail(avatarDetails.at(0).imageUrl().toString());
hgs
parents: 25
diff changeset
   519
        }
51
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   520
        else {
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   521
            //Set default avatar since avtar is deleted        
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   522
            setAvatar(HbIcon(DEFAULT_AVATAR_ICON));
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   523
        }        
37
hgs
parents: 25
diff changeset
   524
	}
51
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   525
    else  {
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   526
        //case for deletion from contact card widget
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   527
        //set the default number as address
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   528
        setAddress(mContactNumber);
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   529
        //Set default avatar since contact is deleted
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   530
        setAvatar(HbIcon(DEFAULT_AVATAR_ICON));
3507212d340e 201031_02
hgs
parents: 41
diff changeset
   531
    }
37
hgs
parents: 25
diff changeset
   532
	
hgs
parents: 25
diff changeset
   533
	// Get the new conversation id.
hgs
parents: 25
diff changeset
   534
    qint64 convId = ConversationsEngine::instance()->getConversationIdFromAddress(
hgs
parents: 25
diff changeset
   535
                mContactNumber);
hgs
parents: 25
diff changeset
   536
    emit conversationIdChanged(convId);
hgs
parents: 25
diff changeset
   537
            
hgs
parents: 25
diff changeset
   538
    ConversationsEngine::instance(
hgs
parents: 25
diff changeset
   539
                    )->emitOpenConversationViewIdUpdate(convId);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   540
    
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   541
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   542
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   543
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   544
// MsgContactCardWidget::handleError
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   545
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   546
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   547
void MsgContactCardWidget::handleError(int errorCode, const QString& errorMessage)
37
hgs
parents: 25
diff changeset
   548
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   549
    Q_UNUSED(errorMessage)
37
hgs
parents: 25
diff changeset
   550
    Q_UNUSED(errorCode)    
hgs
parents: 25
diff changeset
   551
    
hgs
parents: 25
diff changeset
   552
    //unblock the cv events in case of contacts save error
hgs
parents: 25
diff changeset
   553
    ConversationsEngine::instance(
hgs
parents: 25
diff changeset
   554
                        )->emitOpenConversationViewIdUpdate(
hgs
parents: 25
diff changeset
   555
                                ConversationsEngine::instance(
hgs
parents: 25
diff changeset
   556
                                        )->getCurrentConversationId(
hgs
parents: 25
diff changeset
   557
                                                ));
hgs
parents: 25
diff changeset
   558
}
hgs
parents: 25
diff changeset
   559
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   560
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   561
// MsgContactCardWidget::onServiceRequestCompleted
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   562
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   563
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   564
void MsgContactCardWidget::onServiceRequestCompleted()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   565
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   566
    //service request is now complete. delete it.
37
hgs
parents: 25
diff changeset
   567
    XQServiceRequest* request = qobject_cast<XQServiceRequest*> (sender());
hgs
parents: 25
diff changeset
   568
    if (request) {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   569
        delete request;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   570
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   571
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   572
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   573
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   574
// MsgContactCardWidget::thumbnailReady
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   575
// @see header
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   576
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   577
void MsgContactCardWidget::thumbnailReady(const QPixmap& pixmap, void *data, int id, int error)
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   578
{
37
hgs
parents: 25
diff changeset
   579
    Q_UNUSED(data)
hgs
parents: 25
diff changeset
   580
    Q_UNUSED(id)
hgs
parents: 25
diff changeset
   581
hgs
parents: 25
diff changeset
   582
    if (!error) {
hgs
parents: 25
diff changeset
   583
        QIcon icon(pixmap);
hgs
parents: 25
diff changeset
   584
        setAvatar(HbIcon(icon));
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   585
    }
37
hgs
parents: 25
diff changeset
   586
    else {
hgs
parents: 25
diff changeset
   587
        setAvatar(HbIcon(DEFAULT_AVATAR_ICON));
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   588
    }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
}
37
hgs
parents: 25
diff changeset
   590
hgs
parents: 25
diff changeset
   591
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   592
// MsgContactCardWidget::regrabGesture
hgs
parents: 25
diff changeset
   593
// @see header file
hgs
parents: 25
diff changeset
   594
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   595
void MsgContactCardWidget::regrabGesture()
hgs
parents: 25
diff changeset
   596
{
hgs
parents: 25
diff changeset
   597
    this->grabGesture(Qt::TapGesture);
hgs
parents: 25
diff changeset
   598
}
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   599
// EOF