messagingapp/msgui/unifiededitor/src/msgunieditoraddress.cpp
author hgs
Tue, 19 Oct 2010 11:30:16 +0530
changeset 76 60a8a215b0ec
parent 73 ecf6a73a9186
permissions -rw-r--r--
201041
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
// INCLUDES
37
hgs
parents: 25
diff changeset
    19
#include <QTimer>
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <HbTextItem>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <HbPushButton>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <HbAction>
37
hgs
parents: 25
diff changeset
    23
#include <hbmessagebox.h>
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <cntservicescontact.h>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    25
#include <xqaiwrequest.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    26
#include <xqappmgr.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    27
#include <telconfigcrkeys.h>        // KCRUidTelephonyConfiguration
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    28
#include <centralrepository.h>
37
hgs
parents: 25
diff changeset
    29
#include <HbNotificationDialog>
48
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    30
#include <HbEditorInterface>
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
// USER INCLUDES
37
hgs
parents: 25
diff changeset
    33
#include "debugtraces.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "msgunieditoraddress.h"
37
hgs
parents: 25
diff changeset
    35
#include "msgunieditorlineedit.h"
hgs
parents: 25
diff changeset
    36
#include "msgunieditormonitor.h"
hgs
parents: 25
diff changeset
    37
#include "UniEditorGenUtils.h"
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
    38
#include "msgsendutil.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    40
const QString PBK_ICON("qtg_mono_contacts");
37
hgs
parents: 25
diff changeset
    41
const QString REPLACEMENT_STR("; ");
hgs
parents: 25
diff changeset
    42
const QString COMMA_SEPERATOR(",");
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
// Constants
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    45
const int KDefaultGsmNumberMatchLength = 7;  //matching unique ph numbers
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
    46
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
    47
#define LOC_TITLE hbTrId("txt_messaging_title_messaging")
37
hgs
parents: 25
diff changeset
    48
#define LOC_SMS_RECIPIENT_LIMIT_REACHED hbTrId("txt_messaging_dialog_number_of_recipients_exceeded")
hgs
parents: 25
diff changeset
    49
#define LOC_MMS_RECIPIENT_LIMIT_REACHED hbTrId("txt_messaging_dpopinfo_unable_to_add_more_recipien")
hgs
parents: 25
diff changeset
    50
#define LOC_DIALOG_OK hbTrId("txt_common_button_ok")
hgs
parents: 25
diff changeset
    51
#define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel")
hgs
parents: 25
diff changeset
    52
#define LOC_INVALID_RECIPIENT hbTrId("txt_messaging_dialog_invalid_recipient_found")
hgs
parents: 25
diff changeset
    53
#define LOC_INVALID_RECIPIENT_NOT_ADDED hbTrId("txt_messaging_dialog_invalid_recipient_not_added")
hgs
parents: 25
diff changeset
    54
#define LOC_INVALID_RECIPIENTS_NOT_ADDED hbTrId("txt_messaging_dialog_invalid_recipients_not_added")
hgs
parents: 25
diff changeset
    55
hgs
parents: 25
diff changeset
    56
hgs
parents: 25
diff changeset
    57
hgs
parents: 25
diff changeset
    58
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
MsgUnifiedEditorAddress::MsgUnifiedEditorAddress( const QString& label,
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
                                                  QGraphicsItem *parent ) :
37
hgs
parents: 25
diff changeset
    62
MsgUnifiedEditorBaseWidget(parent),
hgs
parents: 25
diff changeset
    63
mSkipMaxRecipientQuery(false),
hgs
parents: 25
diff changeset
    64
mAboutToExceedMaxSmsRecipients(false),
hgs
parents: 25
diff changeset
    65
mAboutToExceedMaxMmsRecipients(false),
76
hgs
parents: 73
diff changeset
    66
mExceedsMaxMmsRecipientsBy(0),
hgs
parents: 73
diff changeset
    67
mAddressCount(0)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
{
37
hgs
parents: 25
diff changeset
    69
    this->setContentsMargins(0,0,0,0);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
    mLaunchBtn = new HbPushButton(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
    HbStyle::setItemName(mLaunchBtn,"launchBtn");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    73
    connect(mLaunchBtn,SIGNAL(clicked()),this,SLOT(fetchContacts()));
23
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
    mLaunchBtn->setIcon(HbIcon(PBK_ICON));
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
    mAddressEdit = new MsgUnifiedEditorLineEdit(label,this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
    HbStyle::setItemName(mAddressEdit,"addressField");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    79
    connect(mAddressEdit, SIGNAL(contentsChanged(const QString&)),
37
hgs
parents: 25
diff changeset
    80
            this, SLOT(onContentsChanged(const QString&)));
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    82
    mAddressEdit->setInputMethodHints(Qt::ImhPreferNumbers);
48
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    83
    
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    84
    //To allow only latin char(s) in address fields.
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    85
    HbEditorInterface editorInterface(mAddressEdit);
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    86
    editorInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
37
hgs
parents: 25
diff changeset
    87
}
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
MsgUnifiedEditorAddress::~MsgUnifiedEditorAddress()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    93
void MsgUnifiedEditorAddress::fetchContacts()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    94
{
37
hgs
parents: 25
diff changeset
    95
    mLaunchBtn->blockSignals(true);
hgs
parents: 25
diff changeset
    96
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
    97
    QString service("phonebookservices");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
    98
    QString interface("com.nokia.symbian.IContactsFetch");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
    99
    QString operation("multiFetch(QString,QString)");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   100
    XQApplicationManager appManager;
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   101
    XQAiwRequest* request = appManager.create(service, interface, operation, true); // embedded
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   102
	
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   103
    if ( request == NULL )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   104
        {
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   105
        	return;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   106
        }
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   107
		
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   108
    request->setSynchronous(false);
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   109
	
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   110
    // Result handlers
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   111
    connect (request, SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&)));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   112
    connect (request, SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&)));
37
hgs
parents: 25
diff changeset
   113
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   114
    QList<QVariant> args;
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   115
    args << LOC_TITLE;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   116
    args << KCntActionSms;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   117
    args << KCntFilterDisplayAll;
37
hgs
parents: 25
diff changeset
   118
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   119
    request->setArguments(args);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   120
    request->send();
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   121
    
37
hgs
parents: 25
diff changeset
   122
    //unblock click signal after some delay.
hgs
parents: 25
diff changeset
   123
    QTimer::singleShot(250,this,SLOT(unblockSignals()));
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   124
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   125
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   126
void MsgUnifiedEditorAddress::handleOk(const QVariant& value)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
{
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   128
    // delete the request
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   129
    XQAiwRequest* request = qobject_cast<XQAiwRequest*>(this->sender());
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   130
    if(request)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   131
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   132
        delete request;        
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   133
    }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   134
	
37
hgs
parents: 25
diff changeset
   135
   CntServicesContactList contactList =
hgs
parents: 25
diff changeset
   136
           qVariantValue<CntServicesContactList>(value);
hgs
parents: 25
diff changeset
   137
    int count = contactList.count();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
37
hgs
parents: 25
diff changeset
   139
    ConvergedMessageAddressList addrlist;
hgs
parents: 25
diff changeset
   140
    for(int i = 0; i < count; i++ )
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
    {
37
hgs
parents: 25
diff changeset
   142
        ConvergedMessageAddress* address =
hgs
parents: 25
diff changeset
   143
                new ConvergedMessageAddress();
hgs
parents: 25
diff changeset
   144
        if(!contactList[i].mPhoneNumber.isEmpty())
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
        {
37
hgs
parents: 25
diff changeset
   146
            address->setAddress(contactList[i].mPhoneNumber);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
        else
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
        {
37
hgs
parents: 25
diff changeset
   150
            address->setAddress(contactList[i].mEmailAddress);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
        }
37
hgs
parents: 25
diff changeset
   152
        address->setAlias(contactList[i].mDisplayName);
hgs
parents: 25
diff changeset
   153
        addrlist << address;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    }
37
hgs
parents: 25
diff changeset
   155
    setAddresses(addrlist);
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   156
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   159
void MsgUnifiedEditorAddress::handleError(int errorCode, const QString& errorMessage)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   160
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   161
    Q_UNUSED(errorMessage)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   162
    Q_UNUSED(errorCode)
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   163
	
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   164
    XQAiwRequest* request = qobject_cast<XQAiwRequest*>(this->sender());
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   165
    if(request)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   166
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   167
       delete request;      
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   168
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   169
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   170
37
hgs
parents: 25
diff changeset
   171
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   172
// MsgUnifiedEditorAddress::addresses
hgs
parents: 25
diff changeset
   173
// @see header
hgs
parents: 25
diff changeset
   174
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   175
ConvergedMessageAddressList MsgUnifiedEditorAddress::addresses(
hgs
parents: 25
diff changeset
   176
        bool removeDuplicates)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
{
37
hgs
parents: 25
diff changeset
   178
#ifdef _DEBUG_TRACES_
hgs
parents: 25
diff changeset
   179
    qCritical() << "MsgUnifiedEditorAddress::addresses start";
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
#endif
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    // sync-up map to account for user-actions on edit-field
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    syncDeletionsToMap();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
    syncAdditionsToMap();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    ConvergedMessageAddressList addresses;
37
hgs
parents: 25
diff changeset
   186
    if(removeDuplicates)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    {
37
hgs
parents: 25
diff changeset
   188
        QStringList uniqueAddr;
hgs
parents: 25
diff changeset
   189
        uniqueAddr = uniqueAddressList();
hgs
parents: 25
diff changeset
   190
        foreach(QString addr, uniqueAddr)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
        {
37
hgs
parents: 25
diff changeset
   192
            ConvergedMessageAddress* address = new ConvergedMessageAddress;
hgs
parents: 25
diff changeset
   193
            address->setAddress(addr);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
            address->setAlias(mAddressMap.value(addr));
37
hgs
parents: 25
diff changeset
   195
            addresses.append(address);
hgs
parents: 25
diff changeset
   196
        }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
    }
37
hgs
parents: 25
diff changeset
   198
    else
hgs
parents: 25
diff changeset
   199
    {
hgs
parents: 25
diff changeset
   200
        QMap<QString, QString>::iterator i = mAddressMap.begin();
hgs
parents: 25
diff changeset
   201
        while (i != mAddressMap.end())
hgs
parents: 25
diff changeset
   202
        {
hgs
parents: 25
diff changeset
   203
            ConvergedMessageAddress* address = new ConvergedMessageAddress;
hgs
parents: 25
diff changeset
   204
            address->setAddress(i.key());
hgs
parents: 25
diff changeset
   205
            address->setAlias(i.value());
hgs
parents: 25
diff changeset
   206
            addresses.append(address);
hgs
parents: 25
diff changeset
   207
            i++;
hgs
parents: 25
diff changeset
   208
        }
hgs
parents: 25
diff changeset
   209
    }
hgs
parents: 25
diff changeset
   210
#ifdef _DEBUG_TRACES_
hgs
parents: 25
diff changeset
   211
    qCritical() << "MsgUnifiedEditorAddress::addresses end";
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
#endif
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
    return addresses;
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
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
int MsgUnifiedEditorAddress::addressCount()
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
    return mAddressEdit->addresses().count();
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
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   221
void MsgUnifiedEditorAddress::setAddresses(ConvergedMessageAddressList addrlist,bool aSkipCheck)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
{
37
hgs
parents: 25
diff changeset
   223
    // avoid processing if no info available
hgs
parents: 25
diff changeset
   224
    if(addrlist.count() == 0)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
    {
37
hgs
parents: 25
diff changeset
   226
        return;
hgs
parents: 25
diff changeset
   227
    }
hgs
parents: 25
diff changeset
   228
hgs
parents: 25
diff changeset
   229
    // ensure flags are reset before starting the addr addition
hgs
parents: 25
diff changeset
   230
    mAboutToExceedMaxSmsRecipients = false;
hgs
parents: 25
diff changeset
   231
    mAboutToExceedMaxMmsRecipients = false;
hgs
parents: 25
diff changeset
   232
    mExceedsMaxMmsRecipientsBy = 0;
hgs
parents: 25
diff changeset
   233
hgs
parents: 25
diff changeset
   234
    // first, we check if MMS max-recipient count will exceed
hgs
parents: 25
diff changeset
   235
    int count = addrlist.count();
hgs
parents: 25
diff changeset
   236
	int futureCount = count + MsgUnifiedEditorMonitor::msgAddressCount();
hgs
parents: 25
diff changeset
   237
	if(futureCount > MsgUnifiedEditorMonitor::maxMmsRecipients())
hgs
parents: 25
diff changeset
   238
	{
hgs
parents: 25
diff changeset
   239
	    mAboutToExceedMaxMmsRecipients = true;
hgs
parents: 25
diff changeset
   240
	    mExceedsMaxMmsRecipientsBy =
hgs
parents: 25
diff changeset
   241
	            futureCount - MsgUnifiedEditorMonitor::maxMmsRecipients();
hgs
parents: 25
diff changeset
   242
	}
hgs
parents: 25
diff changeset
   243
	// else, check if SMS max-recipient count will exceed
hgs
parents: 25
diff changeset
   244
	else if(!mSkipMaxRecipientQuery)
hgs
parents: 25
diff changeset
   245
	{
hgs
parents: 25
diff changeset
   246
	    futureCount = count + addressCount();
hgs
parents: 25
diff changeset
   247
	    if( (addressCount() <= MsgUnifiedEditorMonitor::maxSmsRecipients()) &&
hgs
parents: 25
diff changeset
   248
	        (futureCount > MsgUnifiedEditorMonitor::maxSmsRecipients()) )
hgs
parents: 25
diff changeset
   249
	    {
hgs
parents: 25
diff changeset
   250
	        mAboutToExceedMaxSmsRecipients = true;
hgs
parents: 25
diff changeset
   251
	    }
hgs
parents: 25
diff changeset
   252
	}
hgs
parents: 25
diff changeset
   253
hgs
parents: 25
diff changeset
   254
	int  invalidCount= 0;
hgs
parents: 25
diff changeset
   255
    QString invalidContacts;
hgs
parents: 25
diff changeset
   256
    for(int i = 0; i < count; i++ )
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
        {
37
hgs
parents: 25
diff changeset
   258
        bool isValid = false;
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   259
        if(!aSkipCheck)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   260
        {
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   261
            QScopedPointer<MsgSendUtil> sendUtil(new MsgSendUtil());
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   262
            isValid = sendUtil->isValidAddress(addrlist.at(i)->address());
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   263
        }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   264
        else
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   265
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   266
            // no need to validate, assume correct
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   267
            isValid = true;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   268
        }
37
hgs
parents: 25
diff changeset
   269
        if(!isValid)
hgs
parents: 25
diff changeset
   270
           {
hgs
parents: 25
diff changeset
   271
            invalidCount ++;
hgs
parents: 25
diff changeset
   272
            // append the comma till last but one contact.
hgs
parents: 25
diff changeset
   273
            // add the invalid ocntacts to the " , " seperated string.
hgs
parents: 25
diff changeset
   274
            if(invalidCount > 1)
hgs
parents: 25
diff changeset
   275
                {
hgs
parents: 25
diff changeset
   276
                invalidContacts.append(COMMA_SEPERATOR);
hgs
parents: 25
diff changeset
   277
                }
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   278
            if(addrlist[i]->alias().isEmpty())
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   279
                invalidContacts.append(addrlist.at(i)->address());
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   280
            else
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   281
                invalidContacts.append(addrlist.at(i)->alias());
37
hgs
parents: 25
diff changeset
   282
           }
hgs
parents: 25
diff changeset
   283
       else
hgs
parents: 25
diff changeset
   284
           {
hgs
parents: 25
diff changeset
   285
           mAddressMap.insertMulti(addrlist[i]->address(), addrlist[i]->alias());
hgs
parents: 25
diff changeset
   286
           if(!addrlist[i]->alias().isEmpty())
hgs
parents: 25
diff changeset
   287
              {
hgs
parents: 25
diff changeset
   288
              mAddressEdit->setText(addrlist[i]->alias());
hgs
parents: 25
diff changeset
   289
              }
hgs
parents: 25
diff changeset
   290
           else
hgs
parents: 25
diff changeset
   291
              {
hgs
parents: 25
diff changeset
   292
              mAddressEdit->setText(addrlist[i]->address(), false);
hgs
parents: 25
diff changeset
   293
              }
hgs
parents: 25
diff changeset
   294
           }
hgs
parents: 25
diff changeset
   295
       }
hgs
parents: 25
diff changeset
   296
    if(invalidCount)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
        {
37
hgs
parents: 25
diff changeset
   298
        QString invalidStr;
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   299
        (invalidCount == 1)?(invalidStr = QString(LOC_INVALID_RECIPIENT_NOT_ADDED.arg(invalidContacts))) :(invalidStr = QString(LOC_INVALID_RECIPIENTS_NOT_ADDED.arg(invalidContacts)));
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   300
		HbMessageBox::information(invalidStr, 0, 0, HbMessageBox::Ok);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   301
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   302
    
37
hgs
parents: 25
diff changeset
   303
hgs
parents: 25
diff changeset
   304
    // addition operation complete, reset flags
hgs
parents: 25
diff changeset
   305
    mAboutToExceedMaxSmsRecipients = false;
hgs
parents: 25
diff changeset
   306
    mAboutToExceedMaxMmsRecipients = false;
hgs
parents: 25
diff changeset
   307
    mExceedsMaxMmsRecipientsBy = 0;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   310
int MsgUnifiedEditorAddress::contactMatchDigits()
37
hgs
parents: 25
diff changeset
   311
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   312
    // Read the amount of digits to be used in contact matching
37
hgs
parents: 25
diff changeset
   313
    // The key is owned by PhoneApp
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   314
    int matchDigitCount = 0;
37
hgs
parents: 25
diff changeset
   315
    TRAP_IGNORE(
hgs
parents: 25
diff changeset
   316
        CRepository* repository = CRepository::NewLC(KCRUidTelConfiguration);
hgs
parents: 25
diff changeset
   317
        if ( repository->Get(KTelMatchDigits, matchDigitCount) == KErrNone )
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   318
        {
37
hgs
parents: 25
diff changeset
   319
            // Min is 7
hgs
parents: 25
diff changeset
   320
            matchDigitCount = Max(matchDigitCount, KDefaultGsmNumberMatchLength);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   321
        }
37
hgs
parents: 25
diff changeset
   322
        CleanupStack::PopAndDestroy(); // repository
hgs
parents: 25
diff changeset
   323
    );
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   324
    return matchDigitCount;
37
hgs
parents: 25
diff changeset
   325
}
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   326
37
hgs
parents: 25
diff changeset
   327
void MsgUnifiedEditorAddress::onContentsChanged(const QString& text)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
{
76
hgs
parents: 73
diff changeset
   329
hgs
parents: 73
diff changeset
   330
    emitContentsChanged();
hgs
parents: 73
diff changeset
   331
    
37
hgs
parents: 25
diff changeset
   332
    // Max MMS recipient count check
hgs
parents: 25
diff changeset
   333
    if( mAboutToExceedMaxMmsRecipients ||
hgs
parents: 25
diff changeset
   334
        (MsgUnifiedEditorMonitor::msgAddressCount() >= MsgUnifiedEditorMonitor::maxMmsRecipients()) )
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
    {
37
hgs
parents: 25
diff changeset
   336
        if(mAboutToExceedMaxMmsRecipients)
hgs
parents: 25
diff changeset
   337
        {// show discreet note only once
hgs
parents: 25
diff changeset
   338
            --mExceedsMaxMmsRecipientsBy;
hgs
parents: 25
diff changeset
   339
            if(!mExceedsMaxMmsRecipientsBy)
hgs
parents: 25
diff changeset
   340
            {
41
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   341
                HbMessageBox::information(LOC_MMS_RECIPIENT_LIMIT_REACHED, 0, 0, HbMessageBox::Ok);
37
hgs
parents: 25
diff changeset
   342
            }
hgs
parents: 25
diff changeset
   343
            resetToPrevious();
hgs
parents: 25
diff changeset
   344
        }
hgs
parents: 25
diff changeset
   345
        else
hgs
parents: 25
diff changeset
   346
        {
hgs
parents: 25
diff changeset
   347
            if(MsgUnifiedEditorMonitor::msgAddressCount() > MsgUnifiedEditorMonitor::maxMmsRecipients())
hgs
parents: 25
diff changeset
   348
            {
41
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   349
                HbMessageBox::information(LOC_MMS_RECIPIENT_LIMIT_REACHED, 0, 0, HbMessageBox::Ok);
37
hgs
parents: 25
diff changeset
   350
                resetToPrevious();
hgs
parents: 25
diff changeset
   351
            }
hgs
parents: 25
diff changeset
   352
            else
hgs
parents: 25
diff changeset
   353
            {
hgs
parents: 25
diff changeset
   354
                mPrevBuffer = text;
hgs
parents: 25
diff changeset
   355
            }
hgs
parents: 25
diff changeset
   356
        }
76
hgs
parents: 73
diff changeset
   357
        
hgs
parents: 73
diff changeset
   358
        emitContentsChanged();
37
hgs
parents: 25
diff changeset
   359
        return;
hgs
parents: 25
diff changeset
   360
    }
hgs
parents: 25
diff changeset
   361
hgs
parents: 25
diff changeset
   362
    // Max SMS recipient count check
hgs
parents: 25
diff changeset
   363
    if( !mSkipMaxRecipientQuery &&
hgs
parents: 25
diff changeset
   364
        (MsgUnifiedEditorMonitor::messageType() == ConvergedMessage::Sms) &&
hgs
parents: 25
diff changeset
   365
        (mAddressEdit->addresses().count() > MsgUnifiedEditorMonitor::maxSmsRecipients()) )
hgs
parents: 25
diff changeset
   366
    {
hgs
parents: 25
diff changeset
   367
        // when we show this dialog, we don't want the intermediate states
hgs
parents: 25
diff changeset
   368
        // to be signalled to us
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   369
        disconnect(mAddressEdit, SIGNAL(contentsChanged(const QString&)),
37
hgs
parents: 25
diff changeset
   370
                this, SLOT(onContentsChanged(const QString&)));
hgs
parents: 25
diff changeset
   371
        QTimer::singleShot(50, this, SLOT(handleRecipientLimitReached()));
hgs
parents: 25
diff changeset
   372
    }
hgs
parents: 25
diff changeset
   373
    else
hgs
parents: 25
diff changeset
   374
    {
hgs
parents: 25
diff changeset
   375
        if(!mAboutToExceedMaxSmsRecipients)
hgs
parents: 25
diff changeset
   376
        {// remember addresses before the block insertion started
hgs
parents: 25
diff changeset
   377
            mPrevBuffer = text;
hgs
parents: 25
diff changeset
   378
        }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
    }
76
hgs
parents: 73
diff changeset
   380
    emitContentsChanged();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
37
hgs
parents: 25
diff changeset
   383
void MsgUnifiedEditorAddress::handleRecipientLimitReached()
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
{
37
hgs
parents: 25
diff changeset
   385
    HbMessageBox* dlg = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
hgs
parents: 25
diff changeset
   386
    dlg->setAttribute(Qt::WA_DeleteOnClose);
hgs
parents: 25
diff changeset
   387
    dlg->setFocusPolicy(Qt::NoFocus);
hgs
parents: 25
diff changeset
   388
    dlg->setTimeout(HbPopup::NoTimeout);
hgs
parents: 25
diff changeset
   389
hgs
parents: 25
diff changeset
   390
    dlg->setText(LOC_SMS_RECIPIENT_LIMIT_REACHED);
hgs
parents: 25
diff changeset
   391
    
hgs
parents: 25
diff changeset
   392
    dlg->clearActions();
hgs
parents: 25
diff changeset
   393
    HbAction* okAction = new HbAction(LOC_DIALOG_OK,dlg);
hgs
parents: 25
diff changeset
   394
    dlg->addAction(okAction);
hgs
parents: 25
diff changeset
   395
hgs
parents: 25
diff changeset
   396
    HbAction* cancelAction = new HbAction(LOC_BUTTON_CANCEL,dlg);
hgs
parents: 25
diff changeset
   397
    dlg->addAction(cancelAction);
hgs
parents: 25
diff changeset
   398
hgs
parents: 25
diff changeset
   399
    dlg->open(this,SLOT(onMaxRecipientsReached(HbAction*)));
hgs
parents: 25
diff changeset
   400
    // reconnect to get back updates
hgs
parents: 25
diff changeset
   401
    connect(mAddressEdit, SIGNAL(contentsChanged(const QString&)),
hgs
parents: 25
diff changeset
   402
            this, SLOT(onContentsChanged(const QString&)));
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
void MsgUnifiedEditorAddress::syncDeletionsToMap()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
    // get address list from edit-field
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
    QStringList addrList = mAddressEdit->addresses();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
    QMap<QString, QString>::iterator i = mAddressMap.begin();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   411
    while (i != mAddressMap.end())
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   412
    {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
        // check if either key or value is present in the list
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
        if( !(addrList.contains(i.value(), Qt::CaseSensitive) ||
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
              addrList.contains(i.key(), Qt::CaseSensitive)) )
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
        {// if none are present, then delete entry from map
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
            i = mAddressMap.erase(i);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
        else
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
        {
37
hgs
parents: 25
diff changeset
   421
            // ensure that the matched contact is removed from the
hgs
parents: 25
diff changeset
   422
            // address's list
hgs
parents: 25
diff changeset
   423
            int matchedIndex = addrList.indexOf(i.value());
hgs
parents: 25
diff changeset
   424
            if(matchedIndex == -1)
hgs
parents: 25
diff changeset
   425
            {
hgs
parents: 25
diff changeset
   426
                matchedIndex = addrList.indexOf(i.key());
hgs
parents: 25
diff changeset
   427
            }
hgs
parents: 25
diff changeset
   428
            if(matchedIndex != -1)
hgs
parents: 25
diff changeset
   429
            {
hgs
parents: 25
diff changeset
   430
                addrList.removeAt(matchedIndex);
hgs
parents: 25
diff changeset
   431
            }
hgs
parents: 25
diff changeset
   432
            // now go to next index in map
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
            ++i;
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
void MsgUnifiedEditorAddress::syncAdditionsToMap()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
    // remove already mapped addresses from edit-field
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
    QStringList userInputAddrList(mAddressEdit->addresses());
37
hgs
parents: 25
diff changeset
   442
    QStringList mapAddrList = mAddressMap.values();
hgs
parents: 25
diff changeset
   443
    mapAddrList << mAddressMap.keys();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
    foreach(QString addr, mapAddrList)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
    {
37
hgs
parents: 25
diff changeset
   446
        userInputAddrList.removeOne(addr);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
    // add the unmapped addresses to address-map
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
    foreach(QString addr, userInputAddrList)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
    {
37
hgs
parents: 25
diff changeset
   452
        mAddressMap.insertMulti(addr, QString());
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   454
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
QStringList MsgUnifiedEditorAddress::uniqueAddressList()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   458
    int matchDigitCount = MsgUnifiedEditorAddress::contactMatchDigits();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
    QStringList mapAddrList = mAddressMap.keys();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
    for(int j = 0;j<mapAddrList.count()-1;j++)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
    {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
        for(int i =j+1;i<mapAddrList.count();i++)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
        {
37
hgs
parents: 25
diff changeset
   464
            if(0 == mapAddrList[j].right(matchDigitCount).compare(mapAddrList[i].right(matchDigitCount)))
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
            {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
               mapAddrList.removeAt(i);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
               i--;
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
            }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
    return mapAddrList;
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
}
37
hgs
parents: 25
diff changeset
   473
hgs
parents: 25
diff changeset
   474
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   475
// MsgUnifiedEditorAddress::skipMaxRecipientQuery
hgs
parents: 25
diff changeset
   476
// @see header
hgs
parents: 25
diff changeset
   477
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   478
void MsgUnifiedEditorAddress::skipMaxRecipientQuery(bool skip)
hgs
parents: 25
diff changeset
   479
{
hgs
parents: 25
diff changeset
   480
    mSkipMaxRecipientQuery = skip;
hgs
parents: 25
diff changeset
   481
}
hgs
parents: 25
diff changeset
   482
hgs
parents: 25
diff changeset
   483
void MsgUnifiedEditorAddress::setFocus()
hgs
parents: 25
diff changeset
   484
{
hgs
parents: 25
diff changeset
   485
    mAddressEdit->setFocus(Qt::MouseFocusReason);
hgs
parents: 25
diff changeset
   486
}
hgs
parents: 25
diff changeset
   487
hgs
parents: 25
diff changeset
   488
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   489
// MsgUnifiedEditorAddress::resetToPrevious
hgs
parents: 25
diff changeset
   490
// @see header
hgs
parents: 25
diff changeset
   491
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   492
void MsgUnifiedEditorAddress::resetToPrevious()
hgs
parents: 25
diff changeset
   493
{
hgs
parents: 25
diff changeset
   494
    // when we do this reset operation, we don't want the intermediate states
hgs
parents: 25
diff changeset
   495
    // to be signalled to us
hgs
parents: 25
diff changeset
   496
    disconnect(mAddressEdit, SIGNAL(contentsChanged(const QString&)),
hgs
parents: 25
diff changeset
   497
            this, SLOT(onContentsChanged(const QString&)));
hgs
parents: 25
diff changeset
   498
hgs
parents: 25
diff changeset
   499
    mAddressEdit->clearContent();
hgs
parents: 25
diff changeset
   500
    QStringList list = mPrevBuffer.split(REPLACEMENT_STR,
hgs
parents: 25
diff changeset
   501
            QString::SkipEmptyParts);
hgs
parents: 25
diff changeset
   502
    int count = list.count();
hgs
parents: 25
diff changeset
   503
    QStringList valList = mAddressMap.values();
hgs
parents: 25
diff changeset
   504
    for(int i=0; i<count; i++)
hgs
parents: 25
diff changeset
   505
    {
hgs
parents: 25
diff changeset
   506
        QString addr = list.at(i);
hgs
parents: 25
diff changeset
   507
        if(valList.contains(addr))
hgs
parents: 25
diff changeset
   508
        {
hgs
parents: 25
diff changeset
   509
            mAddressEdit->setText(addr);
hgs
parents: 25
diff changeset
   510
        }
hgs
parents: 25
diff changeset
   511
        else
hgs
parents: 25
diff changeset
   512
        {
hgs
parents: 25
diff changeset
   513
            mAddressEdit->setText(addr, false);
hgs
parents: 25
diff changeset
   514
        }
hgs
parents: 25
diff changeset
   515
    }
hgs
parents: 25
diff changeset
   516
    syncDeletionsToMap();
hgs
parents: 25
diff changeset
   517
    connect(mAddressEdit, SIGNAL(contentsChanged(const QString&)),
hgs
parents: 25
diff changeset
   518
            this, SLOT(onContentsChanged(const QString&)));
hgs
parents: 25
diff changeset
   519
}
hgs
parents: 25
diff changeset
   520
hgs
parents: 25
diff changeset
   521
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   522
// MsgUnifiedEditorAddress::onMaxRecipientsReached
hgs
parents: 25
diff changeset
   523
// @see header
hgs
parents: 25
diff changeset
   524
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   525
void MsgUnifiedEditorAddress::onMaxRecipientsReached(HbAction* action)
hgs
parents: 25
diff changeset
   526
{
hgs
parents: 25
diff changeset
   527
    HbMessageBox *dlg = qobject_cast<HbMessageBox*> (sender());
hgs
parents: 25
diff changeset
   528
    if (action == dlg->actions().at(0)) {
hgs
parents: 25
diff changeset
   529
        mPrevBuffer = mAddressEdit->content();
hgs
parents: 25
diff changeset
   530
    }
hgs
parents: 25
diff changeset
   531
    else {
hgs
parents: 25
diff changeset
   532
        // reject the new content, keep the old
hgs
parents: 25
diff changeset
   533
        resetToPrevious();
hgs
parents: 25
diff changeset
   534
    }
76
hgs
parents: 73
diff changeset
   535
    
hgs
parents: 73
diff changeset
   536
    emitContentsChanged();
hgs
parents: 73
diff changeset
   537
    
37
hgs
parents: 25
diff changeset
   538
}
hgs
parents: 25
diff changeset
   539
hgs
parents: 25
diff changeset
   540
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   541
// MsgUnifiedEditorAddress::validateContacts
hgs
parents: 25
diff changeset
   542
// @see header
hgs
parents: 25
diff changeset
   543
// ----------------------------------------------------------------------------
hgs
parents: 25
diff changeset
   544
bool MsgUnifiedEditorAddress::validateContacts()
hgs
parents: 25
diff changeset
   545
{
hgs
parents: 25
diff changeset
   546
hgs
parents: 25
diff changeset
   547
    // sync-up map to account for user-actions on address-field
hgs
parents: 25
diff changeset
   548
    syncDeletionsToMap();
hgs
parents: 25
diff changeset
   549
    syncAdditionsToMap();
hgs
parents: 25
diff changeset
   550
hgs
parents: 25
diff changeset
   551
    // get the list of contacts in address-field
hgs
parents: 25
diff changeset
   552
    QStringList fieldAddresses(mAddressEdit->addresses());
hgs
parents: 25
diff changeset
   553
hgs
parents: 25
diff changeset
   554
    bool isValid = true;
hgs
parents: 25
diff changeset
   555
    foreach(QString addr, fieldAddresses)
hgs
parents: 25
diff changeset
   556
    {
hgs
parents: 25
diff changeset
   557
        // run address validation only if address is unmapped
hgs
parents: 25
diff changeset
   558
        // (i.e. user-inserted)
hgs
parents: 25
diff changeset
   559
        if(mAddressMap.contains(addr))
hgs
parents: 25
diff changeset
   560
        {
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   561
            QScopedPointer<MsgSendUtil> sendUtil(new MsgSendUtil());
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   562
            isValid = sendUtil->isValidAddress(addr);
37
hgs
parents: 25
diff changeset
   563
            if(!isValid)
hgs
parents: 25
diff changeset
   564
            {
hgs
parents: 25
diff changeset
   565
                mAddressEdit->highlightInvalidString(addr);
hgs
parents: 25
diff changeset
   566
                QString invalidAddrStr =
hgs
parents: 25
diff changeset
   567
                        QString(LOC_INVALID_RECIPIENT).arg(addr);
hgs
parents: 25
diff changeset
   568
                HbMessageBox* dlg = new HbMessageBox(invalidAddrStr,
hgs
parents: 25
diff changeset
   569
                        HbMessageBox::MessageTypeInformation);
hgs
parents: 25
diff changeset
   570
                dlg->setDismissPolicy(HbPopup::TapInside);
hgs
parents: 25
diff changeset
   571
                dlg->setTimeout(HbPopup::NoTimeout);
hgs
parents: 25
diff changeset
   572
                dlg->setAttribute(Qt::WA_DeleteOnClose, true);
hgs
parents: 25
diff changeset
   573
                dlg->open(this, SLOT(handleInvalidContactDialog(HbAction*)));
hgs
parents: 25
diff changeset
   574
                break;
hgs
parents: 25
diff changeset
   575
            }
hgs
parents: 25
diff changeset
   576
        }
hgs
parents: 25
diff changeset
   577
    }
hgs
parents: 25
diff changeset
   578
hgs
parents: 25
diff changeset
   579
    return isValid;
hgs
parents: 25
diff changeset
   580
}
hgs
parents: 25
diff changeset
   581
hgs
parents: 25
diff changeset
   582
void MsgUnifiedEditorAddress::handleInvalidContactDialog(
hgs
parents: 25
diff changeset
   583
        HbAction* act)
hgs
parents: 25
diff changeset
   584
{
hgs
parents: 25
diff changeset
   585
    Q_UNUSED(act);
hgs
parents: 25
diff changeset
   586
    QTimer::singleShot(250, this, SLOT(setFocus()));
hgs
parents: 25
diff changeset
   587
}
hgs
parents: 25
diff changeset
   588
hgs
parents: 25
diff changeset
   589
void MsgUnifiedEditorAddress::unblockSignals()
hgs
parents: 25
diff changeset
   590
{
hgs
parents: 25
diff changeset
   591
    mLaunchBtn->blockSignals(false);
hgs
parents: 25
diff changeset
   592
}
hgs
parents: 25
diff changeset
   593
76
hgs
parents: 73
diff changeset
   594
void  MsgUnifiedEditorAddress::emitContentsChanged()
hgs
parents: 73
diff changeset
   595
{
hgs
parents: 73
diff changeset
   596
    int currentAddressCount = addressCount();
hgs
parents: 73
diff changeset
   597
    bool hasEmail = hasValidEmailAddress();
hgs
parents: 73
diff changeset
   598
    
hgs
parents: 73
diff changeset
   599
    if(mAddressCount != currentAddressCount || hasEmail)
hgs
parents: 73
diff changeset
   600
    {
hgs
parents: 73
diff changeset
   601
        mAddressCount = currentAddressCount;       
hgs
parents: 73
diff changeset
   602
        QVariantList data;
hgs
parents: 73
diff changeset
   603
        data << mAddressCount << hasEmail;
hgs
parents: 73
diff changeset
   604
        emit contentsChanged(data);
hgs
parents: 73
diff changeset
   605
    }
hgs
parents: 73
diff changeset
   606
}
hgs
parents: 73
diff changeset
   607
hgs
parents: 73
diff changeset
   608
bool MsgUnifiedEditorAddress::hasValidEmailAddress()
hgs
parents: 73
diff changeset
   609
{
hgs
parents: 73
diff changeset
   610
    bool result = false;
hgs
parents: 73
diff changeset
   611
    QStringList addressList = mAddressEdit->addresses();
hgs
parents: 73
diff changeset
   612
    QRegExp emailExp("\\S+@\\S+");
hgs
parents: 73
diff changeset
   613
    int i = addressList.indexOf(emailExp);//getting item index having @ symbol.
hgs
parents: 73
diff changeset
   614
    
hgs
parents: 73
diff changeset
   615
    //check if index is valid.
hgs
parents: 73
diff changeset
   616
    if(i >= 0 )
hgs
parents: 73
diff changeset
   617
    {
hgs
parents: 73
diff changeset
   618
        result = true;
hgs
parents: 73
diff changeset
   619
    }
hgs
parents: 73
diff changeset
   620
        
hgs
parents: 73
diff changeset
   621
    return result;
hgs
parents: 73
diff changeset
   622
}
hgs
parents: 73
diff changeset
   623
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   624
Q_IMPLEMENT_USER_METATYPE(CntServicesContact)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(CntServicesContactList)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
//EOF